一、实验问题
有一艘宽为5m的长方形驳船,欲过某河道的直角弯,经测量知河道的宽度为10m和 12m,试问,要驶过该直角湾,驳船的长度不能超过多少米?(误差<10-3m)
二、问题的分析
题目的主体是求一个极值。所以先建立关于驳船长度的函数关系,然后再求极值。我们会发现,所能通过驳船长度与驳船和内壁的角度有关。于是,就可列出驳船长度与角度间的关系。求极值的问题,可以转换成解方程的问题。驻点时,函数的导数为零,可看作一个方程,然后求解。
三、程序设计流程
建立函数 求导 解方程 完成
四、上机实验
建立函数:
1010+12)•sinx−5+12tanxtanx f(x)=•10cosx(+12)•sinxtanx10(+12)•sinx−5
f(x)= tanxsinx•cosx
(编写代码: syms x
f=(((10/tan(x))+12)*sin(x)-5)/(sin(x)*cos(x)); %建立函数 diff(f,x) %求导
%(ans=(-10/tan(x)^2*(1+tan(x)^2)*sin(x)+(10/tan(x)+12)*cos(x))/sin(x)/cos(x)-((10/tan(x)+12)* sin(x)-5)/sin(x)^2+((10/tan(x)+12)*sin(x)-5)/cos(x)^2 )
z=inline('(-10/tan(x)^2*(1+tan(x)^2)*sin(x)+(10/tan(x)+12)*cos(x))/sin(x)/cos(x)-((10/tan(x)+12)* sin(x)-5)/sin(x)^2+((10/tan(x)+12)*sin(x)-5)/cos(x)^2'); %给出方程 a=0; b=3.14; dlt=1.0e-5; k=1;
while abs(b-a)>dlt
c=(a+b)/2 if z(c)==0 break;
elseif z(c)*z(b)<0 a=c; else b=c; end
fprintf('k=%d,x=%.5f\\n',k,c); k=k+1;
end %二分法解方程
k= k=
结果为: 1 2 11 12 3 13 4 14 5 15 6 16 7 17 8 18 9 19 10 x= 1.57000 0.78500 0.39250 0.58875 0.68688 0.73594 0.71141 0.72367 0.72980 0.73287 x= 0.73134 0.73210 0.73172 0.73191 0.73201 0.73196 0.73198 0.73200 0.73200 所以x =0.73200 此时用语句: x=0.73200 s=eval(f)
得出s的值便是驳船的最大长度 s =21.0372
结论:
驳船的长度不能超过21.0372米
五、实验的总结与体会
通过本次实验,我学会了用数学模型解决生活中的实际问题。在matlab,我对符号函数的运用有了一定的了解。同时,二分法求解方程是本题最大的收获。
实验二
一、实验问题
为了在海岛I与某城市C之间铺设一条地下光缆,每千米光缆铺设成本在水下部分是C1,在地下部分是C2;为使得铺设该光缆的成本最低,光缆的转折点P(海岸线上)应该取到何处?其中海岛I与城市C之间的水平距离l=30km,海岛距海岸线垂直距离h1=15km,城市距海岸线垂直距离h=10km,C1=3000万元/km,C2=1500万元/km,求P点的坐标(误差<10-3km)。
二、问题的分析
题目的主体是求一个极值。所以先建立所用成本的函数关系,然后再求极值。我们会发现,成本与p点坐标有关。于是,就可列出成本与P点坐标的关系,而p点坐标可以用它对城市C的仰角来表示。求极值的问题,可以转换成解方程的问题。驻点时,函数的导数为零,可看作一个方程,然后求解。
三、程序设计流程
建立函数 求导 解方程 完成
四、上机实验
建立函数: f(x)=
10102•1500+3000•152+(30−) sinxtanx编写代码: syms x
k= k= f=10*1500/sin(x)+3000*sqrt(15^2+(30-10/tan(x))^2); %给出函数 diff(f,x) %求导
z=inline('-15000/sin(x)^2*cos(x)+30000/(225+(30-10/tan(x))^2)^(1/2)*(30-10/tan(x))/tan(x)^2*(1+tan(x)^2)')
a=0; b=3.14; dlt=1.0e-5; k=1;
while abs(b-a)>dlt c=(a+b)/2 if z(c)==0 break;
elseif z(c)*z(b)<0 a=c; else b=c; end
fprintf('k=%d,x=%.5f\\n',k,c); k=k+1;
end %二分法解方程 结果为: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 x= 1.57000 0.78500 0.39250 0.58875 0.49062 0.44156 0.41703 0.42930 0.42316 0.42010 x= 0.42163 0.42086 0.42125 0.42144 0.42134 0.42139 0.42142 0.42140 0.42140 所以x=0.42140
P距城市C的水平距离为:
10=22.309(米) tanx五、实验的总结与分析
通过本次实验,我学会了用数学模型解决生活中的实际问题。在matlab,我对符号函数的运用有了一定的了解。同时,二分法求解方程是本题最大的收获。
实验三
一、实验问题
Feigenbaum曾对超越函数y=λsin(πx) (λ为非负实数)进行分岔与混沌的研究,试利 用迭代格式xk+1=λsin(πxk),做出相应的Feigenbaum图。
二、上机实验
编写代码: clear;clf; hold on
axis([0.1,10,-15,15]); grid
for r=0:0.01:9.9 x=[0.1]; for i=2:150
x(i)=r*sin(pi*x(i-1)); end
for i=101:105
plot(r,x(i),'k.');
end end 实验结果:
实验四
一、实验问题
利用复化梯形法求解积分
二、上机实验
被积函数:f(x)=5(x+xsin x) 编写代码: clear;
f=inline('5.*(x+x.*sin(x))');
a=0;b=1;n=1; h=(b-a)/n;
t1=h/2*(f(a)+f(b)); er=1;k=1;
while er>1.0e-5 s=0; for i=1:n
s=s+f(a+(i-1/2)*h); end
t2=(t1+h*s)/2; er=abs(t2-t1);
fprintf('n=%.0f,p=%.6f,r=%.6f\\n',k,t2,er); n=2*n;h=h/2;t1=t2; k=k+1; end
运行结果:
n=1,p=4.151121,r=0.452557 n=2,p=4.041910,r=0.109210 n=3,p=4.014845,r=0.027066 n=4,p=4.008093,r=0.006752 n=5,p=4.006406,r=0.001687 n=6,p=4.005984,r=0.000422 n=7,p=4.005879,r=0.000105 n=8,p=4.005852,r=0.000026 n=9,p=4.005846,r=0.000007
三、实验总结与体会
通过本次实验,我对用复化梯形法求解积分的过程有了一定的了解,同时对MATLAB工具认识更加深了。
因篇幅问题不能全部显示,请点此查看更多更全内容