洛伦茨方程的敏感度
leqns = {Derivative[1][x][t] == -3 (x[t] - y[t]), Derivative[1][y][t] == -x[t] z[t] + σ x[t] - y[t], Derivative[1][z][t] == x[t] y[t] - z[t]};pl = ParametricNDSolveValue[{leqns, x[0] == z[0] == 0, y[0] == 1}, Function[Evaluate[{x[#], y[#], z[#]}]], {t, 0, 15}, σ];ParametricPlot3D[pl[28][t], {t, 0, 15}, ColorFunction -> (Hue[.8 #4]&)]ParametricPlot3D[pl'[28][t], {t, 0, 15}, PlotRange -> All, ColorFunction -> (Hue[.8 #4]&)]ParametricPlot3D[{pl[28][t], pl[28.1][t], pl[27.9][t]}, {t, 0, 15}, PlotRange -> All, PlotStyle -> {Blue, Red, Green}]equilibria[σ_] = Select[{x[t], y[t], z[t]} /. Solve[leqns /. {x'[t] -> 0, y'[t] -> 0, z'[t] -> 0}, {x[t], y[t], z[t]}], UnsameQ[Norm[#], 0]&]sb[σ_][t_ ? NumberQ] := Module[{v, eqv, o},
v = pl[σ];
eqv = First[Nearest[Map[v[t] - #&, equilibria[σ]], v[t], 1]];
o = Orthogonalize[{v'[t], eqv, Cross[v'[t], eqv]}];
o.pl'[σ][t]]ParametricPlot3D[sb[28][t], {t, 0, 15}, PlotRange -> All, ColorFunction -> (Hue[.8 #4]&), PlotRange -> All, BoxRatios -> 1, AxesLabel -> {"p", "o1", "o2"}]Block[{σ = 28}, ParametricPlot3D[pl[σ][t] + .025 Abs[sb[σ][t]]{0, Cos[θ], Sin[θ]}, {t, 0, 15}, {θ, 0, 2 π}, PlotPoints -> {300, 20}, Mesh -> None, PlotStyle -> Opacity[.4], BoxRatios -> 1, PlotRange -> All, ImageSize -> Medium, AxesLabel -> {"x"."y", "z"}]]