首页 理论教育 数值积分方法及MATLAB计算工具

数值积分方法及MATLAB计算工具

时间:2023-07-02 理论教育 版权反馈
【摘要】:不同于数值微分的微观性质,数值积分描述了一个函数的整体或宏观性质。MATLAB为用户提供了求解积分的函数,其中包括一元函数的自适应数值积分、一元函数的矢量积分、二重积分和三重积分。表4.5积分函数1.trapz函数函数trapz通过计算若干个梯形面积的和来计算某函数的近似积分,其调用格式如下:①Z=trapz:通过梯形法计算Y的近似积分。使用quad函数计算定积分。

数值积分方法及MATLAB计算工具

不同于数值微分的微观性质,数值积分描述了一个函数的整体或宏观性质。

求解定积分的数值方法有很多,比如简单的梯形法、辛普森(Simpson)法、牛顿-柯特斯(Newton-Cotes)法等。它们的基本思路都是将整个积分区间分成n个子区间,将积分问题转换为求和问题。

MATLAB为用户提供了求解积分的函数,其中包括一元函数的自适应数值积分、一元函数的矢量积分、二重积分和三重积分。具体见表4.5。

表4.5 积分函数

1.trapz函数

函数trapz通过计算若干个梯形面积的和来计算某函数的近似积分,其调用格式如下:

①Z=trapz(Y):通过梯形法(采用单位间距)计算Y的近似积分。

Y的大小确定求积分所沿用的维度:如果Y为向量,则trapz(Y)是Y的近似积分;如果Y为矩阵,则trapz(Y)对每列求积分并返回积分值的行向量;如果Y为多维数组,则trapz(Y)对其大小不等于1的第一个维度求积分,该维度的大小变为1,而其他维度的大小保持不变。

②Z=trapz(X,Y):根据X指定的坐标或标量间距对Y进行积分。

如果X是坐标向量,则length(X)必须等于Y的大小;如果X是标量间距,则trapz(X,Y)等于X∗trapz(Y)。

③Z=trapz(X,Y,dim):通过梯形法计算Y跨维积分,维度由dim指定。

【例4.10】 使用trapz函数计算定积分

在MATLAB的命令行窗口输入下列指令,并得出结果。

2.一元函数的积分

在MATLAB中,用户可用quad和quad1两个函数来实现对一元函数的积分求解。函数quad和quad8是基于数学上的正方形概念来计算函数的面积的,函数quad采用的是低阶的自适应递归辛普森法,quad8函数采用的则是高阶的自适应递归辛普森法,并且quad8函数比quad函数更精确。quad1函数采用高阶自适应Lobatto法,该函数是quad8函数的替代。

quad函数的调用格式如下:

q=quad(fun,a,b):尝试使用递归自适应辛普森积分法求取函数fun从a到b的近似积分,误差小于10-6。其中,fun是被积函数表达式字符串或M函数文件名。(www.xing528.com)

q=quad(fun,a,b,tol):tol可指定大于10-6的允许误差。该命令的运行速度更快,但是精度降低。

q=quad(fun,a,b,tol,trace):在递归期间显示[fcnt a b-a Q]的值。其中,fcnt为计算函数数值的次数;a为积分区间的左边界;b-a为区间长度;Q为区间内的积分值。trace=1,迭代信息在运算中显示;trace=0,不显示迭代信息,默认值为0。

[q,fcnt]=quad(fun,a,b,…):输出函数值的同时返回函数的计算次数。

【例4.11】 使用quad函数计算定积分

在MATLAB命令行窗口中输入以下命令,并得出结果。

也可以利用2.3.3小节中的int函数来求解,其调用格式分别为:

【例4.12】 使用int函数计算定积分

在MATLAB命令行窗口输入以下命令,并得出结果。

3.二重积分

在MATLAB中,二重积分由dblquad函数来实现,其调用格式如下:

q=dblquad(fun,xmin,xamx,ymin,ymax):dblquad函数通过调用quad函数来计算fun(x,y)在矩形区域xmin≤x≤xmax、ymin≤y≤ymax的双重积分。其中,fun是被积函数表达式字符串或M函数文件名。

q=dblquad(fun,xmin,xamx,ymin,ymax,tol):通过tol指定积分结果的精度。

q=dblquad(fun,xmin,xamx,ymin,ymax,tol,trace):trace=1,迭代信息在运算中显示;trace=0,不显示迭代信息,默认值为0。

【例4.13】 计算二重积分

在MATLAB的命令行窗口中输入以下命令,并得出结果。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈