微分方程的matlab求解.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
蓝色曲线 ——y(1); (原方程解) 红色曲线 ——y(2); 例2 Van der pol 方程: 令 y1=x (t), y2 = x’(t); 该方程无解析解! 范例 (1)编写M文件 ( 文件名为 vdpol.m): function yp = vdpol(t,y); yp=[y(2);(1-y(1)^2)*y(2)-y(1)]; (2)编写程序如下:(vdj.m) [t,y]=ode23(vdpol,[0,20],[3,0]); y1=y(:,1); % 原方程的解 y2=y(:,2); plot(t,y1,t,y2,‘--’) % y1(t),y2(t) 曲线图 pause, plot(y1,y2),grid, % 相轨迹图,即y2(y1)曲线 范例 计算结果 范例 主 页 下一页 上一页 数学实验 定义:含有导数的方程称为微分方程。如 f(x, y(x), y’(x))=0 微分方程模型 1、微分方程的一般形式: F(x, y, y’,…,y(n) ) = 0 隐式 或 y(n) = f (x, y, y’,…,y (n-1) ) 显式 特殊情形: 2、一阶微分方程组的一般形式: 初始条件:y(x0) = y0 微分方程模型 ③ 图形解 t y o ①简单的微分方程。 ②复杂、大型的微分方程。 返 回 ① 解析解 y = f(t) ② 数值解 (ti, yi) 欧拉方法 改进欧拉方法 梯形法 龙格-库塔法 微分方程求解方法简介 微分方程数值解 1、欧拉法 2、龙格—库塔法 数值求解思想:(变量离散化) 引入自变量点列{xn} → {yn}, 在x0?x1?x2?…?xn?…上求y(xn)的近似值yn.通常取等步长 h,即xn = x0+ n×h,或 xn = xn-1+ h,(n=1,2,…)。 1) 向前欧拉公式: (y’= f (x, y) ) y (xn+1) ? y(xn) + h f(xn, y(xn)) (迭代式) yn+1 ? yn + h f(xn, yn) (近似式) 特点:f(x,y)取值于区间[xn, xn+1]的左端点. 在小区间[xn, xn+1]上用差商代替微商(近似), 1、欧拉方法 yn+1 ? yn + h f(xn +1, yn +1) 特点:① f(x,y)取值于区间[xn, xn+1]的右端点. ② 非线性方程, 称‘隐式公式’。 yn+1 = yn + h f(xn, yn) 2) 向后欧拉公式 方法:迭代( y’= f (x, y) ) x=[];y=[]; x(1)=x0; y(1)=y0; for n=1:k x(n+1)=x(n)+n*h; y(n+1) = y(n) + h *f(x(n), y(n)); (向前) end 1、欧拉方法 例 1 观察向前欧拉、向后欧拉算法计算情况。与精确解进行比较。误差有多大? 解:1) 解析解: y = x + e-x 1、欧拉方法 2) 向前欧拉法: yn+1 = yn + h(-yn + xn+ 1) = (1-h) yn + h xn+ h 3)向后欧拉法: yn+1 = yn + h(- yn +1+xn +1+1) 转化 yn+1 = (yn + h xn+1+ h )/(1+h) y’ = f(x,y) = -y + x +1; 1、欧拉方法 x1(1)=0;y1(1)=1;y2(1)=1;h=0.1;(died.m) for k=1:10 x1(k+1)=x1(k)+h; y1(k+1)=(1-h)*y1(k)+h*x1(k)+h; y2(k+1)=(y2(k)+h*x1(k+1)+h)/(1+h); end x1,y1,y2,(y1——向前欧拉解,y2——向后欧拉解) x=0:0.1:1; y=x+exp(-x)(解析解) plot(x,y,x1,y1,k:,x1,y2,r--) 1、欧拉方法 1.3855 1.3487 1.3679 1 1.3241 1.2874 1.3066 0.9 1.2665 1.2305 1.2493 0

文档评论(0)

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

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

版权声明书
用户编号:7060131150000004

1亿VIP精品文档

相关文档