- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
解微分方程
第第第五五五章章章 解解解常常常微微微分分分方方方程程程
第一节 用MATLAB解常微分方程
1. 简单例子
d2x dx
例1 求解常微分方程, = 4 初始条件为 | = 2, x| = 1.
dt2 dt t=0 t=0
y(1) = x ? ?
令 ? ! dy(1)
dx ydot(1) ? ?
y(2) = 令 = ? dt ?
dt ydot(2) dy(2)
?
? dy(1) dt
? = y(2) 代表方程的函数文件是
方程成为 dt
? dy(2)
? = 4 function ydot=yjs(t,y)
dt ydot=[y(2); 4 ];
完整的程序如下
? 主文件是函数文件 function jyjs
? 微分方程是子函数 [T,Y]=ode45(@yjs,[0:10],[2,1]);
plot(T,Y(:,1),T,Y(:,2))
? 指令ode45解方程
? 用函数句柄调用方程 function ydot=yjs(t,y)
? 时间范围为0 ≤ t ≤ 10 ydot=[y(2); 4 ];
? 初位移2,初速度1
? 输出时间T,两分量矢量Y
? 画位移y(:,1),速度y(:,2)曲线
2. 基本步骤
2.1 编写表示微分方程的函数文件
微分方程写成一阶常微分方程组dy/dt, t是自变量标量,y(t)是含t的函数
构成的列矢量,ydot是列矢量dy/dt。函数文件格式如下
function ydot = odefun(t,y)
ydot = [在括号内插入t 和/或y的函数]
2.2 给定解方程的条件与要求
odeset 建立或改变解方程的条件和要求。显示全部参数值。
odeget 获取“选项结构数组(options structure)”
指令odeset用法语句格式如下:
options = odeset(0name10, value1, 0name20, value2, ???)
options = odeset(oldopts, 0name10, value1, ???)
options = odeset(oldopts, newopts)
odeset
2.3 调用指令求解并处理结果
解常微分方程组的指令
ode45 解非刚性微分方程,中等精度,使用Runge-Kutta法的四、五阶算法。
ode23 解非刚性微分方程,低精度,使用Runge-Kutta法的二、三阶算法。
ode113 解非刚性微分方程,Adams-Bashforth-Moulton PECE法。
ode23t 解中等的刚性微分方程,使用自由内插法的梯形法则。
ode15s 解刚性微分方程,使用可变阶次的数值微分(NDFs)算法。
ode23s 解刚性微分方程,低阶方法,使用修正的Rosenbrock公式。
ode23tb 解刚性微分方程,低阶方法,使用TR-BDF2方法。
注: 大多数情况下是使用ode23或ode45即可。
用ode45为例介绍指令的语句格式:
[T, Y] = ode45(odefun, tspan, y0)
[T, Y] = ode45(odefun, tspan, y0, options)
[T, Y, TE, YE, IE] = ode4
文档评论(0)