数值积分及其MATLAB实现Word文档下载推荐.doc

上传人:b****2 文档编号:14180603 上传时间:2022-10-19 格式:DOC 页数:41 大小:893KB
下载 相关 举报
数值积分及其MATLAB实现Word文档下载推荐.doc_第1页
第1页 / 共41页
数值积分及其MATLAB实现Word文档下载推荐.doc_第2页
第2页 / 共41页
数值积分及其MATLAB实现Word文档下载推荐.doc_第3页
第3页 / 共41页
数值积分及其MATLAB实现Word文档下载推荐.doc_第4页
第4页 / 共41页
数值积分及其MATLAB实现Word文档下载推荐.doc_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

数值积分及其MATLAB实现Word文档下载推荐.doc

《数值积分及其MATLAB实现Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《数值积分及其MATLAB实现Word文档下载推荐.doc(41页珍藏版)》请在冰豆网上搜索。

数值积分及其MATLAB实现Word文档下载推荐.doc

title('

y=sinx,y=cosx和x=-0.5及x=1.5所围成的平面区域的图形'

运行后屏幕显示图形.

求平面区域D的面积S.输入计算面积S的程序

symsx

f1=cos(x)-sin(x);

f2=-f1;

S1=int(f1,x,-0.5,pi/4);

S2=int(f2,x,pi/4,1.5);

S=S1+S2,Sj=double(S)

运行后屏幕显示计算面积的值S及其近似值Sj如下

S=

2*2^(1/2)+sin(1/2)-cos(1/2)-sin(3/2)-cos(3/2)

Sj=

1.36203791318826

9.1.2变限积分的MATLAB符号计算

例9.1.7已知ed,求.

解输入程序:

symsxt

F1=int(exp(t)*sin(2+sqrt(t^3)),x,0);

F2=int(exp(t)*sin(2+sqrt(t^3)),0,x^2);

Fi=F1+F2;

dF=diff(Fi)

运行后屏幕显示计算变限积分的导数.

9.2数值积分的思想及其MATLAB程序

9.2.3矩形公式的MATLAB程序

(一)函数sum的调用格式

调用格式一:

sum(X)

调用格式二:

sum(X,DIM)

例9.2.2用MATLAB和矩形公式(9.3)、(9.4)计算ed,并与精确值比较.

解将分成20等份,步长为,输入程序

h=pi/40;

x=0:

h:

pi/2;

y=exp(sin(x));

z1=sum(y(1:

20))*h,z2=sum(y(2:

21))*h,

运行后屏幕显示矩形公式计算结果分别如下

z1=z2=

3.03643.1713

求定积分的精确值,输入程序

F=int(exp(sin(x)),x,0,pi/2),Fs=double(F),

wz1=abs(Fs-z1),wz2=abs(Fs-z2)

运行后屏幕显示定积分的精确值Fs和与用矩形公式(9.3),(9.4)计算结果的绝对误差wz1、wz2.

(二)函数cumsum的调用格式

cumsum(X)

调用格式二:

cumsum(X,DIM)

例9.2.4用MATLAB的函数sum和cumsum及矩形公式(9.3)、(9.4)计算ed,并与精确值比较.

解将分成20等份,步长为,输入程序如下(注意sum和cumsum的用法)

y=exp(-x).*sin(x);

z1=sum(y(1:

20))*h,z2=sum(y(2:

z=cumsum(y);

z11=z(20)*h,z12=(z(21)-z

(1))*h,

运行后屏幕显示计算结果分别如下

z1=z2=z11=z12=

0.38730.40360.38730.4036

F=int(exp(-x)*sin(x),x,0,pi/2)

Fs=double(F),wz1=abs(Fs-z1),wz2=abs(Fs-z2)

运行后屏幕显示定积分的精确值Fs和用矩形公式(9.3),(9.4)计算结果的绝对误差wz1、wz2分别如下

F=Fs=

1/2*(-1+exp(pi)^(1/2))/exp(pi)^(1/2)0.3961

wz1=wz2=

0.00880.0075

9.3插值型数值积分及其MATLAB程序

9.3.2梯形公式的MATLAB程序

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

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

解编写并输入如下程序

h=pi/8000;

a=0;

b=pi/2;

x=a:

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,

symst

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)):

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主程序

functionT=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;

fori=1:

m

h=h/2;

n=2*n;

s=0;

fork=1:

n/2

x=a+h*(2*k-1);

s=s+feval(fun,x);

end

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

T=T(1:

m);

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

解输入程序

T=rctrap(@fun,0,pi/2,14),symst

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

9.3.3辛普森公式及其误差分析

例9.3.7用辛普森公式计算ed,取个等距节点,并将计算结果与精确值比较,然后再取计算,观察对误差的影响.

解由,得.根据辛普森(Simpson)公式编写并输入下面的程序

a=0;

b=1;

m=10000;

h=(b-a)/(2*m);

x=a:

y=exp((-x.^2)./2)./(sqrt(2*pi));

z1=y

(1)+y(2*m+1);

z2=2*sum(y(2:

2:

2*m));

z3=4*sum(y(3:

z=(z1+z2+z3)*h/3,symst,f=exp((-t^2)/2)/(sqrt(2*pi));

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

Juewucha=abs(z-Fs)

运行后屏幕显示用辛普森公式(9.11)计算定积分的近似值z和精确值intf及其绝对误差Juewucha(取个等距节点).

例9.3.8估计用辛普森公式计算定积分ed时的误差,取.

解根据估计误差公式,先输入求的程序

symsx,y=exp(sin(x));

yx4=diff(y,x,4)

运行后输出被积函数的四阶导函数.然后在输入误差估计程序

h=pi/40;

0.00001:

yx4=sin(x).*exp(sin(x))-4*cos(x).^2.*exp(sin(x))+3*sin(x).^2.*exp(sin(x))-6*sin(x).*cos(x).^2.*exp(sin(x))+cos(x).^4.*exp(sin(x));

juyx4=abs(yx4);

RS=(h^4)*(pi/2)*max(juyx4)/180

运行后屏幕显示误差估计值

RS=

3.610450295892220e-006

9.3.4辛普森(Simpson)数值积分的MATLAB程序

quad(‘fun’,a,b)

quad(‘fun’,a,b,tol)

[Q,FCNT]=quad(...)

调用格式四:

quad(‘fun’,a,b,tol,TRACE)

调用格式五:

quad(‘fun’,a,b,tol,TRACE,P1,P2,…)

复合辛普森(Simpson)数值积分的MATLAB主程序

functiony=comsimpson(fun,a,b,n)

z1=feval(fun,a)+feval(fun,b);

m=n/2;

h=(b-a)/(2*m);

z2=0;

z3=0;

x2=0;

x3=0;

fork=2:

2*m

x2=x+k*h;

z2=z2+2*feval(fun,x2);

fork=3:

x3=x+k*h;

z3=z3+4*feval(fun,x3);

y=(z1+z2+z3)*h/3;

例9.3.9用comsimpson.m和quad.m分别计算定积分ed,取精度为,并与精确值比较.

[Q1,FCNT14]=quad(@fun,0,1,1.e-4,3),

Q

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1