
数值积分法.docx
3页数值积分法、题目1用复 f (x) = f xexdx的近似计算,并比较所-1得结果二、方法 复化梯形、复化辛普森、复化柯特斯求积法三、程序1、 Taprl・M (复化梯形求积法程序)function s=traprl(f,a,b,n)h=(b-a)/n;s=0;for k=1:(n-1)x=a+h*k; s=s+feval(f,x);ends=h*(feval(f,a)+feval(f,b))/2+h*s;2、 simpson.M (复化辛普森求积法程序)function s=simpson(f,a,b,n)h=(b-a)/n;s=0;s2=0;s2=s2+feval(f,a+h/2);for k=1:(n-1)s=s+feval(f,a+h*k); s2=s2+feval(f,a+h*(k+1/2));end s=h*(feval(f,a)+feval(f,b))/6+h*s/3+2*h*s2/3;3、 cotes.M (复化柯特斯求积法程序)function C=cotes(f,a,b,n)s1=0;s2=0;s3=0;s4=0;h=(b-a)/n;s1=s1+feval(f,(1/4)*h+a);s2=s2+feval(f,(1/2)*h+a);s3=s3+feval(f,(3/4)*h+a);for k=1:n-1s1=s1+feval(f,(k+1/4)*h+a);s2=s2+feval(f,(k+1/2)*h+a);s3=s3+feval(f,(k+3/4)*h+a);s4=s4+feval(f,k*h+a);endC=(7*feval(f,a)+32*s1+12*s2+32*s3+14*s4+7*feval(f,b))*h/90;四、结果>> format compact>> format long>> traprl(inline('x*exp(x)'),-1,1,10)ans =0.75385826507612>> simpson(inline('x*exp(x)'),-1,1,10)ans =0.73576450441418>> cotes(inline('x*exp(x)'),-1,1,10)ans =0.73575888283272>> syms x>> int(x*exp(x),-1,1)ans =2*exp(-1)>> 2*exp(-1) ans =0.735758882342881将/ (x) = j xe xdx分别用二种复化求积法计算,对区间[-1, 1]划分10等分。
其中,对比matlab-1直接对该定积分求积的结果,复化梯形有 1 位有效数字,复化辛普森有 4 位有效数字,复化柯特斯有 9 位有效数字复化梯形求得结果为 0.75385826507612,复化辛普森求得结果为 0.73576450441418,复化柯特斯求得结果为 0.73575888283272,直接用求积函数求得结果为 0.73575888234288 五、拓展1、 复化梯形求积法的误差是H 2阶的,复化辛普森求积法的误差是H 4阶的,复化柯特斯求积法的误差是H6阶的2、 若想用复化梯形求积法求该定积分使其有效数字达到 4位,则需要将其划分成210等分 >> traprl(inline('x*exp(x)'),-1,1,210)ans =0.73579997492287 可见复化梯形收敛缓慢,若要提高精度,则需加大计算量4 1 4 13、 将复化梯形求积公式线性组合成T - T,经验证可得S = T - T,即为复化辛3 2 n 3 n n 3 2n 3 n普森求积公式将复化辛普森求积公式线性组合成16 S15 2 n-—S,经验证可得C15 n=S - S ,即为复15 2 n 15 n化柯特斯求积公式。
163C ,即为龙贝格公式n进一步也可将复化柯特斯求积公式线性组合成64 C63 2 n>> syms s1 s2>> s1=traprl(inline('x*exp(x)'),-1,1,10)s1 =0.75385826507612>> s2=traprl(inline('x*exp(x)'),-1,1,20) s2 =0.74028794457966 >> 4/3*s2-1/3*s1 ans =0.73576450441418 (结果和复化辛普森结果一样)>> syms s3 s4>> s3=simpson(inline('x*exp(x)'),-1,1,10)s3 =0.73576450441418>> s4=simpson(inline('x*exp(x)'),-1,1,20)s4 =0.73575923418156>> 16/15*s4-1/15*s3ans =。












