DSolve

DSolve[eqn]

求解微分方程 eqn. DSolve[eqn,u,x]
为函数 u 求解微分方程,x 为独立变量.

DSolve[eqn,u,{x,xmin,xmax}]

为位于 xminxmax 之间的 x 求解微分方程.

DSolve[{eqn1,eqn2,},{u1,u2,},]

求解微分方程组.

DSolve[eqn,u,{x1,x2,}]

求解一个偏微分方程.

DSolve[eqn,u,{x1,x2,}Ω]

在区域 Ω 上求解偏微分方程 eqn.

更多信息和选项

  • DSolve 可以求解常微分方程 (ODE)、偏微分方程 (PDE)、微分代数方程 (DAE)、 时滞微分方程 (DDE)、积分方程、积分微分方程以及混合型微分方程.
  • 可用 DSolve 求解的不同的方程类型包括:
  • u'[x]f[x,u[x]]常微分方程
    a xu[x,y]+b yu[x,y]f偏微分方程
    f[u'[x],u[x],x]0微分代数方程
    u'[x]f[x,u[x-x1]]时滞微分方程
    u'[x]+k[x,t]u[t]tf积分微分方程
    {,WhenEvent[cond,u[x]g]}混合型微分方程
  • DSolve 的输出由关联函数 uu[x] 的形式控制:
  • DSolve[eqn,u,x]{{uf},}其中 f 为纯函数
    DSolve[eqn,u[x],x]{{u[x]f[x]},}其中 f[x] 是关于 x 的表达式
  • 如果输出为纯函数,可用 eqn/.{{uf},} 验证解的正确性. »
  • DSolve[eqn] 中的因变量是从 eqn 中推导出来的,可以明确指定为 u[x],也可以指定为自变量方程的纯函数 u. »
  • DSolve 有时会以 Solve 的形式给出隐式解. »
  • DSolve 的解可能含有不能明确计算结果的 Inactive 和与积分. 这种情况下,可使用变量 K[1]K[2],
  • 可以通过给出在特定点的方程,比如 u[x1]au'[x2]b 等等,指定常微分方程 (ODE) 和微分代数方程 (DAE) 的边界条件.
  • 可以用方程 u[x,y1]aDerivative[1,0][u][x,y1]b 等给出偏微分方程 (PDE) 的边界条件,或是以 DirichletCondition[u[x,y]g[x,y],cond] 形式给出.
  • 可以利用历史函数 g[x],以 u[x/;x<x0]g[x] 形式给出时滞微分方程 (DDE) 的初始条件.
  • 还可以将 WhenEvent[event,action] 包含在方程 eqn 中,用来指定当 event 变成 True 时采取的 action.
  • 规约 uVectors[n]uMatrices[{m,n}] 可用于分别表示因变量 u 是向量值变量或矩阵值变量. » »
  • Ω 可以是任何令 RegionQ[Ω]True 的区域.
  • 对于不能进行符号式求解的微分方程,N[DSolve[]] 会调用 NDSolveParametricNDSolve.
  • 可以给出下列选项:
  • Assumptions $Assumptions对参数的假设
    DiscreteVariables {}混合型方程的离散变量
    GeneratedParameters C怎样命名产生的参数
    Method Automatic使用什么方法
    IncludeSingularSolutionsFalse是否包括奇异解
  • GeneratedParameters 控制产生参数的形式;缺省情况下,对于常微分方程 (ODE) 和微分代数方程 (DAE),这些参数是常数 C[n],对于偏微分方程 (PDE),则为任意函数 C[n][]. »

范例

打开所有单元关闭所有单元

基本范例  (3)

求解微分方程:

指定因变量为 y[x]

求解有因变量 y[x] 的微分方程:

引入一个边界条件:

获取 y 的一个纯函数解:

将解代入一个表达式:

范围  (117)

基本用法  (17)

计算一阶微分方程的通解:

通过增加一个初始条件,获得一个特解:

绘制微分方程的通解:

绘制任意常数 C[1] 为两个不同的值时解的曲线:

使用单参数规范求解一阶微分方程:

绘制边值问题的解:

使用单参数规范求解边界值问题:

通过在第二个参数中使用 y,来验证一阶微分方程的解:

得到较高阶微分方程的通解:

特解:

求解微分方程组:

绘制解的图形:

验证解:

求解微分代数方程组:

使用单参数规范求解微分方程组:

求解偏微分方程:

得到特解:

绘制解的图形:

使用单参数规范求解偏微分方程:

对于通解中的任意常数,使用不同名称:

求解时滞微分方程:

绘制不同参数值时解的图形:

求解混合微分方程:

该系统可以模拟弹跳球:

如果符号求解失败,应用 N[DSolve[...]] 来调用 NDSolve

求带单位的常微分方程的通解:

求解初始值问题:

线性微分方程  (6)

指数方程:

非齐次一阶方程:

求解边值问题:

绘制解的图形:

常系数二阶方程:

科西-欧拉 (CauchyEuler) 方程:

用初等函数解二阶变系数方程:

艾里 (Airy) 方程:

球方程:

无理系数方程:

高阶方程:

用超几何函数来表示的解:

用 Kelvin 函数的形式求解四阶方程:

含有 q-有理系数的线性方程:

Higher-order inhomogeneous equation with constant coefficients:

非线性微分方程  (6)

求解 Riccati 方程:

Abel 方程的隐式解:

齐次方程:

WeierstrassP 表示的解:

用双曲函数表示的解:

求解非线性边值问题:

微分方程组  (8)

对角线性方程组:

常系数非齐次线性方程组:

含有有理函数系数的线性方程组:

非线性系统:

使用向量变量求解线性常微分方程 (ODE) 方程组:

求解线性和非线性常微分方程 (ODE) 耦合方程组:

Plot the solution:

Solve inhomogeneous linear system of ODEs with constant coefficients:

求解线性和非线性 ODE 的耦合系统:

微分代数方程  (3)

求解线性微分代数方程组:

求解边值问题:

一个指标为 2 的微分代数方程:

时滞微分方程  (2)

求解时滞微分方程:

绘制参数 a 取不同值时的解:

求解时滞微分方程组:

绘制参数 a 取不同值时解的图形:

分段微分方程  (4)

使用分段强制函数:

具有分段系数的微分方程:

非线性分段定义的微分方程:

涉及广义函数的微分方程:

一个简单的脉冲响应或格林函数:

在区间 {0,1} 上求解分段微分方程:

在其它区间上的解:

混合微分方程  (8)

求解带有与时间相关的事件的一阶微分方程:

绘制解的图形:

求解带有与时间相关的事件的二阶微分方程:

绘制解的图形:

求解具有状态相关事件的微分方程组:

绘制 y 解的图形:

当事件发生时,停止积分:

去除已经发生过一次的事件:

指定变量在事件之间保持数值不变:

规定在各个事件处的不同行为:

具有相同行为的多个事件:

Sturm-Liouville 问题  (6)

给定狄利克雷条件,求解特征值问题:

列出前 5 个特征函数:

绘制特征函数的图形:

求解诺依曼条件下的特征值问题:

列出前 5 个特征函数:

绘制特征函数的图形:

给定混合边界条件,求解特征值问题:

列出前 5 个特征函数:

绘制特征函数的图形:

给定在区间左端的 Robin 条件,求解特征值问题:

确定超越特征值方程在 10<λ<80 范围内的的根:

利用 Assumptions 获取位于该范围内的特征函数:

给定在区间两端的 Robin 边界条件,求解特征值问题:

求解艾里 (Airy) 算子的特征值问题:

问题的特征值:

下面给出了问题的特征函数:

绘制范围 1<λ<200 内的特征函数:

积分方程  (6)

求解沃尔泰拉积分方程:

绘制解的图形:

求解弗雷德霍姆积分方程:

绘制解的图形:

求解积分微分方程:

获取通解:

指定初始条件获取特解:

绘制解的图形:

求解奇异阿贝尔积分方程:

绘制解的图形:

求解弱奇异沃尔泰拉积分方程:

绘制解的图形:

求解第二类齐次弗雷德霍姆方程:

绘制解的图形:

一阶偏微分方程  (7)

一阶线性偏微分方程的通解:

对任意函数 C[1] 作特定选择后的解:

一阶线性偏微分方程的初值问题:

一阶线性偏微分方程的初始边值问题:

迁移方程的通解:

初值问题:

绘制速度 c1 的行波:

一阶准线性偏微分方程的通解:

标量守恒定律的初值问题:

一阶非线性克莱罗方程的完全积分:

双曲型偏微分方程  (11)

波动方程的初值问题:

沿一对特征方向传播的波:

给定分段初始数据的情况下,求解波动方程的初值问题:

初始数据中的不连续性沿特征方向被传播出去:

以一对衰减指数函数作为初始数据,求解波动方程的初值问题:

可视化解:

非齐次波动方程的初值问题:

可视化不同 m 值的解:

给定半直线上的狄利克雷条件,求解波动方程的初值问题:

可视化解:

从初始数据开始,波开始分叉:

诺依曼条件下波动方程在半直线上的初始值问题:

可视化解:

此例中,波演变成非振荡函数:

在有限区间上波动方程的狄利克雷问题:

解为无穷三角级数:

Inactive 和中提取前三项:

波在垂直方向上进行周期性运动:

长方形内波动方程的狄利克雷问题:

解为双无穷三角级数:

Inactive 和中提取若干项:

二维波在垂直方向上进行周期性运动:

圆盘内波动方程的狄利克雷问题:

解为无穷贝塞尔级数:

Inactive 和中提取前三项:

二阶双曲偏微分方程的通解:

系数为非有理数的双曲偏微分方程:

常系数非齐次双曲偏微分方程:

常系数非齐次线性双曲偏微分方程组的初值问题:

抛物线型偏微分方程  (7)

热方程的初值问题:

可视化随着时间流逝热量扩散的情况:

给定分段初始数据,求解热方程的初值问题:

以误差函数 Erf 的形式给出解:

初始数据中的不连续性被即刻平滑掉:

非齐次热方程的初值问题:

可视化参数 m 取不同值时解的变化情况:

有限区间上热方程的狄利克雷问题:

解为傅立叶正弦级数:

Inactive 和中提取三项:

有限区间上热方程的诺伊曼问题:

解为傅立叶余弦级数:

Inactive 和中提取若干项:

时,解趋近

可视化解向稳定状态演变的过程:

圆盘中热方程的狄利克雷问题:

解为无穷贝塞尔级数:

Inactive 和中提取若干项:

可视化时刻 t=0.1 时解的各个项:

布莱克舒尔斯方程的边值问题:

椭圆型偏微分方程  (9)

拉普拉斯方程在上半平面中的狄利克雷问题:

边界数据中的不连续性被平滑掉:

拉普拉斯方程在右半平面中的狄利克雷问题:

可视化解:

拉普拉斯方程在第一象限中的狄利克雷问题:

可视化解:

拉普拉斯方程在上半平面中的诺伊曼问题:

可视化解:

拉普拉斯方程在矩形内的狄利克雷问题:

解为无穷三角级数:

Inactive 和中提取若干项:

可视化解:

拉普拉斯方程在圆盘内的狄利克雷问题:

可视化解:

拉普拉斯方程在圆环内的狄利克雷问题:

可视化解:

泊松方程在长方形内的狄利克雷问题:

亥姆霍兹方程在长方形内的狄利克雷问题:

Inactive 和中提取有限个项:

可视化近似解:

一般偏微分方程  (6)

给定狄利克雷边界条件,求解无电位薛定谔方程:

提取解的前四项:

无论四个常数 C[k] 取何值,ψ 都满足方程及边界条件:

给定狄利克雷边界条件,求解薛定谔方程的初值问题:

定义一族解的部分和:

对每个 kuk 都满足微分方程:

同时也满足边界条件:

只有 u 满足初始条件,但它快速收敛于 t==2

求解实电位薛定谔方程:

提取解的前两项:

无论常数 C[0]C[1] 取何值,方程都成立:

同时也满足无穷处的条件:

尽管函数和时间有关,它的 -范数是常数:

粘性为 ν,求解伯格斯方程的初值问题:

ν=1/40,绘制不同时间的解:

绘制 ν 取不同值的解:

Tricomi 方程的边值问题:

可视化解:

Kortewegde Vries (KdV) 方程的行波解:

任意常数取特定值时的特解:

波向右传播,形状不变:

区域上的偏微分方程  (3)

拉普拉斯方程在长方形内的狄利克雷问题:

Inactive 和中提取前 100 项:

可视化长方形上的解:

拉普拉斯方程在圆盘内的狄利克雷问题:

可视化圆盘内的解:

拉普拉斯方程在右半平面内的狄利克雷问题:

可视化半平面内的解:

分数阶微分方程  (8)

求解一个 1/2 阶的分数微分方程:

验证解:

添加一个初始条件:

绘制解:

求解包含 0.7 阶 CaputoD 的分数微分方程:

验证解:

添加初始条件并绘制解:

求解包含两个不同阶 Caputo 导数的分数阶微分方程:

绘制解:

求解一个 1/7 阶的非齐次分数微分方程:

验证解:

求解两个分数阶微分方程组:

验证解:

以参数方式绘制解:

求解向量形式的两个分数 ODE 方程组:

绘制解:

以参数方式绘制解:

求解向量形式的三个分数阶微分方程组:

绘制解:

Solve a fractional wave equation:

Plot the solution:

推广和延伸  (1)

无边界条件;给出两个生成的参数:

一个边界条件:

两个边界条件:

选项  (7)

Assumptions  (2)

求解二阶线性微分方程的特征值问题:

Assumptions 指定参数 λ 的范围:

指定独立变量 x 为实数:

x 指定区间,得到同样的结果:

DiscreteVariables  (1)

指定变量在事件之间保持数值不变:

GeneratedParameters  (2)

为常量取不同的名字:

带下标的常量:

生成惟一命名的积分常数:

DSolve 的不同调用间,积分常数是惟一的:

Method  (1)

求解线性常微分方程:

获取以 DifferentialRoot 形式给出的解:

SingularSolutions  (1)

默认情况下,DSolve 返回此 ODE 的通解:

使用 IncludeSingularSolutions 可计算奇异解和一般解:

应用  (36)

常微分方程  (12)

求解 Logistic (Riccati) 方程:

绘制不同初始值时解的图形:

求解线性摆方程:

线性阻尼摆的位移:

研究动力系统的相图:

当精确解已知时,求幂级数解:

验证 y=0y=1 是逻辑斯谛方程的均衡解:

模拟移动传送带上的物块,该传送带通过弹簧固定在墙上. 比较系统参数(物块的质量、皮带速度、摩擦系数、弹簧常数)取不同值时的位置和速度:

物块的牛顿方程:

求解位置和速度:

物块稳定在弹簧的自然长度 l 之上:

使用元件定律和基尔霍夫连接定律来模拟 RLC 电路对在时间 施加的电压 中的阶跃脉冲的响应:

元件定律为 , ,

模拟阶跃响应:

可视化 的不同值的响应:

当水通过管道从一个水箱流到另一个水箱时,模拟两个圆柱形水箱中水的高度变化:

使用压力公式 和质量守恒:

用哈根-泊肃叶公式对通过管道的水流建模:

模拟系统:

可视化参数特定值的解:

求解 1.9 阶分数谐振子的方程:

绘制解:

分数谐振子的行为类似于阻尼谐振子:

用阻尼振子的解拟合分数振子的数据,以确定阻尼因子 的相应值:F

比较结果:

求解分数 LC 电路的方程:

可以求得 时的经典解:

时的 LC 电路方程:

绘制出方程阶数 为不同值时的解:

求解分数 RC 电路的方程:

可求得当 时的经典解:

求解当 时的 RC 电路方程:

绘制出方程阶数 为不同值时的解:

混合微分方程  (8)

模拟在固定时间间隔被冲击的阻尼振荡:

修正正弦波:

对沿台阶弹落的球建模:

在一个方盒子中,模拟一个不断撞击侧壁改变方向的球:

模拟系统 ,通过离散时间控制器 保持稳定:

模拟和可视化:

采用无差拍离散时间控制器控制双重积分:

使用无差拍数字反馈控制器

模拟和可视化:

模拟质量为 1 千克的移动物体的位置:

使用抽样比例微分 (PD) 控制器,以保持位置不变:

模拟和可视化:

设置物理变量 a,使得每当它变为负值时为 0

时滞微分方程  (2)

研究由时滞微分方程支配的动力系统中混沌的产生:

研究线性时滞微分方程解的稳定性:

积分方程  (4)

等时降落问题要求找到一条向下的曲线,把珠子放在曲线任一位置,滑落到底的时间都相等. 把总的下降时间用曲线长度和速度 v 表示后,可以导出阿贝尔积分方程 . 通过关系 定义未知函数 并使用能量守恒方程 导出显式方程:

DSolve 求解积分方程:

用关系 ,求得

让曲线从原点开始并积分并假设被积函数是实数值的导出以 为自变量的函数

代换 的值,用 ParametricPlot 显示极大等时降线:

变量替换 可以给出一个简单的、非奇异的曲线参数化形式,范围在 之间:

结合能量守恒方程和链式法则 可以得出下列以 为自变量的函数 的微分方程:

这个方程可以在不同的起始点数值求解:

解的图像显示所有的点都在 2 秒这一刻度到达底部,即

可视化沿着等时降线的运动:

一个弹簧振子系统,附着物质量是

,弹性系数为
且阻尼系数为
. 在时刻 ,向下压附着物然后在向下的速度为 28 cm/s 时释放. 从 时有个作用在附着物上的向下的 TemplateBox[{{50,  , {Cos, [, {2,  , t}, ]}}, "dynes", dynes, "Dynes"}, QuantityTF] 的力. 求出系统速度随时间变化的函数. 速度的积分方程由下式给出:

速度的初始值:

DSolve 求解积分微分方程:

绘制速度随时间变化的函数:

可视化物理的弹簧振子系统的运动:

一个 LRC 电路,电压源为 v(t)=TemplateBox[{{2,  , {Cos, [, t, ]}}, "V", volts, "Volts"}, QuantityTF]. 电路的电阻是 0.2 ,电感是

,而电容是
. 一开始,电阻器里的电流为
. 求电流随时间变化的函数:

电流的积分方程为:

电流的初始值:

DSolve 求解积分微分方程:

绘制电流随时间变化的函数:

一个线性沃尔泰拉积分方程等价于一个线性微分方程的初值问题. 为下列沃尔泰拉方程验证这个关系:

DSolve 求解积分方程:

设置对应的微分方程:

添加两个初始条件,因为微分方程是二阶的:

初值问题的解和积分方程的解是一样的:

绘制解的图形:

经典偏微分方程  (5)

用波动方程对固定长度为 π 的弦的振动建模:

规定振动时弦的两端固定不动:

获取振荡的基础和高阶谐波模式:

可视化弦的这些振动模式:

通常,解是由无穷多个谐波组成的:

Inactive 和中提取四项:

可视化弦的振动:

用二维波动方程对半径为 1 的圆形膜片的振动建模:

固定住膜片的边缘:

指定初始条件:

获取用贝塞尔函数表示的解:

Inactive 和中提取有限个项:

可视化薄膜的振动:

用热方程对长度为 1 的长条中热量的流动建模:

规定长条两端的温度不变:

指定初始条件:

在这些条件下,求解热方程:

Inactive 和中提取若干项:

可视化温度向稳定状态演变的过程:

获取与时间无关的稳态解 v[x]

稳态解是 x 的线性函数:

对两端隔热的、长度为 1 的长条中热量的流动建模:

规定热量不能从长条两端流出:

指定初始条件:

在这些条件下,求解热方程:

Inactive 和中提取若干项:

可视化温度向稳定值 60° 演变的过程:

从实部和虚部在 轴上的值开始,构建一个复分析函数. 实部 u 和虚部 v 满足柯西黎曼方程:

规定 uv 轴上的值:

求解柯西黎曼方程:

验证解为调和函数:

可视化解产生的流线和等势线:

根据解构建分析函数:

这表示函数

一般偏微分方程  (5)

研究当粘性参数变成无限小的极限情况下,伯格斯方程对冲击波的平滑解的演变情况:

对于正的 ϵ 值,解是平滑的:

ϵ 趋近 0 时,解会产生一个冲击断点:

一个被限制在长度为 d 的一位盒上移动的电子遵守端点处狄利克雷条件下的自由薛定谔方程:

方程的通解是三角指数函数项的和:

和中的每一项被称为定态,因为用正弦函数作为初始条件会使位置概率密度 rho=TemplateBox[{psi}, Conjugate]psi 与时间无关. 例如:

所得的概率分布与时间无关:

将初始数据归一化,以使密度的积分(在某处发现粒子的总概率)为 1

任意其它初始条件,即便简单到只是两个定态的和,都会导致产生复杂的含时密度:

密度是不定的,因为 t 出现在第二个和第三个余弦函数中:

尽管概率密度与时间有关,它的积分结果还是常数 1

用国际单位制中的单位输入电子的质量和 的值,并将 d 设为典型的原子间距离,1 纳米,得到下列密度函数:

在空间域上可视化一个周期的函数:

将图像作成概率密度电影,可以看出电子的中心在盒子两个边之间来回移动:

求一份欧洲香草看涨期权的极值,如果如果标的资产价格与行权价格均为 $100,无风险利率为 5%,标的资产波动率为 20%,而到期期限为 1 年,使用布莱克舒尔斯模型:

求解边界值问题:

计算欧洲香草期权价值:

FinancialDerivative 给出的值相比较:

根据梯度向量得到原来的函数:

解表示的是一组相互平行的曲面:

求解柯西问题以产生 Stirling 数:

利用母函数获得 Stirling 数:

属性和关系  (10)

解满足微分方程和边界条件:

对应于 Integrate 的微分方程:

NDSolve 求数值解:

DEigensystem 求特征值和特征函数:

求完整的特征系统:

求特征值和特征函数:

DSolve 计算脉冲响应:

InverseLaplaceTransform 执行同一计算:

DSolve 返回解的规则:

DSolveValue 返回解的表达式:

当符号解失败时,应用 N[DSolve[...]] 以调用 NDSolve

求拉普拉斯方程在长方形内的解:

用区域记号获得同样的结果:

使用 DFixedPoints 查找两个 ODE 方程组的定点:

使用 DStabilityConditions 来分析定点的稳定性:

以定点为初始条件求解方程组:

根据给定的初始条件求解方程组:

绘制解:

对于更大型分层模型的数值解使用系统模型:

绘制最重要的值:

可能存在的问题  (8)

结果可能包含未激活积分(inactive integral):

用一个表达式替换函数 ,但结果仍返回未激活积分:

使用 Activate 运算积分:

大写 和大写 不能用作自变量:

将它们替换为小写 或小写 可以解决该问题:

可能要求有反函数来得到解:

对未知函数的定义可能影响计算:

清除该未知函数的定义,解决该问题:

这里,DSolve 给出错误信息,因为 未被包括在第二个参数中:

包括在第二个参数中,从而得到解:

另外,也可使用 DSolveValue 来只获得 的解:

此范例返回未计算值,因为 DSolve 无法将其解释为向量方程:

该范例可以通过重写为如下格式来解决:

CompleteIntegral 求非线性偏微分方程的完全积分:

DSolve 返回相同解,但会带有警告信息:

CompleteIntegral 求线性偏微分方程的完全积分:

DSolve 返回此偏微分方程的通解:

巧妙范例  (2)

生成羊角螺线:

求解勒让德微分算子的 6 次对称幂:

Wolfram Research (1991),DSolve,Wolfram 语言函数,https://reference.wolfram.com/language/ref/DSolve.html (更新于 2024 年).

文本

Wolfram Research (1991),DSolve,Wolfram 语言函数,https://reference.wolfram.com/language/ref/DSolve.html (更新于 2024 年).

CMS

Wolfram 语言. 1991. "DSolve." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2024. https://reference.wolfram.com/language/ref/DSolve.html.

APA

Wolfram 语言. (1991). DSolve. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/DSolve.html 年

BibTeX

@misc{reference.wolfram_2024_dsolve, author="Wolfram Research", title="{DSolve}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/DSolve.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_dsolve, organization={Wolfram Research}, title={DSolve}, year={2024}, url={https://reference.wolfram.com/language/ref/DSolve.html}, note=[Accessed: 22-November-2024 ]}