name: 二阶常微分方程 description: “ODE PDE 中二阶常微分方程的解题策略” allowed-tools: [Bash, Read]
二阶常微分方程
何时使用
在处理 ODE PDE 中的二阶常微分方程问题时使用此技能。
决策树
-
分类 ODE
- 常系数:ay’’ + by’ + cy = f(x)?
- 变系数:y’’ + P(x)y’ + Q(x)y = R(x)?
- 柯西-欧拉:x^2 y’’ + bxy’ + cy = 0?
-
常系数齐次方程
- 特征方程:ar^2 + br + c = 0
- 不同实根:y = c1e^{r1x} + c2e^{r2x}
- 重根:y = (c1 + c2x)e^{rx}
- 复根 a +/- bi:y = e^{ax}(c1cos(bx) + c2sin(bx))
sympy_compute.py solve "a*r**2 + b*r + c" --var r
-
特解(非齐次)
- 待定系数法:基于 f(x) 猜测
- 参数变易法:y_p = u1y1 + u2y2
sympy_compute.py dsolve "y'' + y = sin(x)"
-
数值解
- 转换为一阶系统:令 v = y’,则 v’ = y’’
solve_ivp(system, [t0, tf], [y0, v0])
-
边值问题
- 射击法:猜测初始斜率,迭代
scipy.integrate.solve_bvp(ode, bc, x, y_init)
工具命令
Scipy_Solve_Ivp_System
uv run python -c "from scipy.integrate import solve_ivp; sol = solve_ivp(lambda t, Y: [Y[1], -Y[0]], [0, 10], [1, 0]); print('y(10) =', sol.y[0][-1])"
Sympy_Charpoly
uv run python -m runtime.harness scripts/sympy_compute.py solve "r**2 + r + 1" --var r
Sympy_Dsolve_2Nd
uv run python -m runtime.harness scripts/sympy_compute.py dsolve "Derivative(y,x,2) + y"
关键技术
来自索引教科书:
- [《数值分析导论…》(Z-Library)] 现代常微分方程数值方法,Wiley, New York。DVERK 用户指南:求解非刚性 ODE 的子程序。Keller (1966),《数值方法分析》。
- [《初等微分方程与…》(Z-Library)] Riccati 方程,y1(t) = 1 是一个解。使用问题 33 建议的变换,找出 v(t) 满足的线性方程。在 x(t) = at 的情况下找出 v(t),其中 a 是常数。
- [《数值分析导论…》(Z-Library)] 非刚性常微分方程初值方法测试结果,SIAM J. 比较 Fehlberg, E. 的数值方法。带步长控制的四阶及低阶经典 Runge-Kutta 公式及其在热传导问题中的应用,Computing 6, 61-71。
- [《初等微分方程与…》(Z-Library)] 文本中引用的 Robert May 的两篇论文:R. May,“非重叠代数的生物种群:稳定点、稳定周期和混沌,” Science 186 (1974),pp. 服从差分方程的生物学种群:稳定点、稳定周期和混沌,” Journal of Theoretical Biology 51 (1975),pp.
- [《数值分析导论…》(Z-Library)] COLSYS:边界值 ODE 的配置软件,ACM Trans. 常微分方程边界值问题的数值解。《初等微分方程与边界值问题》,第4版。
认知工具参考
查看 .claude/skills/math-mode/SKILL.md 获取完整工具文档。