收藏 分享(赏)

实验报告七 常微分方程初值问题的数值解法.doc

上传人:精品资料 文档编号:10586536 上传时间:2019-12-02 格式:DOC 页数:12 大小:330.50KB
下载 相关 举报
实验报告七 常微分方程初值问题的数值解法.doc_第1页
第1页 / 共12页
实验报告七 常微分方程初值问题的数值解法.doc_第2页
第2页 / 共12页
实验报告七 常微分方程初值问题的数值解法.doc_第3页
第3页 / 共12页
实验报告七 常微分方程初值问题的数值解法.doc_第4页
第4页 / 共12页
实验报告七 常微分方程初值问题的数值解法.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、浙江大学城市学院实验报告课程名称 数值计算方法 实验项目名称 常微分方程初值问题的数值解法 实验成绩 指导老师(签名 ) 日期 2015/12/16 一. 实验目的和要求1 用 Matlab 软件掌握求微分方程数值解的欧拉方法和龙格库塔方法;2 通过实例学习用微分方程模型解决简化的实际问题。二. 实验内容和原理编程题 2-1 要求写出 Matlab 源程序(m 文件) ,并有适当的注释语句;分析应用题 2-2,2-3,2-4,2-5 要求将问题的分析过程、Matlab 源程序和运行结果和结果的解释、算法的分析写在实验报告上。2-1 编程编写用向前欧拉公式和改进欧拉公式求微分方程数值解的 Mat

2、lab 程序,问题如下:在区间 内 个等距点处,逼近下列初值问题的解,并对程序的每一句添上注释,ab(1)N语句。0, ()yfxaxbya Euler 法 y=euler(a,b,n,y0,f,f1,b1)改进 Euler 法 y=eulerpro(a,b,n,y0,f,f1,b1)2-2 分析应用题假设等分区间数 ,用欧拉法和改进欧拉法在区间 内求解初值问题10n0,1t()201yt并作出解的曲线图形,同时将方程的解析解也画在同一张图上,并作比较,分析这两种方法的精度。2-3 分析应用题用以下三种不同的方法求下述微分方程的数值解,取 10h20(0)1yxx画出解的图形,与精确值比较并进

3、行分析。 1)欧拉法; 2)改进欧拉法;3)龙格库塔方法;2-4 分析应用题考虑一个涉及到社会上与众不同的人的繁衍问题模型。假设在时刻 (单位为年),社t会上有人口 人,又假设所有与众不同的人与别的与众不同的人结婚后所生后代也是与()xt众不同的人。而固定比例为 的所有其他的后代也是与众不同的人。如果对所有人来说出r生率假定为常数 ,又如果普通的人和与众不同的人的婚配是任意的,则此问题可以用微b分方程表示为:()1()dptrbt其中变量 表示在时刻 社会上与众不同的人的比例, 表示在时刻 人()()iptxt ()ixtt口中与众不同的人的数量。 1)假定 和 ,当步长为 年时,求从 到 解

4、 的0.1,.02b.r1h05()p近似值,并作出近似解的曲线图形。2)精确求出微分方程的解 ,并将你当 时在分题(b)中得到的结果与此时的精确()pt50t值进行比较。【MATLAB 相关函数】 求微分方程的解析解及其数值的代入dsolve(egn1, egn2, ) xsubs (expr, x,y, x1,y1, )其中egn 表示第 个方程, 表示微分方程中的自变量,默认时自变量为 。iix tsubs 命令中的 expr、x、y 为符合型表达式, x、y 分别用数值 x1、x2 代入。 syms x y z subs(x+y+z,x,y,z,1,2,3)ans =6 syms x

5、subs(x2,x,2)ans =4s=dsolve( , , )12Dy(0)1yxans = tan(4)xpi syms x subs(s,x,2)ans =-0.3721 右端函数 的自动生成(,)fxyf= inline(expr, var1, var2,)其中expr表示函数的表达式, var1, var2 表示函数表达式中的变量,运行该函数,生成一个新的函数表达式为 f (var1, var2, )。 f=inline(x+3*y,x,y)f =Inline function:f(x,y) = x+3*y f(2,3)ans =11 4,5 阶龙格库塔方法求解微分方程数值解t,x

6、=ode45(f,ts,x0,options)其中 f 是由待解方程写成的 m 文件名;x0 为函数的初值;t,x 分别为输出的自变量和函数值(列向量),t 的步长是程序根据误差限自动选定的。若 ts=t0,t1,t2,tf,则输出在自变量指定值,等步长时用 ts=t0:k:tf,输出在等分点;options 用于设定误差限(可以缺省,缺省时设定为相对误差 ,绝对误差 ),程序为:310610options=odeset(reltol,rt,abstol,at),这里 rt,at 分别为设定的相对误差和绝对误差。常用选项见下表。选项名 功能 可选值 省缺值AbsTol 设定绝对误差 正数 16

7、eRelTol 设定相对误差 正数 3InitialStep 设定初始步长 正数 自动MaxStep设定步长上界 正数 0tspanMaxOrder 设定 ode15s 的最高阶数 1,2,3,4,5 5Stats 显示计算成本统计 on,off offBDF 设定 ode15s 是否用反向差分 on,off off例:解微分方程204(0)1tyt 在命令窗口执行= ( , , );odefunile2*yty;,45(,041)tyodfunans =0 1.00000.0502 1.04900.1005 1.09590.1507 1.14083.8507 2.95033.9005 2.9

8、6723.9502 2.98394.0000 3.0006plot( , ,o-,) %解函数图形表示ty%不用输出变量,则直接输出图形45(,041)odefun;,:ode,tyans =0 1.00001.0000 1.73212.0000 2.23613.0000 2.64584.0000 3.0006三. 操作方法与实验步骤(包括实验数据记录和处理)2-1 编程编写用向前欧拉公式和改进欧拉公式求微分方程数值解的 Matlab 程序,问题如下:在区间 内 个等距点处,逼近下列初值问题的解,并对程序的每一句添上注释,ab(1)N语句。0, ()yfxaxbya Euler 法 y=eul

9、er(a,b,n,y0,f,f1,b1)改进 Euler 法 y=eulerpro(a,b,n,y0,f,f1,b1)Euler 法 y=euler(a,b,n,y0,f,f1,b1) y=zeros(1,n+1);y(1)=y0;h=(b-a)/n;x=a:h:b;for i=1:n;y(i+1)=y(i)+h*f(x(i),y(i);endplot(x,y)hold on% 求微分方程的精确解x1=linspace(a,b,100);精确解为s=dsolve(f1,b1,x)syms xy1=zeros(1,100);fori=1:100y1(i)=subs(s,x,x1(i); endp

10、lot(x1,y1,r)title(红色代表精确解)改进 Euler 法y=eulerpro(a,b,n,y0,f,f1,b1) % 求微分方程的数值解y=zeros(1,n+1);y(1)=y0; h=(b-a)/n;x=a:h:b;fori=1:n;T1=f(x(i),y(i);T2=f(x(i+1),y(i)+h*T1);y(i+1)=y(i)+(h/2)*(T1+T2);endplot(x,y)hold on% 求微分方程的精确解x1=linspace(a,b,100);精确解为s=dsolve(f1,b1,x)syms xy1=zeros(1,100);for i=1:100y1(i

11、)=subs(s,x,x1(i);endplot(x1,y1,r)title(红色代表精确解)2-2 分析应用题假设等分区间数 ,用欧拉法和改进欧拉法在区间 内求解初值问题10n0,1t()201yt并作出解的曲线图形,同时将方程的解析解也画在同一张图上,并作比较,分析这两种方法的精度。(1)向前欧拉法 euler(0,10,100,10,inline(y-20,x,y),Dy=y-20,y(0)=10) ans =精确解为s = 20 - 10*exp(x) ans = 1.0e+005 * Columns 1 through 8 0.0001 0.0001 0.0001 0.0001 0.

12、0001 0.0000 0.0000 0.0000 Columns 9 through 16 -0.0000 -0.0000 -0.0001 -0.0001 -0.0001 -0.0001 -0.0002 -0.0002 Columns 17 through 24 -0.0003 -0.0003 -0.0004 -0.0004 -0.0005 -0.0005 -0.0006 -0.0007 Columns 25 through 32 -0.0008 -0.0009 -0.0010 -0.0011 -0.0012 -0.0014 -0.0015 -0.0017 Columns 33 throug

13、h 40 -0.0019 -0.0021 -0.0024 -0.0026 -0.0029 -0.0032 -0.0035 -0.0039 Columns 41 through 48 -0.0043 -0.0048 -0.0053 -0.0058 -0.0064 -0.0071 -0.0078 -0.0086 Columns 49 through 56 -0.0095 -0.0105 -0.0115 -0.0127 -0.0140 -0.0154 -0.0170 -0.0187 Columns 57 through 64 -0.0206 -0.0227 -0.0250 -0.0275 -0.03

14、02 -0.0333 -0.0366 -0.0403 Columns 65 through 72 -0.0444 -0.0488 -0.0537 -0.0591 -0.0651 -0.0716 -0.0788 -0.0867 Columns 73 through 80 -0.0954 -0.1049 -0.1154 -0.1270 -0.1397 -0.1537 -0.1691 -0.1860 Columns 81 through 88 -0.2046 -0.2251 -0.2477 -0.2724 -0.2997 -0.3297 -0.3627 -0.3990 Columns 89 thro

15、ugh 96 -0.4389 -0.4828 -0.5311 -0.5842 -0.6427 -0.7070 -0.7777 -0.8555 Columns 97 through 101 -0.9410 -1.0352 -1.1387 -1.2526 -1.3779(2)改进欧拉法 eulerpro(0,10,100,10,inline(y-20,x,y),Dy=y-20,y(0)=10) ans = 精确解为s = 20 - 10*exp(x) ans = 1.0e+005 * Columns 1 through 8 0.0001 0.0001 0.0001 0.0001 0.0001 0.

16、0000 0.0000 -0.0000 Columns 9 through 16 -0.0000 -0.0000 -0.0001 -0.0001 -0.0001 -0.0002 -0.0002 -0.0002 Columns 17 through 24-0.0003 -0.0003 -0.0004 -0.0005 -0.0005 -0.0006 -0.0007 -0.0008 Columns 25 through 32 -0.0009 -0.0010 -0.0011 -0.0013 -0.0014 -0.0016 -0.0018 -0.0020 Columns 33 through 40 -0

17、.0022 -0.0025 -0.0028 -0.0031 -0.0034 -0.0038 -0.0042 -0.0047 Columns 41 through 48 -0.0052 -0.0058 -0.0064 -0.0071 -0.0079 -0.0087 -0.0097 -0.0107 Columns 49 through 56 -0.0119 -0.0131 -0.0145 -0.0161 -0.0178 -0.0197 -0.0218 -0.0241 Columns 57 through 64 -0.0266 -0.0294 -0.0325 -0.0360 -0.0398 -0.0

18、440 -0.0486 -0.0537 Columns 65 through 72 -0.0594 -0.0656 -0.0726 -0.0802 -0.0886 -0.0980 -0.1083 -0.1197 Columns 73 through 80 -0.1323 -0.1462 -0.1615 -0.1785 -0.1973 -0.2180 -0.2409 -0.2663 Columns 81 through 88 -0.2942 -0.3251 -0.3593 -0.3971 -0.4388 -0.4849 -0.5358 -0.5921Columns 89 through 96 -

19、0.6543 -0.7230 -0.7989 -0.8828 -0.9755 -1.0780 -1.1912 -1.3163 Columns 97 through 101 -1.4545 -1.6073 -1.7760 -1.9626 -2.1686改进欧拉法的精度比向前欧拉法更高。2-3 分析应用题用以下三种不同的方法求下述微分方程的数值解,取 10h20(0)1yxx画出解的图形,与精确值比较并进行分析。 1)欧拉法; 2)改进欧拉法;2-4 分析应用题考虑一个涉及到社会上与众不同的人的繁衍问题模型。假设在时刻 (单位为年),社t会上有人口 人,又假设所有与众不同的人与别的与众不同的人结婚

20、后所生后代也是与()xt众不同的人。而固定比例为 的所有其他的后代也是与众不同的人。如果对所有人来说出r生率假定为常数 ,又如果普通的人和与众不同的人的婚配是任意的,则此问题可以用微b分方程表示为:()1()dptrbt其中变量 表示在时刻 社会上与众不同的人的比例, 表示在时刻 人()()iptxt ()ixtt口中与众不同的人的数量。 1)假定 和 ,当步长为 年时,求从 到 解 的0.1,.02b.r1h05()p近似值,并作出近似解的曲线图形。2)精确求出微分方程的解 ,并将你当 时在分题(b)中得到的结果与此时的精确()pt50t值进行比较。1) euler(0,50,50,0.01

21、,inline(0.002-0.002*p,t,p),Dp=0.002-0.002*p,p(0)=0.01) ans = 精确解为s = 1 - 99/(100*exp(x/500) ans = Columns 1 through 8 0.0100 0.0120 0.0140 0.0159 0.0179 0.0199 0.0218 0.0238 Columns 9 through 16 0.0257 0.0277 0.0296 0.0316 0.0335 0.0354 0.0374 0.0393 Columns 17 through 24 0.0412 0.0431 0.0450 0.0470

22、 0.0489 0.0508 0.0527 0.0546 Columns 25 through 32 0.0564 0.0583 0.0602 0.0621 0.0640 0.0658 0.0677 0.0696 Columns 33 through 40 0.0714 0.0733 0.0751 0.0770 0.0788 0.0807 0.0825 0.0844 Columns 41 through 48 0.0862 0.0880 0.0898 0.0917 0.0935 0.0953 0.0971 0.0989 Columns 49 through 51 0.1007 0.1025 0.1043(2) dsolve(Dp=0.002-0.002*p,p(0)=0.01,t) ans =1 - 99/(100*exp(t/500) 1 - 99/(100*exp(0.1) ans =0.1042与欧拉法求得的精确值 0.1043 差 0,0001四. 实验结果与分析

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报