赞
踩
介绍几种 MATLAB 中求解积分的方法,首先是采用符号积分的方法,求解积分的符号函数为
int(f,x,a,b)
例如计算如下积分函数:
MATLAB 代码如下:
syms x
y1=1/(1+x^4);
y2=(x*exp(x))/(1+x)^2;
y3=1/(x^2+2*x+3);
fy1=int(y1)
fy2=int(y2,0,1)
fy3=int(y3,-inf,+inf)
上述是一般情况下的积分函数求解,但是有时候我们会遇到双重积分,或者多重积分的情况,好在 MATLAB 有相关现成的函数可以利用,如求解函数
对应的可以使用 MATLAB 中的二重积分函数:
I=dblquad(f,a,b,c,d,tol,trace)
同样,如果是三重积分,可以使用三重积分函数:
I=triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol,method)
还有一种偷懒的方法,不管是二重、三重还是多重积分,都可以通过多次使用
int(int(int(f,z,z1(x,y),z2(x,y)),y,y1(x),y2(x)),x,a,b)
该方法也适合更多重积分。
符号积分是比较常用的求解积分的方法,但是有些积分函数的求解比较困难,这时需要使用数值积分方法,求解函数的近似值,这里主要介绍梯形积分法、变步长长积分法,以及 Lobatto 积分法、Gauss-Kronrod 积分法、自适应 Simpson 积分法,后面三种只简单引出积分函数的使用,重点介绍前面两种数值积分算法。
首先是梯形法数值积分,其适用于倍积分函数为离散数据的情况,使用该方法求解积分时,需要调用 MATLAB 中的 trapz 函数,调用方法如下:
I=trapz(x,y)
例如求解如下积分:
求解时,MATLAB 代码如下:
clc,clear
format long
ac=@(x)sin(x)./x
x1=pi/4:pi/50:pi/2;
y1=ac(x1);
s1=trapz(x1,y1)
x2=pi/4:pi/100:pi/2;
y2=ac(x2);
s2=trapz(x2,y2)
另外一种是基于变步长辛普森法的数值积分方法,是用该方法是需要调用 MATLAB 中的 quad 函数,调用方法如下:
请您登录后查看完整内容,登录 或者 注册
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。