用途:该技能面向 Python 符号数学任务,使用数学符号进行精确计算而非数值近似,适用于符号代数、微积分、线性代数、方程求解、物理计算、数论、几何与代码生成等场景。
主要能力:
- 符号计算基础:用 symbols/Symbol 定义符号与表达式,支持 simplify、expand、factor、cancel,并可用 real、positive、integer 等假设条件改善化简。
- 微积分:diff 求导(含高阶与偏导)、integrate 求不定/定积分及反常积分、limit 求极限、series 展开级数。
- 方程求解:solve、solveset 解代数方程,linsolve 解线性方程组,nonlinsolve 解非线性方程组,dsolve 解微分方程。
- 矩阵与线性代数:Matrix 创建与运算,求逆、行列式、转置、特征值与特征向量、对角化,以及 A.solve(b) 解线性系统。
- 物理与力学:经典力学(如 LagrangesMethod)、矢量分析(dot/cross)、量子力学(Ket/Bra/Commutator)等。
- 进阶数学:几何、数论、组合数学、逻辑与集合、统计学、特殊函数、多项式与 Groebner 基。
- 代码生成与输出:lambdify 转为 NumPy 等可执行函数,codegen 生成 C/Fortran 代码,latex/pprint 生成格式化输出。
必要用法与最佳实践:先定义符号再使用;用 Rational 或 S 保持精确算术,避免 0.5 这类浮点引入近似;需要数值结果时用 evalf,循环大量求值建议 lambdify 转 NumPy 函数;按问题选择合适求解器。
适用场景:需要精确数学结果(如 sqrt(2) 而非 1.414)、符号推导、公式文档化,以及与 NumPy、Matplotlib、SciPy 结合的科学计算流程。
限制:资料未提供该技能的安装命令、收费方式、平台支持与性能基准;遇到无法求解的方程可尝试不同求解器或 nsolve 数值方法;化简结果不理想时可尝试不同化简函数或为符号添加假设。