第7章 符号计算——7.9 符号微分方程求解

简介: 第7章 符号计算——7.9 符号微分方程求解

7.9  符号微分方程求解


从数值计算角度看,与初值问题求解相比,微分方程边值问题的求解显得复杂和困难。对于应用数学工具去求解实际问题的科研人员来说,此时不妨通过符号计算指令进行求解尝试。因为对于符号计算来说,不论是初值问题还是边值问题,其求解微分方程的指令形式都相同,且相当简单。

当然,符号计算可能花费较多的计算机资源,可能得不到简单的解析解或封闭形式的解,甚至无法求解。既然没有万能的微分方程一般解法,那么,求解微分方程的符号法和数值法就有很好的互补作用。

函数dsolve用来求常微分方程的符号解。在方程中,用大写字母D表示一次微分,D2D3分别表示二次、三次微分运算。以此类推,符号D2y表示d2y/dt2。函数dsolved后面的字符当作因变量,并默认所有这些变量对符号t进行求导。函数dsolve的调用格式如下。

● r=dsolve('eq1,eq2,…','cond1,cond2,…','v'):求由eq1,eq2,…指定的常微分方程的符号解。常微分方程以变量v作为自变量,参数cond1,cond2,…用于指定方程的边界条件或者初始条件。如果v不指定,将默认t为自变量。

● r=dsolve('eq1','eq2',…,'cond1','cond2',…,'v'):求由eq1,eq2,…指定的常微分方程的符号解。这些常微分方程都以v作为自变量。这些单独输入的方程的最大允许个数为12。其他参数与上一种调用方式相同。微分方程的初始条件或边界条件都以变量v作为自变量,其形式为y(a)=bDy(a)=b,其中y是微分方程的因变量,ab是常数。如果指定的初始条件和边界条件比方程中的因变量个数少,那么所得的解中将包含积分常数C1C2等。


dsolve函数的输出结果同solve函数类似,既可以用和因变量个数相同数目的输出参数分别接收每个变量的解,也可以把方程的解写入一个结构数组中。


7-34:符号微分方程求解示例。

在命令行窗口中输入:

syms a b x(t);
f = sym(a * diff(x, t) + b * x == 0)
dsolve(f)

输出结果:

f(t) =
a*diff(x(t), t) + b*x(t) == 0
ans =
C1*exp(-(b*t)/a)

在命令行窗口中输入:

dsolve(f, 'x(0) = 1')

输出结果:

ans =
exp(-(b*t)/a)


在命令行窗口中输入:

dsolve(f, 'x(0) = 1', 'm')

输出结果:

ans =
exp(-(b*m)/a)


在命令行窗口中输入:

clear
syms x(t) y(t);
f1 = sym(diff(x, t) - 3 * x + 2 * y == 0)
f2 = sym(diff(y, t) - 2 * x + y == 0)
[x, y] = dsolve(f1, f2)

输出结果:

f1(t) =
2*y(t) - 3*x(t) + diff(x(t), t) == 0
f2(t) =
y(t) - 2*x(t) + diff(y(t), t) == 0
x =
2*C1*exp(t) + C2*(exp(t) + 2*t*exp(t))
y =
2*C1*exp(t) + 2*C2*t*exp(t)

在命令行窗口中输入:

[x, y] = dsolve(f1, f2, 'x(0) = -1', 'y(0) = 1')

输出结果:

x =
- exp(t) - 4*t*exp(t)
y =
exp(t) - 4*t*exp(t)


提示:dsolve函数并不总能得到显式解,如果不能得到显式解,则dsolve函数会尝试求隐式解。如果也不能够得到隐式解,则应当采用ODE来求微分方程的数值解。


相关文章
|
7月前
数学知识-三角函数公式大全(值得收藏)
数学知识-三角函数公式大全(值得收藏)
|
6月前
|
机器学习/深度学习 算法
专题六数值微积分与方程求解-2
专题六数值微积分与方程求解
64 0
|
6月前
|
算法 Serverless
专题六数值微积分与方程求解-1
专题六数值微积分与方程求解
66 0
|
8月前
第7章 符号计算——7.8 符号代数方程求解
第7章 符号计算——7.8 符号代数方程求解
|
8月前
第7章 符号计算——7.6 符号微积分
第7章 符号计算——7.6 符号微积分
|
8月前
线性代数(方程组的几何解释)
线性代数(方程组的几何解释)
42 0
|
11月前
|
人工智能
|
机器学习/深度学习 传感器 算法
【算术三角优化算法】基于混合算术三角优化算法 (ATOA)求解单目标优化问题附matlab代码
【算术三角优化算法】基于混合算术三角优化算法 (ATOA)求解单目标优化问题附matlab代码
(公式)用欧拉公式推导三角函数恒等式
(公式)用欧拉公式推导三角函数恒等式
113 0
(公式)用欧拉公式推导三角函数恒等式
|
算法 C++
【基础算法】多项式三大运算 & C++实现
多项式三大运算 & C++实现
423 0
【基础算法】多项式三大运算 & C++实现