积分公式
复化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)245xex2x21lnx12x11dx。 F3表示函数f(x)0cosxsinxdx。
41cosx 操作流程图:
三·复化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 故
积分公式。
Tags: 积分公式