




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微分方程组的龙格-库塔公式求解 matlab 版 南京大学 王寻 1. 一阶常微分方程组 考虑方程组 00 00 zxz,z , y, xg z yxy,z , y, xf y 其经典四阶龙格-库塔格式如下: 对于 n = 0, 1, 2,.,计算 43211 43211 22 6 22 6 LLLL h zz KKKK h yy nn nn 其中 334334 22 3 22 3 11 2 11 2 11 222222 222222 hLz ,hKy, hxgL,hLz ,hKy, hxfK hL z , hK y, h xgL, hL z , hK y, h xfK hL z , hK y, h xgL, hL z , hK y, h xfK z ,y,xgL,z ,y,xfK nnnnnn nnnnnn nnnnnn nnnnnn 下面给出经典四阶龙格-库塔格式解常微分方程组的 matlab 通用程序: %marunge4s.m %用途:4 阶经典龙格库塔格式解常微分方程组 y=f(x,y),y(x0)=y0 %格式:x,y=marunge4s(dyfun,xspan,y0,h) %dyfun 为向量函数 f(x,y),xspan 为求解区间x0,xn, %y0 为初值向量,h 为步长,x 返回节点,y 返回数值解向量 function x,y=marunge4s(dyfun,xspan,y0,h) x=xspan(1):h:xspan(2); y=zeros(length(y0),length(x); y(:,1)=y0(:); for n=1:(length(x)-1) k1=feval(dyfun,x(n),y(:,n); k2=feval(dyfun,x(n)+h/2,y(:,n)+h/2*k1); k3=feval(dyfun,x(n)+h/2,y(:,n)+h/2*k2); k4=feval(dyfun,x(n+1),y(:,n)+h*k3); y(:,n+1)=y(:,n)+(h/6).*(k1+2*k2+3*k3+k4); end 如下为例题: 例 1:取 h=0.02,利用程序 marunge4s.m 求刚性微分方程组 10100 209999010 z, z z ,y, z.y. y 的数值解,其解析解为: xxx. ez,eey 100100010 解:首先编写 M 函数 dyfun.m %dyfun.m function f=dyfun(t,y) f(1)=-0.01*y(1)-99.99*y(2); f(2)=-100*y(2); f=f(:); 然后编写一个执行函数: close all; clear all; clc; x,y=marunge4s(dyfun,0 500,2 1,0.002); plot(x,y); axis(-50 500 -0.5 2); text(120,0.4,y(x); text(70,0.1,z(x); title(数值解); figure; y1=exp(-0.01*x)+exp(-100*x);%解析解,用来做对比的。 z1=exp(-100*x); plot(x,y1,r); hold on; plot(x,z1,g); text(120,0.4,y(x); text(70,0.1,z(x); axis(-50 500 -0.5 2); title(解析解); 可以看出数值解和解析解的运算结果误差很小: -50050100150200250300350400450500 -0.5 0 0.5 1 1.5 2 y(x) z(x) 解 析 解 -50050100150200250300350400450500 -0.5 0 0.5 1 1.5 2 y(x) z(x) 数 值 解 例 2:考虑下面的 Lorenz 方程组 zxy dt dz xzyx dt dy yx dt dx 参数,适当的取值会使得系统趋于混沌状态。取=30,=2.8,=12,利 用经典四阶龙格-库塔法求其数值解,并绘制 z 随 x 变化的曲线。 解:首先编写函数的 m 文件: %mafun.m function ff=mafun(t,y) b=2.8;r=30;sigma=12; ff(1)=-sigma*y(1)+sigma*y(2); ff(2)=r*y(1)-y(2)-y(1)*y(3); ff(3)=y(1)*y(2)-b*y(3); ff=ff(:); 再编写运行函数: clear all; close all; clc; t,y=marunge4s(mafun,0 500,0 1 2,0.005); plot(y(1,:),y(3,:),r); 得到如下图所示的结果: -25-20-15-10-50510152025 0 10 20 30 40 50 60 2. 高阶微分方程组 对于高阶微分方程,总是可以化成方程组的形式。例如,二阶方程 0000 yx y,yxy y, y, xg y 总是可以化为一阶方程组: 00000 z yxz ,yxy z , y, xg z z y 因此不需要对于高阶方程给出计算公式。 例 3:求二阶方程 111 5112 3 yy .x,y y 的数值解,其解析解为: 2 1 x y 解:首先将二阶方程写为一阶方程组的形式: 112 11 3 z,y z y, z y 再编写函数的 m 文件: %这是一个二阶微分方程 function f=dyfun1(t,y) f(1)=y(2);%y(1)是 y,y(2)是 z。 f(2)=2*(y(1)*y(1)*y(1); f=f(:); 直接使用 ode45 来计算: close all; clear all; clc; x,y=ode45(dyfu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第五课 守望精神家园说课稿-2025-2026学年初中道德与法治统编版五四学制九年级上册-统编版五四学制2018
- 2025年职业会计师招聘考试练习题及标准答案
- 新疆兵团第五师八十八团学校高中信息技术下册《第10课时 数字化的声音文件》说课稿
- 2025版护士应急预案响应及培训聘用合同
- 新农人 面试题目及答案
- 二零二五年度智慧农业项目投资合作协议与经济合同规范
- 二零二五年度地磅买卖与节能降耗技术合同
- 二零二五年度空地租赁场地航空基地合作协议
- 二零二五年度抵押担保资产置换合同范例
- 2025年红白理事会档案员招聘面试全攻略面试题预测与解析
- 浅谈实现小学语文单元整体教学的有效策略
- 手动液压叉车安全技术培训
- 小学语文跨学科学习任务群学习任务设计策略
- 输电线路工程项目划分表
- 第06章设计美学程能林第4版《工业设计概论》课课件
- DB23-T 3492-2023 工贸企业充电间安全设施技术规范
- 防水工程施工报价表
- 中行bfw框架开发和测试资料课件
- 住院患者非计划性拔管风险评估与护理指导意见
- MSA偏倚分析报告
- 食材配送应急保障配合措施方案
评论
0/150
提交评论