Matlab中不定积分和定积分的实现
Posted OIqng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab中不定积分和定积分的实现相关的知识,希望对你有一定的参考价值。
MATLAB提供的用于积分运算的函数是int( )(不定积分和定积分)和quad( )(定积分的数值计算),首先学习int( )的用法,int( )可以完成函数的不定积分和定积分运算,它先求出函数的原函数,如果需要求定积分,则在原函数的基础上按牛顿-莱布尼兹公式求定积分的值:
- int(fun) 计算函数fun关于默认变量的不定积分
- int(fun, x) 计算函数fun关于变量x的不定积分
- int(fun, x, a, b) 计算函数fun关于变量x从a到b的定积分
计算不定积分 ∫ ( x 5 + x 3 − x 4 ) d x \\int(x^5+x^3-\\frac{\\sqrt{x}}{4})dx ∫(x5+x3−4x)dx
使用下面程序实现
clear
syms x
y=x^5+x^3-sqrt(x)/4
int(y,x)
pretty(ans)
效果为
计算定积分
∫
0
1
(
x
e
x
(
1
+
x
)
2
)
d
x
\\int_{0}^{1}(\\frac{xe^x}{(1+x)^2})dx
∫01((1+x)2xex)dx
使用下面程序实现
clear
syms x
y=(x*exp(x))/(1+x)^2;
int(y,x,0,1)
效果为
计算广义积分 ∫ − 2 − 1 ( 1 x ( x 2 − 1 ) ) d x \\int_{-2}^{-1}(\\frac{1}{x\\sqrt{(x^2-1)}})dx ∫−2−1(x(x2−1)1)dx
使用下面程序实现
clear
syms x
int(1/x/sqrt(x*x-1),x,-2,-1)
效果为
计算广义积分
∫
−
∞
+
∞
(
1
(
x
2
+
1
)
+
(
x
2
+
4
)
)
d
x
\\int_{-\\infty}^{+\\infty}(\\frac{1}{(x^2+1)+(x^2+4)})dx
∫−∞+∞((x2+1)+(x2+4)1)dx
使用下面程序实现
clear
syms x
int(1/(x*x+1)/(x*x+4),x,-inf,inf)
效果为
并非所有的积分都可以用MATLAB软件通过函数int( )来完成运算,函数int( )完成的是符号运算而不是数值运算,因此,当积分不存在初等形式的原函数时,函数int( )便不能完成积分运算。所以下面将使用quad()进行数值积分计算:
quad(fun,a,b),其中fun是被积函数,a是积分下限,b是积分上限,fun一般用函数文件来定义
计算定积分 ∫ 0 π ( x s i n x 1 + c o s 2 x ) d x \\int_{0}^{\\pi}(\\frac{xsinx}{1+cos^2x})dx ∫0π(1+cos2xxsinx)dx
首先定义被积函数, 在磁盘上建立一个函数文件f.m, 内容如下:
function y=f(x)
y=x.*sin(x)./(1+cos(x).^2)
接着,在另一个文件或命令窗口中输入:
I=quad(@f,0,pi
效果为
计算积分
∫
−
1
1
g
(
x
)
d
x
\\int_{-1}^{1}g(x)dx
∫−11g(x)dx,其中
g
(
x
)
=
{
1
+
x
2
c
o
s
x
x
≤
0
e
−
x
s
i
n
x
x
>
0
g(x)=\\left\\{ \\begin{array}{lr} 1+x^2cosx & x \\leq 0 \\\\ e^{-x}sinx & x >0 \\\\ \\end{array} \\right.
g(x)={1+x2cosxe−xsinxx≤0x>0
建立磁盘文件g.m如下:
function y=g(x)
if x<=0
y=1+x.*x.*cos(x)
else
y=exp(-x).*sin(x)
end
接着,在另一个文件或命令窗口中输入:
I=quad(@g,-1,0)+quad(@g,0,1)
如果被积函数是一个分段函数,则需要以分段点为界为开积分,否则有可能出现错误
以上是关于Matlab中不定积分和定积分的实现的主要内容,如果未能解决你的问题,请参考以下文章
玩转matlab之一维 gauss 数值积分公式及matlab源代码