用途:该技能用于处理数值方法中的求根问题,即求解 f(x)=0。
主要能力:提供决策树帮助判断问题类型(单根或多根、是否有包围区间、是否可求导),并据此选择方法。包围且无导数时用二分法或 Brent 法(scipy.optimize.brentq);有导数时用 Newton-Raphson(scipy.optimize.newton 并传 fprime);无导数时用割线法(scipy.optimize.newton 不传 fprime);方程组用 scipy.optimize.fsolve,理想情况下需提供 Jacobian。
使用方式:命令示例包括 uv run python -c "from scipy.optimize import brentq; root = brentq(lambda x: x2 - 2, 0, 2); print('Root:', root)"、uv run python -c "from scipy.optimize import newton; root = newton(lambda x: x2 - 2, 1.0, fprime=lambda x: 2*x); print('Root:', root)" 以及 uv run python -m runtime.harness scripts/sympy_compute.py solve "x**3 - x - 1" --var x。
多根处理:可用降阶法(deflation)除去已求得的根,或使用多个起点;符号解可用 sympy_compute.py solve。
验证:检查 |f(root)| 是否小于容差,确认根落在预期定义域内,并可用 z3_solve.py prove "f(root) == 0" 验证。
限制:资料未提供具体容差取值、收敛失败处理细节及完整工具文档,相关说明需参考 .claude/skills/math-mode/SKILL.md。