数学实验报告

  • 格式:doc
  • 大小:1.29 MB
  • 文档页数:13

实验六 练习一 1. 用MATLAB软件完成下面的实验任务:

(1) 求y=cos x在x=0处的泰勒展开式: (2) 计算cos1的近似值,为使精度达到10^(-4),需要用多少次多项式近似代替函数y=cosx? 解:(1)分析:taylor(f,a)可以求函数f的5阶泰勒公式。 程序如下: syms x taylor(cos(x),10) 运行结果: ans = 1-1/2*x^2+1/24*x^4-1/720*x^6+1/40320*x^8 (2)分析:taylor(f,n)可以求函数f的n-1阶Maclaurin公式。若误差小于10^-4,则认为可以近似代替原函数。 程序如下:

for n=5:100 f1=taylor(cos(x),n); f2=taylor(cos(x),n+1); if(subs(f2-f1,x,1)<=10^(-4)) fprintf('the answer is %d\n',n+1); break; end end 运行结果:the answer is 6 syms x; y1=taylor(cos(x),6,0) subs(y1,x,1) 运行结果: y1 = 1-1/2*x^2+1/24*x^4 ans = 0.5417

3.求y=x1在x=0处的泰勒展开式,分别计算2、3的近似值,精度为10^(-4)。 解:分析:taylor(f,n,a)可以求函数f在x=a处的n-1阶泰勒公式. 程序如下: syms x; y1=taylor(sqrt(1+x),15,0) subs(y1,x,1) subs(y1,x,2) 运行结果:y1 = 1+1/2*x-1/8*x^2+1/16*x^3-5/128*x^4+7/256*x^5-21/1024*x^6+33/2048*x^7-429/32768*x^8+715/65536*x^9-2431/262144*x^10+4199/524288*x^11-29393/4194304*x^12+52003/8388608*x^13-185725/33554432*x^14+334305/67108864*x^15-9694845/2147483648*x^16+17678835/4294967296*x^17-64822395/171****9184*x^18+119409675/34359738368*x^19 ans = 1.4159 ans = 1.1834e+003 练习5 2.设有一制作均匀冰淇淋可以看作由圆锥面z=(x^2+y^2)^(1/2)和球面x^2+y^2+(z-1)^2=1围成,采用取随机数法,用蒙特卡罗法计算冰淇淋的体积。 解:分析:取外切立方体为2×2×2,则概率P=V/8,所以V=8*P. 程序设计: cs=0 n=50000 for i=1:n a=rand(1,3) if a(1)^2+a(2)^2<=4*a(3)-(2*a(3))^2&a(1)^2+a(2)^2<=(2*a(3))^2 cs=cs+1 end end 8*cs/n 运行结果: ans =

3.1571 取n=10000, ans = 3.1384;取n= 500000,ans = 3.1443

答:冰淇淋体积为3.1443.

实验十一 练习4 2.令Xn+1=aXn*e^(-kXn),n=0,1,2,…,a分别取5,11,15,b<0(任意),初值Xo=1.参照示例4观察分叉与混沌现象。 解:程序设计: clear;clf; axis([0 15 0 5]); a=15; grid; hold on for b=0:1:15 x=[1]; for i=2:150 x(i)=a*x(i-1)*exp(-b*x(i-1)); end pause(0.05) for i=101:150 plot(b,x(i),'k.'); end text(b-0.5,max(x(101:150))+0.5,['\it{b}=',num2str(b)]) end 运行结果:

练习5 1. 求非线性方程组02^21lg*31011*52*12^1*2xxxxxxx的解,初值如下: (1)x0=[1.4,-1.5] (2)x0=[3.7,2.7] 解:程序设计:(1) function f=group1(x) f=[2*x(1)^2-x(1)*x(2)-5*x(1)+1; x(1)+3*(log(x(1))/log(10))-x(2)^2] [x,fval]=fsolve('group1',[1.4,-1.5]) 运行结果: x =

1.4589 -1.3968 fval = 1.0e-011 * 0.0759 -0.6163 程序设计:(2) function f=group1(x) f=[2*x(1)^2-x(1)*x(2)-5*x(1)+1; x(1)+3*(log(x(1))/log(10))-x(2)^2] [x,fval]=fsolve('group1',[3.7,2.7]) 运行结果: x =

3.4874 2.2616

fval = 1.0e-006 * 0.0059 -0.2012

实验十二 1. 如图12.11所示,有一只猎狗在B点位置发现了一只兔子在正东北方距离它200米的地 方O处,此时兔子开始以8米/秒的速度向正西北距离为120米的洞口全速跑去,假设在追赶兔子的时候始终朝着兔子的方向全速奔跑,按要求完成下面实验: (1) 问猎狗能追上兔子的最小速度为多少? (2) 选取猎狗的速度分别为15、18米,计算猎狗追上兔子时候跑过的路程和时间。 (3) 画出猎狗追赶兔子奔跑的曲线图

解:(1) (2)程序设计: Ax=-60*2^(1/2); Ay=60*2^(1/2);

A B N

O W Bx=-100*2^(1/2); By=-100*2*(1/2); avx=-4*2^(1/2); avy=4*2^(1/2); vb=15; ax=0;ay=0;bx=Bx;by=By; axj=[];ayj=[];bxj=[];byj=[]; t0=0.1;t=0; while (sqrt((ax-bx)^2+(ay-by)^2))>0.1&&ay>by&&ax>Ax t=t+t0; axj=[axj ax]; ayj=[ayj ay]; bxj=[bxj bx]; byj=[byj by]; ax=ax+avx*t0; ay=ay+avy*t0; k=(by-ay)/(bx-ax); if k>0 bvx=vb/sqrt(1+k^2); else bvx=-vb/sqrt(1+k^2); end if k>0 bvy=vb*k/sqrt(1+k^2); else bvy=-vb*k/sqrt(1+k^2); end bx=bx+t0*bvx; by=by+t0*bvy; plot(bx,by,'k.','markersize',5) hold on plot(ax,ay,'k*','markersize',5) hold on pause(0.01) end t

运行结果: vb=15 t=14.7 vb=18 t=11.1 (3) 4.将核废物装入密封很好的圆桶中,扔到水深300英尺(1英尺=0.3048米,合91.44米)的 海里。圆桶是55加仑,装满核废料受到重量为527.436磅(1磅=0.4536千克,合239.2450千克),不能泄露。测得圆桶下沉浮力为f=470.327磅(合2090.735牛顿),阻力系数c=0.08,圆桶碰撞发生破裂的直线极限速度是40英尺每秒(合12.192米每秒)。现在,在约定圆桶以直线方向往下沉的情况,请你回答这样可行吗? 解:程序设计: v=0; /*初速度为0*/ t=0; dt=0.5; s=0; while s<91.44 t=t+dt;s=s+v*dt v=v+(10-2090.735/239.245-0.08*v)*t /*在每个时间微元内近似为匀加速直线运动*/ end /*输出每个深度对应的速度*/ 运行结果: s = 0 v = 0.6306 s = 0.3153 v = 1.8412 s = 1.2359 v = 3.5119 s = 2.9919 v = 5.4723 s = 5.7280 v = 7.5306 s = 9.4933 v = 9.5066 s = 14.2466 v = 11.2586 s = 19.8759 v = 12.7003 s = 26.2261 v = 13.8032 s = 33.1277 v = 14.5875 s = 40.4214 v = 15.1051 s = 47.9740 v = 15.4213 s = 55.6847 v = 15.5995 s = 63.4844 v =