[ PROMPT_NODE_27470 ]
core-capabilities
[ SKILL_DOCUMENTATION ]
# SymPy 核心能力
本文档涵盖了 SymPy 的基础操作:符号计算基础、代数、微积分、简化和方程求解。
## 创建符号与基本运算
### 符号创建
**单个符号:**
python
from sympy import symbols, Symbol
x = Symbol('x')
# 或更常用的方式:
x, y, z = symbols('x y z')
**带假设条件:**
python
x = symbols('x', real=True, positive=True)
n = symbols('n', integer=True)
常见假设:`real`(实数), `positive`(正数), `negative`(负数), `integer`(整数), `rational`(有理数), `prime`(素数), `even`(偶数), `odd`(奇数), `complex`(复数)
### 基本算术
SymPy 支持标准的 Python 运算符进行符号表达式运算:
- 加法:`x + y`
- 减法:`x - y`
- 乘法:`x * y`
- 除法:`x / y`
- 幂运算:`x**y`
**重要提示:** 使用 `sympy.Rational()` 或 `S()` 来处理精确的有理数:
python
from sympy import Rational, S
expr = Rational(1, 2) * x # 正确:精确的 1/2
expr = S(1)/2 * x # 正确:精确的 1/2
expr = 0.5 * x # 创建浮点近似值
### 替换与求值
**替换值:**
python
expr = x**2 + 2*x + 1
expr.subs(x, 3) # 返回 16
expr.subs({x: 2, y: 3}) # 多重替换
**数值求值:**
python
from sympy import pi, sqrt
expr = sqrt(8)
expr.evalf() # 2.82842712474619
expr.evalf(20) # 2.8284271247461900976 (20 位精度)
pi.evalf(100) # pi 的 100 位精度
## 简化
SymPy 提供了多种简化函数,每种函数采用不同的策略:
### 通用简化
python
from sympy import simplify, expand, factor, collect, cancel, trigsimp
# 通用简化(尝试多种方法)
simplify(sin(x)**2 + cos(x)**2) # 返回 1
# 展开乘积和幂
expand((x + 1)**3) # x**3 + 3*x**2 + 3*x + 1
# 多项式因式分解
factor(x**3 - x**2 + x - 1) # (x - 1)*(x**2 + 1)
# 按变量合并同类项
collect(x*y + x - 3 + 2*x**2 - z*x**2 + x**3, x)
# 取消有理表达式中的公因子
cancel((x**2 + 2*x + 1)/(x**2 + x)) # (x + 1)/x
### 三角函数简化
python
from sympy import sin, cos, tan, trigsimp, expand_trig
# 简化三角表达式
trigsimp(sin(x)**2 + cos(x)**2) # 1
trigsimp(sin(x)/cos(x)) # tan(x)
# 展开三角函数
expand_trig(sin(x + y)) # sin(x)*cos(y) + sin(y)*cos(x)
### 幂与对数简化
python
from sympy import powsimp, powdenest, log, expand_log, logcom