matlab数值分析程序--高等数学,数值代数的matlab实现-文字版, matlab电子书, 和matlab 有关的电子书:

9.3.2 梯形公式的MATLAB程序

9.3.2  梯形公式的MATLAB程序

 

(一) 根据梯形公式和估计误差公式自己编写MATLAB程序计算定积分

例9.3.2 分别取,用梯形公式计算定积分ed,并与精确值比较.然后观察对计算结果的有效数字和绝对误差的影响.

解  编写并输入如下程序

>>h=pi/8000;a=0;b=pi/2;x=a:h:b;n=length(x), y=exp(sin(x));

z1=(y(1)+y(n))*h/2; z2=sum(y(2:n-1))*h; z8000=z1+z2,

syms t

f=exp(sin(t)); intf=int(f,t,a,b), Fs=double(intf),

Juewucha8000=abs(z8000-Fs)

运行后屏幕显示取时,积分区间上等距节点的个数,用梯形公式计算定积分的值z8000和精确值intf的近似值Fs及其绝对误差Juewucha8000.

 

 (二) 用函数trapz计算定积分

 

调用格式一:Z =trapz(Y)

调用格式二:Z =trapz(X,Y)

调用格式三:Z = trapz (X,Y,DIM) 或 trapz (Y,DIM)

 (三) 用函数cumtrapz计算定积分

调用格式一:Z =cumtrapz (Y)

调用格式二:Z =cumtrapz (X,Y)

调用格式三:Z = cumtrapz (X,Y,DIM) 或 cumtrapz (Y,DIM)

例9.3.4  用MATLAB的函数trapz 和cumtrapz分别计算ed,精确到,并与矩形公式(9.3),(9.4)比较.

解  将分成20等份,步长为,输入程序如下(注意trapz(y)是单位步长, trapz(y)*h=trapz(x,y)):

>> h=pi/40; x=0:h:pi/2; y=exp(-x).*sin(x);

z1=sum(y(1:20))*h, z2=sum(y(2:21))*h, z=(z1+z2)/2

z3=trapz(y)*h, z3h=trapz(x,y), z3c=cumtrapz(y)*h,

运行后屏幕显示用矩形公式(9.3),(9.4)计算结果z1、z2和二者的平均数z、函数trapz 和cumtrapz分别计算结果z3、z3c.

 

(四)梯形数值积分的MATLAB主程序

梯形数值积分的MATLAB主程序

function T=rctrap(fun,a,b,m)

n=1;h=b-a; T=zeros(1,m+1); x=a; T(1)=h*(feval(fun,a)+feval(fun,b))/2;

for i=1:m

           h=h/2; n=2*n; s=0;

          for k=1:n/2

           x=a+h*(2*k-1); s=s+feval(fun,x);

end

T(i+1)=T(i)/2+h*s;

end

T=T(1:m);

例9.3.6  用rctrap计算ed,递归14次,并将计算结果与精确值比较.

解  输入程序

>>T=rctrap(@fun,0,pi/2,14), syms t

fi=int(exp((-t^2)/2)/(sqrt(2*pi)),t,0, pi/2);

Fs= double(fi), wT= double(abs(fi-T))

运行后屏幕显示精确值Fs,用rctrap计算的递归值T和T与精确值Fs的绝对误差wT

欢迎转载,转载请注明来自一手册:http://yishouce.com/book/3/3090302.html
友情链接It题库(ittiku.com)| 版权归yishouce.com所有| 友链等可联系 admin#yishouce.com|粤ICP备16001685号-1