DFixedPoints[eqn,x[t],t]
给出微分方程的不动点.
DFixedPoints[{eqn1,eqn2,…},{x1[t],x2[t],…},t]
给出微分方程组的不动点.
DFixedPoints
DFixedPoints[eqn,x[t],t]
给出微分方程的不动点.
DFixedPoints[{eqn1,eqn2,…},{x1[t],x2[t],…},t]
给出微分方程组的不动点.
更多信息和选项
- 不动点也称为微分方程的驻点或平衡点.
- DFixedPoints 通常用于定位非线性连续时间系统的所有固定点,在生态、经济或技术建模中经常出现. 这些不定点处的局部行为可以使用 DStabilityConditions 分析.
- 对于微分方程组
,当且仅当
时,点
为不动点. 实际上,初始值
保持不变;如果在
处初始化,则保持在
处. - DFixedPoints 返回形如 {{
,
,…},…} 的列表,其中 {
,
,…} 是系统的不动点. - 高阶常微分方程组可被当作一阶常微分方程组进行处理,其中额外变量对应高阶导数项. 在这种情况下,不动点以嵌套列表的形式给出:{{x,x',…},{y,y',…},…}.
- DFixedPoints 适用于线性和非线性常微分方程.
- 可以提供以下选项:
-
Assumptions $Assumptions 关于参数的假设
范例
打开所有单元 关闭所有单元基本范例 (4)
DFixedPoints[x'[t] == -2x[t], x[t], t]DFixedPoints[x'[t] == 2x[t] + 1, x[t], t]DFixedPoints[y'[t] == a y[t], y, t]DStabilityConditions[y'[t] == a y[t], y, t]sol = DSolveValue[{y'[t] == a y[t], y[0] == -1}, y[t], t]Table[Plot[sol, {t, 0, 4}, Rule[...]], {a, {-1.1, 1.1}}]DFixedPoints[{x'[t] == b x[t] + y[t], y'[t] == -2 x[t] + a y[t]}, {x, y}, t]DStabilityConditions[{x'[t] == b x[t] + y[t], y'[t] == -2 x[t] + a y[t]}, {x, y}, t]RegionPlot[%[[1, 2]], {a, -5, 5}, {b, -5, 5}]范围 (23)
线性方程 (5)
DFixedPoints[x'[t] == -3 x[t], x, t]DFixedPoints[y'[t] == a y[t] + 5, y, t]DStabilityConditions[y'[t] == a y[t] + 5, y, t]sol = DSolveValue[{y'[t] == a y[t] + 5, y[0] == 1}, y[t], t];
Plot[sol /. a -> 0.5, {t, 0, 10}]sol = DSolveValue[{y'[t] == a y[t] + 5, y[0] == 1}, y[t], t];
Plot[sol /. a -> -0.5, {t, 0, 10}]DFixedPoints[y''[t] + a y'[t] + b y[t] == 0, y, t]DFixedPoints[y'''[t] + a y''[t] + b y'[t] + c y[t] == 0, y, t]DFixedPoints[y'''[x] + 5y''[x] + 3y'[x] + 6y[x] == 3, y, x]DSolve[{y'''[x] + 5y''[x] + 3y'[x] + 6y[x] == 3, y[0] == 1 / 2, y'[0] == 0, y''[0] == 0}, y[x], x]非线性方程 (3)
DFixedPoints[x'[t] == x[t]^2 + 3x[t], x, t]DStabilityConditions[x'[t] == x[t]^2 + 3x[t], x, t]使用 StreamPlot 证明稳定性:
StreamPlot[{1, x^2 + 3x}, {t, 0, 10}, {x, -4, 1}]DFixedPoints[x'[t] == x[t]^2 - 5x[t] + 6, x, t]DStabilityConditions[x'[t] == x[t]^2 - 5x[t] + 6, x, t]sol = DSolveValue[{x'[t] == x[t]^2 - 5x[t] + 6, x[0] == 5 / 2}, x[t], t]Plot[sol, {t, 0, 10}, PlotRange -> All]使用 StreamPlot 证明点
处的稳定性:
StreamPlot[{1, x^2 - 5x + 6}, {t, 0, 10}, {x, 0, 4}]eqn = y[x]^2 + 3 y'[x] + y''[x] == 2;DSolve 无法解这个方程:
DSolve[eqn, y, x]使用 DFixedPoints 找到方程的不动点:
DFixedPoints[eqn, y, x]sys = {y'[x] == y1[x], y[x]^2 + 3 y1[x] + y1'[x] == 2};StreamPlot[{y1, 2 - y^2 - 3y1}, {y, -3, 3}, {y1, -3, 3}, ...]线性系统 (11)
DFixedPoints[{x'[t] == -x[t], y'[t] == -y[t]}, {x, y}, t]StreamPlot[{-x, -y}, {x, -3, 3}, {y, -3, 3}, ...]DFixedPoints[{x'[t] == x[t], y'[t] == y[t]}, {x, y}, t]StreamPlot[{x, y}, {x, -3, 3}, {y, -3, 3}, ...]DFixedPoints[{x'[t] == -x[t] - y[t], y'[t] == 2x[t] - y[t]}, {x, y}, t]DStabilityConditions[{x'[t] == -x[t] - y[t], y'[t] == 2x[t] - y[t]}, {x, y}, t]使用 StreamPlot 来可视化稳定性:
StreamPlot[{-x - y, 2x - y}, {x, -3, 3}, {y, -3, 3}, StreamPoints -> Coarse, Epilog -> {Red, PointSize[Medium], Point[{0, 0}]}]DFixedPoints[{x'[t] == 3x[t] - 4y[t], y'[t] == x[t] - y[t]}, {x, y}, t]StreamPlot[{3x - 4y, x - y}, {x, -3, 3}, {y, -3, 3}, Rule[...]]DFixedPoints[{x'[t] == -y[t], y'[t] == x[t]}, {x, y}, t]StreamPlot[{-y, x}, {x, -3, 3}, {y, -3, 3}, Rule[...]]DFixedPoints[{x'[t] == x[t] + y[t] - 2, y'[t] == x[t] - y[t]}, {x, y}, t]StreamPlot[{x + y - 2, x - y}, {x, -3, 3}, {y, -3, 3}, Rule[...]]DFixedPoints[{x'[t] == -x[t] - y[t] - 1, y'[t] == 2x[t] - y[t] + 5}, {x, y}, t]StreamPlot[{-x - y - 1, 2x - y + 5}, {x, -3, 3}, {y, -3, 3}, Rule[...]]sol = DSolveValue[{x'[t] == -x[t] - y[t] - 1, y'[t] == 2x[t] - y[t] + 5, x[0] == 2, y[0] == 0}, {x[t], y[t]}, t]Plot[sol, {t, 0, 10}]对于由两个二阶 ODE 组成的方程组,不动点是嵌套列表 {{y,y'},{z,z'}}:
DFixedPoints[{-z[t] - 3 y'[t] + y''[t] == 2, z''[t] == y[t] + z'[t] - z[t] - 3}, {y, z}, t]DFixedPoints[{x'[t] == β y[t] + α, y'[t] == δ x[t] - γ}, {x, y}, t]DFixedPoints[{Derivative[1][x][t] == 2 x[t] - 5 y[t], Derivative[1][y][t] == x[t] - 2 y[t], Derivative[1][u][t] == u[t] + 2 v[t], Derivative[1][v][t] == -5 u[t] - v[t]}, {x, y, u, v}, t]sol = DSolveValue[{Derivative[1][x][t] == 2 x[t] - 5 y[t], Derivative[1][y][t] == x[t] - 2 y[t], Derivative[1][u][t] == u[t] + 2 v[t], Derivative[1][v][t] == -5 u[t] - v[t]}, {x[t], y[t], u[t], v[t]}, t]Plot[Evaluate[sol /. {C[1] -> 1, C[2] -> 2, C[3] -> 3, C[4] -> 4}], {t, 0, 10}]SeedRandom[1234];
m = RandomInteger[10, {10, 10}];
g = RandomInteger[10, 10];dep = {x1[t], x2[t], x3[t], x4[t], x5[t], x6[t], x7[t], x8[t], x9[t], x10[t]};sys = Thread[D[dep, t] == m.dep + g];DFixedPoints[sys, dep, t]非线性系统 (4)
DFixedPoints[{x'[t] == −x[t] + 2x[t] y[t], y'[t] == y[t]−x[t]^2−y[t]^2}, {x, y}, t]DStabilityConditions[{x'[t] == −x[t] + 2x[t] y[t], y'[t] == y[t]−x[t]^2−y[t]^2}, {x, y}, t]使用 StreamPlot 来可视化稳定性:
StreamPlot[{−x + 2x y, y−x^2−y^2}, {x, -2, 2}, {y, -1, 2}, Rule[...]]DFixedPoints[{x'[t] == y[t], y'[t] == Sin[x[t]]}, {x, y}, t]DStabilityConditions[{x'[t] == y[t], y'[t] == Sin[x[t]]}, {x, y}, t]StreamPlot[{y, Sin[x]}, {x, -4Pi, 4Pi}, {y, -6, 6}, Rule[...]]DFixedPoints[{y[t] + x[t](1−x[t]^2−y[t]^2) == x'[t], −x[t] + y[t](1−x[t]^2−y[t]^2) == y'[t]}, {x, y}, t]StreamPlot[{y + x(1−x^2−y^2), −x + y(1−x^2−y^2)}, {x, -3, 3}, {y, -3, 3}, Epilog -> {Blue, PointSize[Medium], Point[{0, 0}]}]DFixedPoints[{x''[t] == -2(x[t]^2 + y[t]^2)x'[t] - x[t] - 1, y''[t] == -2(x[t]^2 + y[t]^2)y'[t] - y[t]}, {x, y}, t]选项 (1)
Assumptions (1)
DFixedPoints[{x'[t] == y[t], y'[t] == Sin[x[t]]}, {x, y}, t]使用 Assumptions 来指定因变量的范围:
DFixedPoints[{x'[t] == y[t], y'[t] == Sin[x[t]]}, {x, y}, t, Assumptions -> -4 < x[t] < 4]应用 (11)
物理学 (5)
DFixedPoints[m u''[t] + c u'[t] + k u[t] == 0, u, t]DStabilityConditions[m u''[t] + c u'[t] + k u[t] == 0, u, t]DStabilityConditions[m u''[t] + c u'[t] + k u[t] == 0, u, t, Assumptions -> m > 0 && c > 0 && k > 0]sol = DSolveValue[{m u''[t] + c u'[t] + k u[t] == 0, u[0] == 1, u'[0] == 0}, u[t], t]Plot[sol /. {m -> 1, k -> 1, c -> 0.5}, {t, 0, 20}, PlotRange -> All]DFixedPoints[l i''[t] + r i'[t] + (1/c) i[t] == 0, i, t]DStabilityConditions[l i''[t] + r i'[t] + (1/c) i[t] == 0, i, t]sol = DSolveValue[{l i''[t] + r i'[t] + (1/c) i[t] == 0, i[0] == 1, i'[0] == 0}, i[t], t]Plot[sol /. {r -> 0.1, l -> 5 10^-2, c -> 0.1}, {t, 0, 10}, PlotRange -> All]DFixedPoints[θ''[t] + 1 / 5 θ'[t] + 9 Sin[θ[t]] == 0, θ, t]DStabilityConditions[θ''[t] + 1 / 5 θ'[t] + 9 Sin[θ[t]] == 0, θ, t]StreamPlot[{θ1, -1 / 5θ1 - 9Sin[θ]}, {θ, -3Pi, 3Pi}, {θ1, -10, 10}, ...]sol = NDSolve[{θ''[t] + 1 / 5 θ'[t] + 9 Sin[θ[t]] == 0, θ[0] == Pi / 2, θ'[0] == 0}, θ[t], {t, 0, 20}];
Plot[θ[t] /. sol, {t, 0, 20}, PlotRange -> All]σ = 10;
b = 8 / 3;
r = 15;
eqns = {σ(−x[t] + y[t]) == x'[t], r x[t]−y[t]−x[t] z[t] == y'[t], −b z[t] + x[t] y[t] == z'[t]};DFixedPoints[eqns, {x, y, z}, t]DStabilityConditions[eqns, {x, y, z}, t]使用 StreamPlot3D 可视化洛伦兹吸引子:
StreamPlot3D[{σ(−x + y), r x−y−x z, −b z + x y}, {x, -10, 10}, {y, -10, 10}, {z, 0, 20}]σ = 10;
b = 8 / 3;
r = 28;
eqns = {σ(−x[t] + y[t]) == x'[t], r x[t]−y[t]−x[t] z[t] == y'[t], −b z[t] + x[t] y[t] == z'[t]};DFixedPoints[eqns, {x, y, z}, t]DStabilityConditions[eqns, {x, y, z}, t]sol = NDSolve[{eqns, x[0] == 10, y[0] == 10, z[0] == 20}, {x[t], y[t], z[t]}, {t, 0, 200}];ParametricPlot3D[{x[t], y[t], z[t]} /. sol, {t, 0, 200}, PlotPoints -> 200, ColorFunction -> (Hue[#4]&)]生物 (3)
捕食者-猎物模型的稳定性分析(Lotka–Volterra 方程):
DFixedPoints[{x'[t] == x[t](1 - 1 / 2y[t]), y'[t] == y[t](-3 / 4 + 1 / 4x[t])}, {x, y}, t]DStabilityConditions[{x'[t] == x[t](1 - 1 / 2y[t]), y'[t] == y[t](-3 / 4 + 1 / 4x[t])}, {x, y}, t]StreamPlot[{x(1 - 1 / 2y), y(-3 / 4 + 1 / 4x)}, {x, 0, 8}, {y, 0, 4}, Rule[...]]sol = NDSolve[{x'[t] == x[t](1 - 1 / 2y[t]), y'[t] == y[t](-3 / 4 + 1 / 4x[t]), x[0] == 2, y[0] == 1}, {x[t], y[t]}, {t, 0, 30}]Plot[Evaluate[{x[t], y[t]} /. sol], {t, 0, 30}, PlotLegends -> {"Prey", "Predator"}, PlotRange -> {0, 7}]罗森茲威格-麦克阿瑟(Rosenzweig-MacArthur )捕食者-猎物模型:
eqns = {n'[t] == n[t](1 - n[t] / k) - an p[t]n[t] / (n[t] + h), p'[t] == p[t](ap n[t] / (n[t] + h) - m)};params = {an -> 1, ap -> 2, h -> 1, m -> 1, k -> 4};DFixedPoints[eqns /. params, {n, p}, t]StreamPlot[{n(1 - n / k) - an p n / (n + h), p(ap n / (n + h) - m)} /. params, {n, 0, 4}, {p, 0, 4}, Rule[...]]恒化器(chemostat)模型代表微生物在非生物资源上生长的生物系统:
model = {x'[t] == (k x[t]y[t]/1 + y[t]) - x[t], y'[t] == -(x[t]y[t]/1 + y[t]) - y[t] + q};DFixedPoints[model, {x, y}, t]//SimplifyDStabilityConditions[model /. {k -> 2, q -> 2}, {x, y}, t]StreamPlot[{(k x y/1 + y) - x, -(x y/1 + y) - y + q} /. {k -> 2, q -> 2}, {x, 0, 4}, {y, 0, 3}, Rule[...]]化学 (1)
Brusselator 是一种自催化反应的理论模型. Brusselator 模型的速率方程为:
sys = {x'[t] == x[t]^2y[t] - (b + 1)x[t] + a, y'[t] == -x[t]^2y[t] + b x[t]};DFixedPoints[sys, {x, y}, t]DStabilityConditions[sys /. {a -> 1, b -> 3 / 2}, {x, y}, t]StreamPlot[{x^2y - (b + 1)x + a, -x^2y + b x} /. {a -> 1, b -> 3 / 2}, {x, 0, 3}, {y, 0, 4}, Rule[...]]DStabilityConditions[sys /. {a -> 1, b -> 5 / 2}, {x, y}, t]StreamPlot[{x^2y - (b + 1)x + a, -x^2y + b x} /. {a -> 1, b -> 5 / 2}, {x, 0, 3}, {y, 0, 4}, Rule[...]]控制系统 (2)
eqns = Table[Subscript[j, i[[1]]] Subscript[ω, i[[1]]]'[t] - (Subscript[j, i[[2]]] - Subscript[j, i[[3]]])Subscript[ω, i[[2]]][t]Subscript[ω, i[[3]]][t] == Subscript[τ, i[[1]]][t], {i, {{x, y, z}, {y, z, x}, {z, x, y}}}] /. {Subscript[j, x] -> 300, Subscript[j, y] -> 320, Subscript[j, z] -> 270}DFixedPoints[eqns /. {Subscript[τ, x][t] -> -27 / 400, Subscript[τ, y][t] -> 3 / 200, Subscript[τ, z][t] -> 1 / 50}, {Subscript[ω, x], Subscript[ω, y], Subscript[ω, z]}, t]opPt = {Subscript[ω, x0] -> (1/30Sqrt[3]), Subscript[ω, y0] -> (3Sqrt[3]/100), Subscript[ω, z0] -> (3Sqrt[3]/200), Subscript[τ, x0] -> -(27/400), Subscript[τ, y0] -> (3/200), Subscript[τ, z0] -> (1/50)};ssm = StateSpaceModel[eqns, {{Subscript[ω, x][t], Subscript[ω, x0]}, {Subscript[ω, y][t], Subscript[ω, y0]}, {Subscript[ω, z][t], Subscript[ω, z0]}}, {{Subscript[τ, x][t], Subscript[τ, x0]}, {Subscript[τ, y][t], Subscript[τ, y0]}, {Subscript[τ, z][t], Subscript[τ, z0]}}, {Subscript[ω, x][t], Subscript[ω, y][t], Subscript[ω, z][t]}, t, SystemsModelLabels -> {{Subscript[τ, x], Subscript[τ, y], Subscript[τ, z]}, {Subscript[ω, x], Subscript[ω, y], Subscript[ω, z]}, {Subscript[ω, x], Subscript[ω, y], Subscript[ω, z]}}] /. opPtOutputResponse[{ssm, {0.2, -0.1, 0.35}}, {0, 0, 0}, {t, 0, 3000}];
Plot[%, {t, 0, 3000}, PlotRange -> All, PlotLegends -> {Subscript[ω, x], Subscript[ω, y], Subscript[ω, z]}]ControllableModelQ[ssm]
Subscript[r, p] = Composition[TranslationTransform[{x[t], 0, 0}], RotationTransform[θ[t], {0, 0, 1}]][{0, 1, 0}]Subscript[v, p] = D[Subscript[r, p], t]𝒦 = (1/2)Subscript[m, 1] x'[t]^2 + (1/2)Subscript[m, 2]Subscript[v, p].Subscript[v, p]𝒰 = Subscript[m, 2]g Subscript[r, p][[2]]ℒ = 𝒦 - 𝒰{Subscript[f, x], Subscript[f, θ]} = D[f[t] δx - Subscript[b, x]x'[t]δx - Subscript[b, θ]θ'[t]δθ, {{δx, δθ}}]eqns = Table[Subscript[∂, t]D[ℒ, q'[t]] - D[ℒ, q[t]] == Subscript[f, q], {q, {x, θ}}]//Simplifyssm = StateSpaceModel[eqns, {x[t], x'[t], θ[t], θ'[t]}, f[t], {x[t], θ[t]}, t, SystemsModelLabels -> {f, {x, θ}, {x, Derivative[1][x], θ, Derivative[1][θ]}}]Eigenvalues[First[Normal[ssm /. {Subscript[m, 1] -> 1 / 2, Subscript[m, 2] -> 1 / 10, l -> 3 / 10, g -> 10, Subscript[b, x] -> 15 / 100, Subscript[b, θ] -> 1 / 100}]]]//NDFixedPoints[eqns /. {Subscript[m, 1] -> 1 / 2, Subscript[m, 2] -> 1 / 10, l -> 3 / 10, g -> 10, Subscript[b, x] -> 15 / 100, Subscript[b, θ] -> 1 / 100, f[t] -> 0}, {x, θ}, t]DStabilityConditions[eqns /. {Subscript[m, 1] -> 1 / 2, Subscript[m, 2] -> 1 / 10, l -> 3 / 10, g -> 10, Subscript[b, x] -> 15 / 100, Subscript[b, θ] -> 1 / 100, f[t] -> 0}, {x, θ}, t, {{1, 0, 2Pi, 0}, {1, 0, 3Pi, 0}}]属性和关系 (8)
DFixedPoints 返回微分方程的不动点:
DFixedPoints[y'[t] == a y[t], y, t]DFixedPoints[y'[t] == (1/2)y[t] + 1, y, t]使用 DFixedPoints 求微分方程的所有不动点:
DFixedPoints[y'[t] == 2 y[t](1 - y[t]), y[t], t]使用 DStabilityConditions 分析特定固定点的稳定性:
DStabilityConditions[y'[t] == 2 y[t](1 - y[t]), y[t], t, {{0}}]DStabilityConditions[y'[t] == 2 y[t](1 - y[t]), y[t], t, {{1}}]使用 DFixedPoints 求非线性常微分方程的所有不动点:
points = DFixedPoints[x'[t] == x[t]^2 + 3x[t], x, t]使用 Solve 求不动点:
Solve[x^2 + 3x == 0, x]DFixedPoints[y''[t] + y'[t] + 3 y[t] == 5, y, t]DFixedPoints[{y'[t] + z[t] == 3, y[t] + 2 z'[t] == 1}, {y[t], z[t]}, t]DFixedPoints[{x'[t] == -x[t] - y[t] - 1, y'[t] == 2x[t] - y[t] + 5}, {x, y}, t]使用 DSolveValue 求解系统,以不动点作为初始条件:
sol = DSolveValue[{x'[t] == -x[t] - y[t] - 1, y'[t] == 2x[t] - y[t] + 5, x[0] == -2, y[0] == 1}, {x[t], y[t]}, t]//Simplify使用 DSolveValue 求解给定初始条件的系统:
sol = DSolveValue[{x'[t] == -x[t] - y[t] - 1, y'[t] == 2x[t] - y[t] + 5, x[0] == 3, y[0] == -2}, {x[t], y[t]}, t]//SimplifyPlot[Evaluate[sol], {t, 0, 20}]DFixedPoints[x'[t] == (1/2)x[t](1 - x[t]), x, t]使用 NDSolve 求解常微分方程:
sol = NDSolve[{x'[t] == (1/2)x[t](1 - x[t]), x[0] == 0.5}, x[t], {t, 0, 20}]Plot[x[t] /. sol, {t, 0, 20}, PlotRange -> All]points = DFixedPoints[{x'[t] == x[t](2−x[t]−y[t]), y'[t] == −x[t] + 3y[t]−2x[t] y[t]}, {x, y}, t](jacobian = D[{x(2−x−y), −x + 3y−2x y}, {{x, y}}])//MatrixFormeig1 = Eigenvalues[jacobian /. Thread[{x, y} -> points[[1]]]]eig2 = Eigenvalues[jacobian /. Thread[{x, y} -> points[[2]]]]eig3 = Eigenvalues[jacobian /. Thread[{x, y} -> points[[3]]]]Re[#] < 0& /@ eig1Re[#] < 0& /@ eig2Re[#] < 0& /@ eig3使用 DStabilityConditions 检查点的稳定性:
DStabilityConditions[{x'[t] == x[t](2−x[t]−y[t]), y'[t] == −x[t] + 3y[t]−2x[t] y[t]}, {x, y}, t]相关指南
-
▪
- 微分方程
文本
Wolfram Research (2024),DFixedPoints,Wolfram 语言函数,https://reference.wolfram.com/language/ref/DFixedPoints.html.
CMS
Wolfram 语言. 2024. "DFixedPoints." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/DFixedPoints.html.
APA
Wolfram 语言. (2024). DFixedPoints. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/DFixedPoints.html 年
BibTeX
@misc{reference.wolfram_2026_dfixedpoints, author="Wolfram Research", title="{DFixedPoints}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/DFixedPoints.html}", note=[Accessed: 14-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_dfixedpoints, organization={Wolfram Research}, title={DFixedPoints}, year={2024}, url={https://reference.wolfram.com/language/ref/DFixedPoints.html}, note=[Accessed: 14-August-2026]}