Maple中的微分代数方程求解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Part10:Maple中的微分代数方程求解
西希安工程模拟软件(上海)有限公司,2008
10.0 Maple中的微分方程求解器介绍
Maple中微分方程求解器使用领先的算法求解以下问题:
常微分方程 (ODEs): dsolve 命令用于求解线性和非线性ODEs, 初始值问题 (IVP), 以及边界值问题 (BVP),可以通过参数项选择求符号解 (解析解) 或数值解。ODE Analyzer Assistant 微分方程分析器助手提供一个交互式用户界面方便用户求解 ODE 以及显示结果的图形。了解更多信息,参考帮助系统中的 dsolve, dsolve/numeric, 和 ODE Analyzer.
偏微分方程 (PDEs): pdsolve 命令用于求 PDEs 和含边界值问题的 PDEs 的符号解或数值解。使用Maple的PDE工具可以完成对PDE系统的结构分析和指数降阶处理。了解更多信息,参考帮助系统中的 pdsolve and pdsolve/numeric.
微分-代数方程 (DAEs): dsolve/numeric 命令是符号-数值混合求解器,使用符号预处理和降阶技术,让Maple能够求解高指数的DAE问题。Maple内置三个求解器用于处理DAEs:1)修正的 Runge-Kutta Fehlberg 方法,2)Rosenbrock 方法,以及 3)修正的拓展后向差分隐式方法。
10.1 Maple中的微分代数方程(DAEs)
更多亮点:
大部分情况下,通过识别是否存在因变量的纯代数方程,dsolve命令可以判断给定的问题是否是微分代数方程,而不是常微分方程。如果输入是一个不含有纯代数方程的微分代数方程,使用solve求解时需要用method参数指定对象是一个微分代数方程。
dsolve 有三种数值方法求解DAEs。默认的 DAE IVP 方法是 modified Runge-Kutta Fehlberg method (rkf45_dae),另两个方法是 rosenbrock_dae 和 Modified Extended Backward-Differentiation Implicit method (mebdfi),可以通过 method 参数项指定。
Maple 的ODE数值求解器和DAE IVP(初值问题)求解器可以处理用户自定义事件。
关于求解DAEs的更多信息,请参考帮助 dsolve/numeric 和 dsolve/numeric/DAE.
(1)
(2)
(4)
(3)
(6)
(5)
在本文中,我们将求解两个DAE问题,第一个问题仅调用 dsolve/numeric 命令,使用默认的 DAE 求解器;第二个问题指定 Mebdfi 方法。
10.1.1 高阶DAEs:笛卡儿坐标下的一个简单的单摆
在这个例子中,我们对建立了笛卡尔坐标系下的单摆模型。这个问题表示为一个index-3 DAE,我们在 dsolve 命令指定 numeric 参数项。然后是用 plots[odeplot] 绘制结果的图形。
加载 plots 绘图功能包,
运动方程:
和
是单摆的位置坐标,
是刚性连杆上的压缩力。
DAE系统的指数可以通过对约束方程 (
) 重复求导获得:
(10)
(9)(7)
(8)
最后一个方程中的 的系数是(见 ),这个方程是是一个常微分方程,
DAEs方程组的指数为3。(对约束方程求导三次后得到常微分方程。)现在,求解这个方程组,并画出结果的图形:
x, y
1
vx, vy
123
4
(11)
(12)
z
10.1.2 使用指定的方法求解DAE:物体相互作用的范例
这是三个变量的问题,不能使用Maple默认的数值ODE求解器求解,但可以通过指定的
DAE求解器求解。
首先我们使用 PDEtools[declare] 用撇号()显示导数。
上的。
(12)
(13)
10.2 练习
10.3.1 求线性常微分方程的解析解
问题:
求解,初始条件
答案
直接使用鼠标求解。不要担心结果里面的常数。
可以通过在表达式中定义初始条件 ,重新求解。
solve DE
solve DE
solve DE
solve DE
10.3.2 求解常微分方程组
求解两个二次常微分方程组:和。
答案
首先定义微分方程组:
(16)
(17)
(14)
(18)
(15)
和
的解。
10.3.3 求常微分方程初始值问题的数值解
答案
Solve DE
相关帮助
dsolve , dsolve/numeric , dsolve/numeric/DAE , pdsolve