这就是梯形求积,将a,b之间的区间分成n端,将每一个划分点的函数值用直线连接起来,并求其面积之和。相当于1次拉格朗日插值求积分。当n趋于无穷大时,梯形的面积之和将逼近原函数围成的面积。程序:f.m如下:function y=f(x)y=1/x;trap.m如下:function y=trap(a,b,n)trap=0;ff=linspace(a,b,n);%将ab区间分成n段h=(b-a)/n;
%步长for i=1:n-1
%loop over all the middle valuestrap=trap+0.5*(f(ff(i))+f(ff(i+1)));endy=h*trap;%Remember the h multiplication in eq.(1)主程序为:a=1;b=2;yy=trap(a,b,4)yy=trap(a,b,8)yy=trap(a,b,16)运行结果:yy =
0.5250yy =
0.6076yy =
0.6501实际精确解为log(2)=0.6931,课件n变大时离实际解越来越近 |