1.int命令
(1)普通积分
⌠xdx =1/2*x^2(省略积分常量)写成
int(‘x’)//对x进行积分
ans =1/2*x^2
(2)对应未知量积分
int(f, v) 语法来调用 int,其中 f 就是要积分的函数,而 v 是积分变量。仍然使用 g,我们写成:
syms n t
g = sin(n*t);
int(g,n)//
ans = -1/tcos(nt)
(3)参数代入
syms b x
f = b^x;
F = int(f)对f进行积分
F =1/log(b)*b^x
subs(F,{b,x},{2,4})数值代入
ans =23.0831
2.定积分
syms x
f = x^2*cos(x);
a = int(f,-6,6)
a =68sin(6)+24cos(6)
double(a)
ans = 4.0438
3.多重积分
syms x y z
int(int(int(x*y2*z5,x),y),z)多重积分
ans =1/36x2*y3z^6
f = x^2*y;
int(int(f,x,2,4),y,1,2)多重定积分
ans =28
4.数值积分
数值积分描述:通过调用 trapz(x, y)函数 MATLAB 可以进行梯形积分。这里 x 和 y 是两个数组,x 包含的是积分的定义域,而 y 包含的是在那些点上取得的函数值。可以对多个函数同时进行积分(在同一个定义域 x 上),只需用多列的形式把每个函数的 y 值传递过去。
运用微积分学上的梯形法,把某条曲线下的区域分成一系列的矩形。然后把每个矩形的面积累加起来得到积分。
x = linspace(0,2,10);//将0到2等差划分出一个10个元素的数组
y = x.^2;
a = trapz(x,y)//将各个梯形进行积分叠加
a =2.6831
100*abs((8/3-a)/(8/3))//相对误差
ans = 0.6173
5.正交积分
运用命令:MATLAB 有两个命令 quad 和 quad1 可以用来实现正交积分。
缺点:quad 和 quadl 函数的不利方面是无法对点集进行积分。
方法描述:这种类型的方法基于使用二次函数代替矩形更能接近曲线下方面积的原理(使用高阶的多项式还能够得到更精确的结果)。辛普森法则(Simpson’s rule)是把积分区间分成偶数段,相邻两段下面的面积用不同的二次函数近似表示。
quad 函数采用适应辛普森法则的逼近方法进行数值积分。要使用quad,把被积的函数传递给它,后面跟着积分区间。
quad(‘exp(-2*x)’,0,1/8)
ans = 0.1106
事实上如果我们计算到小数点后 14 位,我们会发现它们仍然极其一致:
format long
ac = 1/2 - 1/(2*exp(1/4))
ac =0.11059960846430
quad(‘exp(-2*x)’,0,1/8)
ans = 0.11059960846436
使用 trapz 函数我们也能得到不错的答案,不过在第 7 位之后就已经不同:
x = linspace(0,1/8,100);
y = exp(-2*x);
r = trapz(x,y)
r = 0.11059966723785
quadl 函数采用洛巴托(Lobatto)积分法。这是一种适应正交积分更加灵活复杂的类型
f2=@(x) exp(-2*x)
q2=quadl(f2,0,1/8)
q2 = 0.1106
q2 = 0.1106