求微分方程的解学习课件.pptVIP

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数学实验 实验四 求微分方程的解 问题背景和实验目的 Euler 折线法 初值问题的Euler折线法 Euler 折线法举例 Euler 折线法源程序 Euler折线法举例(续) Runge-Kutta 方法 Runge-Kutta 方法 四阶 R-K 方法源程序 Runge-Kutta 方法 Euler 法与 R-K法误差比较 Matlab 解初值问题 dsolve 求解析解 dsolve 的使用 dsolve 举例 dsolve 举例 dsolve 举例 数值求解 Matlab的ODE求解器 参数说明 数值求解举例 数值求解举例 求解微分方程小结 如何定义函数文件 如何定义函数文件 举例说明 举例说明(单个方程) 举例说明(方程组) 思考 说明 例 高阶常微分方程 参数传递 odefun 变量属性必须一一对应! function dy = myfun2(t,y) 如果是常微分方程组,y 就是列向量! dy 必须是列向量,长度为方程组的个数,通常与y的长度相同! 函数中的输入参数和输出参数是形参,名字可以任意取,但必须满足上述条件。即输入参数有两个,第一个表示自变量,第二个是由因变量组成的列向量,输出参数必须是列向量。 function dy = myfun3(t,y) dy = zeros(2,1); dy(1) = y(2) + t; dy(2) = t - 2; 例:解初值问题: , , function out = myfun3(t,y) out = [y(2) + t; t – 2]; function yprime = myfun3(x,y) yprime = [y(2) + x; x – 2]; clear; [T,Y]=ode45(@myfun3,[0,10],[1,1]); 2、主文件 main3.m 1、函数文件 myfun3.m 高阶常微分方程 例: Van der Pol 初值问题 令 ,则原方程可化为 一阶常微分方程组 变量替换 化为 参数怎么处理? 用全局变量传递 * * 自牛顿发明微积分以来,微分方程在描述事物运动规律上已发挥了重要的作用。实际应用问题通过数学建模所得到的方程,绝大多数是微分方程。 由于实际应用的需要,人们必须求解微分方程。然而能够求得解析解的微分方程十分有限,绝大多数微分方程需要利用数值方法来近似求解。 本实验主要研究如何用 Matlab 来计算微分方程(组)的数值解,并重点介绍一个求解微分方程的基本数值解法--Euler折线法。 考虑一维经典初值问题 基本思想:用差商代替微商 根据 Talyor 公式,y(x) 在点 xk 处有 具体步骤: 等距剖分: 步长: 分割求解区间 分割求解区间,差商代替微商,解代数方程 为分割点 差商代替微商 得迭代格式: k = 0, 1, 2, ..., n-1 yk 是 y (xk) 的近似 例:用 Euler 法解初值问题 取步长 h = (2 - 0)/n = 2/n,得差分方程 当 h=0.4,即 n=5 时,Matlab 源程序见 fuluA.m 解: clear f=sym(y+2*x/y^2); a=0; b=2; h=0.4; n=(b-a)/h+1; % n=(b-a)/h; x=0; y=1; szj=[x,y]; for i=1:n-1 % i=1:n y=y+h*subs(f,{x,y},{x,y}); x=x+h; szj=[szj;x,y]; end szj plot(szj(:,1),szj(:,2),or-) 解析解: 解析解 近似解 y=1/3*(-18-54*x+45*exp(3*x))^(1/3) 为了减小误差,可采用以下方法: 让步长 h 取得更小一些; 改用具有较高精度的数值方法: 龙格-库塔方法 Runge-Kutta (龙格-库塔) 方法 是一类求解常微分方程的数值方法 有多种不同的迭代格式 用得较多的是 四阶R-K方法 其中 clear; f=sym(y+2*x/y^2); a=0; b=2; h=0.4; n=(b-a)/h+1; % n=(b-a)/h; x=0; y=1; szj=[x,y]; for i=1:n-1 % i=1:n L1=subs(f,{x,y},{x,y}); L2=subs(f,{x,y},{x+h/2,y+L1*h/2}); L3=subs(f,{x,y},{x+h/2,y+L2*h/2}); L4=subs(f,{x,y},{x+h,y+L3*h

您可能关注的文档

文档评论(0)

ipad0d + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档