欢迎来到天天文库
浏览记录
ID:10696850
大小:77.50 KB
页数:5页
时间:2018-07-07
《matlab复化simpson求积公式计算数值积分》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、复化Simpson求积公式计算数值积分一·复化Simpson求积公式的数学理论如果用分段二次插值函数近似被积函数,即在小区间上用Simpson公式计算积分近似值,就可导出复化Simpson公式。二·复化Simpson求积公式的算法和流程图将积分区间[a,b]分成n=2m等分,分点为,在每个小区间[](k=0,1,…,n-1)上。用Simpson公式求积分,则有求和得整理后得到(5-21)式(5-21)称为复化Simpson公式。如果,则由Simpson插值余项公式可得复化公式的截断误差为因为为连续,
2、故存在,使得代入上式得(5-22)式(5-22)表明,步长h越小,截断误差越小。与复化梯度公式的分析相类似,可以证明,当n=2m→∞时,用复化Simpson公式所得的近似值收敛于积分值,而且算法具有数值稳定性。程序中需要选择的积分函数F1,F2,F3F1表示函数。F2表示函数。F3表示函数。操作流程图:三·复化Simpson求积公式的Matlab实现functionI=squad(x,y)%复化Simpson求积公式,其中,%x为向量,被积函数自变量的等距结点;%y为向量,被积函数在结点出的函数值
3、;n=length(x);m=length(y);%积分自变量的结点数应与它的函数值的个数相同Ifrem(n-1,2)~=0I=tquad(x,y);return;endN=(n-1)/2;H=(x(n)-x(1))/N;a=zeros(1,n);fork=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;endI=h/6*sum(a.*y);四·复化Simpson求积公式的算例实现利用程序计算积分解:先用M文件定义一个名为myfu
4、n的函数:functiony=f(x);y=1/(1+x^2);在MATLAB命令窗口中输入.>>Q=quad(@myfun,-1,1)Q=1.5708故
此文档下载收益归作者所有