Qurak

Nd solve bvp shooting method

教程 5 步,在同一个会话中按顺序运行。每一步都在引擎上执行过,下面的输出就是它实际产生的。

第 1 步
sols = Map[First[NDSolve[{x''[t] + Sin[x[t]] == 0, x[0] == x[10] == 0}, x, t, Method -> {"Shooting", "StartingInitialConditions" -> {x[0] == 0, x'[0] == #}}]]&,
	{1.5, 1.75, 2}];
Plot[Evaluate[x[t] /. sols], {t, 0, 10}, PlotStyle -> {StandardBrown, StandardBlue, StandardGreen}]
输出
-Graphics-
第 2 步
eqn = x'''[t] - 2λ x''[t] - λ^2x'[t] + 2λ^3x[t] == (λ^2 + π^2) (2 λ Cos[π t] + π Sin[π t]);
bcs = {x[0]  ==   1 + (1 + E^-2 λ + E^-λ/2 + E^-λ), x[1] == 0, x'[1] == (3 λ - E^-λ λ/2 + E^-λ)};
xsol[t_]  =   (E^λ (t - 1) + E^2 λ (t - 1) + E^-λ t/2 + E^-λ) + Cos[π t];

无输出——这一步是在为下一步做准备。

第 3 步
Block[{λ = 10},
	sol = First[NDSolve[{eqn, bcs}, x, t]];
	Plot[{xsol[t], x[t] /. sol}, {t, 0, 1}]]
输出
-Graphics-
第 4 步
Block[{λ = 10},
	sol = First[NDSolve[{eqn, bcs}, x, t,
	Method -> {"Shooting", "StartingInitialConditions" -> {x[1] == 0, x'[1] == (3 λ - E^-λ λ/2 + E^-λ), x''[1] == 0}}]];
	Plot[{xsol[t], x[t] /. sol}, {t, 0, 1}]]
输出
-Graphics-
第 5 步
Block[{λ = 15},
	sol = First[NDSolve[{eqn, bcs}, x, t,
	Method -> {"Shooting", "StartingInitialConditions" -> {x[2 / 3] == 0, x'[2 / 3] == 0, x''[2 / 3] == 0}}]];
	Plot[{xsol[t], x[t] /. sol}, {t, 0, 1}]]
输出
-Graphics-

用到的函数

相关操作示例

全部操作示例 · 函数参考 · 从 MCP 客户端使用