matlab复化Simpson求积公式计算数值积分

2018-11-21 23:56

复化Simpson求积公式计算数值积分

一·复化Simpson求积公式的数学理论

如果用分段二次插值函数近似被积函数,即在小区间上用Simpson公式计算积分近似值,就可导出复化Simpson公式。

二·复化Simpson求积公式的算法和流程图

将积分区间[a,b]分成n=2m等分,分点为 ,

积分,则有

在每个小区间[

](k=0,1,…,n-1)上。用Simpson公式求

求和得

整理后得到

xx

(5-21)

式(5-21)称为复化Simpson公式。

如果差为

,则由Simpson插值余项公式可得复化公式的截断误

因为为连续,故存在,使得

代入上式得

式(5-22)表明,步长h越小,截断误差越小。与复化梯度公式的分析相类

似,可以证明,当n=2m→∞时,用复化Simpson公式所得的近似值收敛于积分值,而且算法具有数值稳定性。

1程序中需要选择的积分函数F1,F2,F3

F1表示函数

f(x)??0sinxdx。 x

bf(

(5-22)

F2表示函数f(x)??24?5x?ex?2x2?1?lnx12x?11dx。

F3表示函数f(x)??0cosxsinxdx。 41?cosx

操作流程图:

三·复化Simpson求积公式的Matlab实现 function I=squad(x,y)

%复化Simpson求积公式,其中, %x为向量,被积函数自变量的等距结点; %y为向量,被积函数在结点出的函数值; n=length(x); m=length(y);

%积分自变量的结点数应与它的函数值的个数相同 If rem(n-1,2)~=0 I=tquad(x,y); return; end N=(n-1)/2; H=(x(n)-x(1))/N; a=zeros(1,n); for k=1 :N;

a(2*k-1)=a(2k-1)+1; a(2*k)=a(2*k)+4; a(2*k+1)=a(2*k+1)+1; end

I=h/6*sum(a.*y);

四·复化Simpson求积公式的算例实现

利用程序计算积分

解:先用M文件定义一个名为myfun的函数:

function y=f(x); y=1/(1+x^2);

在MATLAB命令窗口中输入 .>>Q = quad(@myfun,-1,1) Q =

1.5708 故


matlab复化Simpson求积公式计算数值积分.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:语文万能答题公式

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: