1、常微分方程数值解54633淮 海 工 学 院实 验 报 告 书课程名称: 数学实验 实验名称: 常微分方程数值解 班 级 数学091 姓 名: 耿萍 学号:090911107日 期: 2012.4.6 地点 数学实验室 指导教师: 曹卫平 成绩: 数 理 科 学 系1. 实验目的:1用MATLAB软件掌握求微分方程数值解的方法。 2通过实例学习用微分方程模型解决简化的实际问题。2. 实验内容:(1)容器盛满水后,底端直径为的小孔开启。根据水力学知识,当水面高度为h时,水从小孔中流出的速度为v=0.6(g为重力加速度,0.6为空口收缩系数)。1)若容器为倒圆锥形,现测得容器高和上底面直径均为1.
2、2m,小孔直径为3cm,问水从小孔中流完需要多少时间;2分钟时水面高度是多少。2)若容器为倒葫芦形,现测得容器高1.2m,小孔直径3cm,由底端向上每隔0.1m测出容器的直径如下表所示,问水从小孔中流完需要多少时间;2分钟水面高度是多少。x00.10.20.30.40.50.60.70.80.911.11.2D0.03 0.05 0.08 0.14 0.19 0.33 0.45 0.68 0.98 1.10 1.20 1.13 1.00 (图略)(2)一只小船渡过宽为d的河流,目标是起点A正对着的另一岸B点。已知河水流速为v1与船在静水中的速度v2之比为k。1)建立小船航线的方程,求其解析解。
3、2)设d=100m,v1=1m/s,v2=2m/s,用数值解法求渡河所需时间、任意时刻小船的位置及航行曲线,作图,并与解析解比较。3. 实验步骤:(1) 水面直径等于水深,设水深为h时,流量为0.6(/4)d2*(gh)0.5,0.6*(g*h)(0.5)*(d0/2)2*dt=/4*h2*dh则水深下降dh所需时间 :dt=-(/4)h2*dh/0.6(/4)d2*(gh)0.5=-h1.5*dh/0.6d2*(g)0.5水深由1.2m至0定积分得水从小孔流完的时间:T(其中已知d=0.03m,g=9.8m*s(-2) 设两分钟(120S)后水深为X m ,由dt=-(/4)h2*dh/0.
4、6*(/4)*d2*(gh)0.5=-h1.5*dh/0.6d2*(g)0.5则263.93-120 =X2.5/1.5*d2*(g)0.5 以d=0.03m,g=9.8m*s*-2代入上式得 水深:X 由 知容器高1.2m,水深为h时,流量为0.6(/4)d2*(gh)0.5,由于不同高度,倒葫芦形半径不同,用欧拉方程和龙格库塔方法则水深下降dh所需时间 :dt=t(k+1)-t(k)=-(/4)h2*dh/0.6(/4)d2*(gh)0.5=-h1.5*dh/0.6d2*(g)0.5然后利用循环for k=1:length(L),t(k)=(h(k+1)-h(k)*(/4)*d(k)2)/
5、(0.6*(/4)*d2*(g(1.2-h(k)0.5),T=sum(t).可以求得水从小孔流完的总时间。 设两分钟(120S)后水深为X m ,由S=0,利用条件,当120-s g=9.8;d=0.03; g=9.8;d=0.03;syms hy=-h(1.5)/(0.6*d2*sqrt(2*g);T=int(y,h,1.2,0);t1=eval(T)x=(T-120)*(1.5*d2*sqrt(2*g)(0.4);h1=eval(x)t1 =263.9316h1 =0.9416clear all,clc;g=9.8;d=0.03;k1=0;k2=0;h=0.4;x(1)=1.2;for n
6、=1:1000 k1=0.15*sqrt(g*(x(n)*d2/(-43.6359*x(n)8+213.0457*x(n)7-414.873*x(n)6+410.2075*x(n)5-218.8936*x(n)4+62.553*x(n)3-8.3215*x(n)2+0.49619*x(n)+.014892)2; k2=0.15*sqrt(g*(x(n)-h*k1)*d2/(-43.6359*(x(n)-h*k1)8+213.0457*(x(n)-h*k1)7-414.873*(x(n)-h*k1)6+410.2075*(x(n)-h*k1)5-218.8936*(x(n)-h*k1)4+62.
7、553*(x(n)-h*k1)3-8.3215*(x(n)-h*k1)2+0.49619*(x(n)-h*k1)+.014892)2; x(n+1)=x(n)-h*(k1+k2)/2;endh2=x(300) t=0:h:1000*h;plot(t,x);axis(0,400,0,1.21);h2 =1.0278(2)function dx=key(t,x)d=100;v1=1;v2=2;s=sqrt(d-x(2)2+(v1*t)2);dx=v2*x(1)/s;v2*(d-x(2)/s;ts=1:1:50;x0=0,0;t,x=ode45(key,ts,x0);t,xplot(t,x),gri
8、d,gtext(x(t),gtext(y(t),pauseplot(x(:,1),x(:,2),grid,gtext(x),gtext(y)ans = 2.0000 0 0 4.0000 0 3.9980 6.0000 0 7.9923 8.0000 0 11.9801 10.0000 0 15.9582 12.0000 0 19.9225 14.0000 0 23.8680 16.0000 0 27.7883 18.0000 0 31.6757 20.0000 0 35.5209 22.0000 0 39.3125 24.0000 0 43.0372 26.0000 0 46.6794 28
9、.0000 0 50.2218 30.0000 0 53.6456 32.0000 0 56.9316 34.0000 0 60.0612 36.0000 0 63.0182 38.0000 0 65.7902 40.0000 0 68.3690 42.0000 0 70.7524 44.0000 0 72.9424 46.0000 0 74.9458 48.0000 0 76.7726 50.0000 0 78.4348 52.0000 0 79.9454 54.0000 0 81.3178 56.0000 0 82.5652 58.0000 0 83.6999 60.0000 0 84.7333 62.0000 0 85.6759 64.0000 0 86.5371 66.0000 0 87.3254 68.0000 0 88.0482 70.0000 0 88.71234. 实验数据记录及分析(或程序及运行结果):通过这次试验,我学会了用MATLAB软件求微分方程数值解的方法,并且通过实例学习了微分方程模型解决简化的实际问题,我觉得学的知识只有运用到实际生活中才发挥了它的作用。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1