使用Maple求解微分方程三

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Maple在程序包DEtools中提供了命令dfieldplot(), 用来绘制微分方程的方向场, 这将有助于直观地 了解微分方程解的趋势, 参见下面的例子:
2. 方向场与积分曲线动画
四、欧拉折线法与数值解
1. 欧拉方法 对于如下的微分方程初值问题
dy/dx=F(x, y(x)), y(x0)=y0 欧拉方法可用下述递推公式表示
红色曲线表示 x(t), 绿色曲线表示 y(t)
随着t的增 大, 方程组 的解围绕
在一个半 径为1的圆 上(此圆通 常称为极 限圆)
取不同的 初值条件, 方程组的 解同样围 绕在半径 为1的圆 上(极限圆 又称极限 环)
Lorenz 微 分方程产 生吸引子 (紧紧地 把解的图 形吸在一 起)
三、方向场与积分曲线
1. 方向场: 对于形如dx(t)/dt=f(t, x)的微分方程, 可在没有求得其精确解的情况下, 用绘图的方式 得到解的一些信息。这是因为, 若得到解曲线上 的一些初始数据, 比如初始条件或边界条件(t0, x0), 就可找到上述方程的解x(t)在该点的斜率 f(t0, x0). 若找到的点数足够多, 则在相关区域内可以看 出微分方程解的趋势。如此绘出的图形称为它的 方向场(direction field)。
3. “数学实验”与“数学建模” “数学实验”与“数学建模”, 均以创新能力培 养为目标, 但侧重点不同, 数学建模强调在“应用 ”数学的过程中培养能力, 而数学实验旨在引导学 习者借助数学软件理解抽象的数学理论、自主探 索和研究数学问题以及数学的应用问题的过程, 强 调在“探索”过程中学习数学并培养能力。因此, 它们的特点和区别是: 数学实验= 探索+创新; 数学建模= 应用+创新
左图是一个特 解的曲线。可 以将一组解曲 线(解曲线簇) 绘制在一起, 见下页图示。
assign命令 用来将一个 等式转换为 一个赋值.
4. 求解微分方程组 Maple的dsolve命令可用来求解微分方程组, 通 常可以得到解析解, 当无法得到精确解时(特别是 高阶非线性微分方程组), 可尝试求其数值解。
二、使用Maple求解微分方程
1. 在Maple中表示微分方程
在Maple中, 表示一个微分方程较好的方法是用
Maple的赋值语句为其指定一个惟一的名字。比
如:
在Maple中因变量必须连同它的自变 量一起出现, 即x(t)不能简写为x
使用ode表示 微分方程
x(t) = k x(t) 其中diff是求
导命令
2. 使用dsolve命令求解微分方程 使用Maple的dsolve命令可以得到微分方程的 解。如果指定初始或边界条件, Maple将尝试找到 一个特解; 否则将给出一般解。
求解结果中_C1 表示自由常量
通过添加初始条 件得到特解
3. 绘制解曲线 dsolve命令得到的解, 系统以等式形式显示, 可 使用unapply命令将其转换为函数形式。之后, 就 可以使用绘图命令(比如plot)绘制解曲线, 比如:
第十五讲 微分方程实验指南(1)
宁波大学 陶祥兴等 编
高等教育电子音像出版社
本节内容提要
一、数学实验概述 二、使用Maple求解微分方程 三、方向场与积分曲线 四、欧拉折线法与数值解
一、数学实验概述
1. 什么是数学实验 所谓“数学实验”, 就是从问题(数学本身的 问题或实际应用问题)出发, 借助计算机, 通过 学习者亲自设计与动手操作, 学习、探索和发现 数学规律, 或运用现有的数学知识分析和解决实 际问题的过程。换言之 “数学实验”就是学习者自主探索数学知识及 其实际应用的实践过程。
使用odeplot命 令绘制由dsolve 得到的微分方
程解曲线
实际上, 在dsolve命令中指定参数method=classical [foreuler], 即可按Euler方法求数值解。在下面的 例子中, 选用不同的步长按Euler方法求同一微分 方程的数值解, 并用图示比较所得结果:
实验练习
2. 数学实验的作用 (1)借助软件验证数学知识与结论, 加深对数学 概念与数学理论的理解和认识(比如应用软件的图 形和动画等直观、可视化功能)。 (2)借助计算机自主探索数学问题的求解方法,自 行发现数学规律 (应用计算机的数值计算、符号计 算及推理功能等) 。 (3)应用数学知识、借助计算工具, 探索解决实 际应用问题, 以提高数学素养、培养创新能力。
求解微分方程 dy/dx=1+(yx)2 的近似解, 初值为y(0)=0.5
上面的Maple程序Euler0在使用时有不便之处, 比 如它以右侧的函数F为参数, 不是以微分方程作为 参数的。下面的程序Euler弥补了这一不足:
使 用 程 序 Euler 求 dy/dx=2y 的近似解, 初值y(0)=1.
在下面的例子中, 分别令N=2, 4, 8, 应用上面的
Maple程序Euler, 求解下述初值问题在区间[1, 2]
的近似解:

dy dt

sin
t

y

3
y(1) 2
应用程序Euler之前 的一些准备工作
2.用dsolve求数值解: Maple的dsolve命令可以用来 求微分方程的数值解, 只需加入参数选项 numeric
Baidu Nhomakorabea
h, h 2
F
(xn
,
yn
)

F
(xn1,
y* n1
)

y* n1

yn

hF ( xn ,
yn
)
本讲参考文献
[1] Douglas Bradley Meade, Lesson 01 – Introduction to Differential Equations in Maple, www.math.sc.edu/~meade [2] Douglas Bradley Meade, Lesson 14 – Euler's Method, www.math.sc.edu/~meade [3] 张晓丹、堵秀风等编著, Maple的图形动画技 术, 北京航空航天大学出版社, 2005年 [4] 周义仓、靳祯等编, 常微分方程及其应用—— 方法、理论、建模、计算机, 科学出版社, 2003年
xn+1=xn+h, yn+1=yn+hF(xn, yn). 下面的Maple程序Euler0是欧拉算法的一个实 现, 其中函数F, 初始时刻x0, 初始位置y0, 步长h, 步数N是程序参数。
使 用 程 序 Euler0 求 解微分方程初值问 题 { dy/dx = 2y, y(0)=1 } 的近似解.
Euler折线法的计算量较小, 但误差较大。改进的 Euler算法可以减小误差, 参考前述对Euler折线法 的实验探索, 试在Maple中实现改进的Euler算法, 并进行可视化比较。


dy dx y(0)
F
(x, y0
y)

xn1 yn1

xn yn
下面对前述用Euler方法求解的例子使用dsolve命 令求其数值解, 试比较两种方法所得结果:
x0:=0: h1:=0.1: N1:=10: x_list:=Array(1..N1+1,
i->x0+(i-1)*h1); dsolve({ode1,ic1}, y(x),
numeric, method=classical, stepsize=h1, output=x_list);
相关文档
最新文档