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

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

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验报告七_常微分方程初值问题的数值解法.doc

浙江大学城市学院实验报告 课程名称 数值计算方汰? 实验项目名称 常微分方程初值问题的数值解法 实验成绩 指导老师(签名) 日期2015/12/16 实验目的和要求 川Matlab软件掌握求微分方程数值解的欧拉方法和龙格一库塔方法; 通过实例学习用微分方程模型解决简化的实际问题。 实验内容和原理 编程题2-1要求写出Matlab源程序(nr文件),并有适当的 语句;分析应用题2-2, 2-3, 2-4, 2-5耍求将问题的分析过程、Matlab源程序和运行结果和结果的解释、算法的分析写在 实验报告上。 2-1编程 编写用向前欧拉公式和改进欧拉公式求微分方程数值解的Matlab程序,问题如下: 在区间内(7V + 1)个等距点处,迪近下列初值问题的解,丼对程序的每一川添上 语 句。 / = f(x,y) axb y(a) = yQ Euler 法 y=euler (a, b, n, yO, f, f 1, bl) 改进 Euler 法 y=eulerpro(a, b, n, yO, f, fl, bl) 2-2分析应用题 假设等分区间数= 100,川欧拉法和改进欧拉法在区间f e [0,10]内求解初值问题 f yV) = y(0 - 20 ly(o)= io 并作出解的曲线图形,M吋将方程的解析解也画在M—张罔上,并作比较,分析这两种方法 的精度。 2-3分析应用题 川以T三种不同的方法求K述微分方程的数值解,取A = 10 [y= y + 2% 0%1 [(0) = 1 M出解的图形,与精确值比较并进行分析。 1) 欧拉法; 2) 改进欧拉法; 3) 龙格一库塔方法; 2-4分析应用题 考虑一个涉及到社会上与众不同的人的繁衍问题模型。假设在时刻f (单位为年),社会 上有人U x(Z)人,乂假设所有与众不同的人与别的与众不同的人结婚后所牛后代也足与众 不同的人。而固定比例为A?的所旮其他的后代也足与众不同的人。如果对所旮人來说出生率 假定为常数A, 乂如果普通的人和与众不同的人的婚配足任意的,则此问题可以用微分方程 表示为: 变戸=rb(\ -尸(,)) dt K中变fi P(z) = x,.(z)/%(z)衷示在时刻/社会.卜.与众不同的人的比例,%,.()表示在时刻r人口 中与众不同的人的数量。 1) 假定扒0) = 0.01,/? = 0.02和/* = 0.1,当步长为Zz = l年时,求从X)到/ = 50解p⑴的近 似位,并作出近似解的曲线图形。 2) 精确求出微分方程的解/々),并将你当/ = 50吋在分题⑹中得到的结果与此吋的精确值 进行比较。 MATLAB相关函数】 ■ 求微分方程的解析解及其数值的代入 dsolve(‘egnl’, ‘egn2’,…4x’) subs (expr,{x,y”},{xl,yl,.}) 艽中‘egn/’表示第/个方程,‘%’表示微分方程屮的£)变量,默认吋B变量为f。 subs命令屮的expr、x、y为符☆型表达式,x、y分别用数值xl、x2代入。 ? syms x y z ? subs(’x+y+z.,{x,y,z},{ 1,2,3}) ans = 6 ? syms x ? subsfx八2’,x,2) ans = 4 ? s=dsolve( Dy = 1 + yA2 ’,‘ y(0) = P,‘ a:》 ans = tan(x-l/4* pi) ? syms x ? subs(s,x,2) ans = -0.3721 ■ 右端函数/(x,y)的A动生成 f= inline(‘expr’,’varl’,‘var2’, ) 其屮’expr’表示阑数的表达式,’varl’,‘var2’表示函数表达式十的变景,运行该函数, 生成一个新的函数表达式为f (varl,var2, )。 ? f=inline(\+3*y?x’,’y’) Inline function: f(x,y) = x+3*y ? f(2,3) ans = 11 ■ 4, 5阶尨格一库塔方法求解微分方程数值解 [t, x]=ode45(f, ts, xO, options) -M:屮f是由待解方程写成的m文件名;xO为函数的初位;t, x分别为输出的自变置和函 数值(列向景),t的步长足程序根据误差限白动选定的。若ts=[t0,tl,t2,…,tf],则 输fli在A变跫指定值,等步长吋用ts=tO:k:tf,输出在等分点;options用于设定误差 限(可以缺省,缺省时设定为相对误差1(T3,绝对误差1(T6),程序为: options=odeset ( ‘reltol’,rt, ’ abstol’,at),这里 rt, at 分别为设定的相对误差 和绝对误差。常用选项见下表。 选项名 功能 可选值 宵缺位

文档评论(0)

ggkkppp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档