资源描述:
《数值积分与数值微分.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、8数值积分与数值微分8.1例题解答例8.1给定积分,分别用梯形公式、公式、公式作近似计算.解:先输入主要初始参数>>a=0.5;>>b=1;>>f=inline('x^(1/2)');%梯形公式>>I1=(b-a)/2*(feval(f,a)+feval(f,b))I1=0.6637%simpson公式>>I2=(b-a)/6*(feval(f,a)+4*feval(f,(a+b)/2)+feval(f,b))I2=0.7025%Cotes公式(n=4)>>tc=0;>>C0=[73212327
2、];>>fori=0:4tc=tc+C0(i+1)*feval(f,a+i*(b-a)/4);end>>I3=(b-a)/90*tcI3=0.5876%准确值>>I=int(char(f),a,b)>>vpa(I)I=-1/6*2^(1/2)+2/3ans=0.例8.2对积分,为使其精度达到.若用复化梯形公式,应将[0,1]多少等分?若用复化公式,应将[0,1]多少等分?解:直接按余项计算即可.复化梯形公式的余项为:复化公式余项为:对于,在课本中我们已证得以下不等式成立:直接利用上述不等式关系解
3、答本题.先输入误差精度:>>Eps=1E-4Eps=1.0000e-004(1)复化梯形公式>>h1=sqrt(Eps/abs(-(1-0)/12*1/(2+1)))%先求出步长h1=0.0000>>N1=ceil(1/h1)%向上取整,得到等分区间数N1=17故可将区间17等分即可达到所要求的精度.(2)复化公式>>h2=power(Eps/abs(-(1-0)/180*1/(1+4)),1/4)%先求出步长h2=0.5166>>N2=ceil(1/h2)%向上取整,得到等分区间数N2=2故可
4、将区间2等分即可达到所要求的精度.Ø扩展:1)Matlab中复化梯形公式命令为I=trapz(x,y),复化公式命令为quad().2)Matlab中有四个取整函数,分别为ceil(),floor(),fix(),round(),分别表示向正无穷大方向取整、向负无穷大方向取整、向靠近零方向舍入和四舍五入.例8.3对积分,利用变步长方法求其近似值,使其精度达到.解:利用变步长法前先建立三种变步长复化积分公式的函数.注意在Matlab中直接用sin(0)/0得不到1,,因此解此题时我们改用求极限的方
5、法得到函数值,此函数名为limit().先建立三种复化公式的函数文件,它们分别为复化梯形公式trap.m、复化公式为simpson.m、公式为cotes.m,三个函数的源程序如下:(1)复化梯形公式trap.mfunctionT=trap(f,a,b,n)%trap.m%复化梯形公式求积分值%f为积分函数%[a,b]为积分区间%n是等分区间份数h=(b-a)/n;%步长T=0;fork=1:(n-1)x0=a+h*k;T=T+limit(f,x0);endT=h*(limit(f,a)+limi
6、t(f,b))/2+h*T;T=double(T);(2)复化公式simpson.m:functionS=simpson(f,a,b,n)%simpson.m%Simpson公式求积分值%f为积分函数%[a,b]为积分区间%n是等分区间份数h=(b-a)/(2*n);%步长s1=0;s2=0;fork=1:nx0=a+h*(2*k-1);s1=s1+limit(f,x0);endfork=1:(n-1)x0=a+h*2*k;s2=s2+limit(f,x0);endS=h*(limit(f,a)
7、+limit(f,b)+4*s1+2*s2)/3;S=double(S);(3)复化公式cotes.m:functionC=cote(f,a,b,n)%cote.m%复化cotes公式求积分值%f为积分函数%[a,b]为积分区间%n是等分区间份数h=(b-a)/n;%步长C=0;fori=1:(n-1)x0=a+i*h;C=C+14*limit(f,x0);endfork=0:(n-1)x0=a+h*k;s=32*limit(f,x0+h*1/4)+12*limit(f,x0+h*1/2)+32
8、*limit(f,x0+h*3/4);C=C+s;endC=C+7*(limit(f,a)+limit(f,b));C=C*h/90;C=double(C);再编写主程序调用这三个函数,主程序名为ex8_3.m,源程序如下:%ex8_3.mclc;symsx;f=sym('sin(x)/x');a=0;b=1;%积分上下限n=20;%作1,2,3,…,20次区间等分%复化梯形公式T=zeros(n,1);fori=1:nT(i)=trap(f,a,b,i);end%复化Simpson公式;S=z