📜  SymPy-集成(1)

📅  最后修改于: 2023-12-03 15:20:26.355000             🧑  作者: Mango

SymPy-集成

SymPy-集成是一个用Python编写的符号数学库,用于处理数学表达式和方程式。 它可以处理多项式,微积分,方程式,级数,离散数学,逻辑表达式和数论等领域的数学问题。

特性
  1. 符号计算:支持符号计算,可以代数计算表达式而不是具体数值。

  2. 多项式表示:支持利用SymPy进行多项式展开,阶乘,组合数的计算。

  3. 微积分:支持用SymPy处理导数,积分,级数及微分方程等。

  4. 线性代数:支持解线性方程组,计算矩阵的逆和行列式,特征值和特征向量等。

  5. 绘图功能:SymPy-集成的plotting模块支持2D和3D绘图。

  6. LaTeX代码生成:可以将得到的结果生成带有LaTeX格式的代码。

安装
pip安装
pip install sympy
Anaconda环境安装
conda install sympy
使用
符号计算
import sympy

x = sympy.symbols("x")
expr = x**2 + 2*x + 1
print(sympy.diff(expr,x))

输出:

2*x + 2
多项式展开
import sympy

x = sympy.symbols("x")
expr = (x+1)**3
print(sympy.expand(expr))

输出:

x**3 + 3*x**2 + 3*x + 1
微积分
import sympy

x, y = sympy.symbols("x y")
expr1 = 3*x**2 + x*y + 2*y**2
expr2 = sympy.cos(x) + sympy.exp(y) + x**2

print(sympy.diff(expr1, x))
print(sympy.integrate(expr1, y))
print(sympy.series(sympy.exp(expr2), x, n=4))

输出:

6*x + y
x**3/3 + x**2*y/2 + 2*y**3/3
exp(cos(x) + x**2 + exp(y)) - 1 - (x**2/2 - y**2) + (x**4/24 + x**2*y + y**2/2) + O(x**6)
线性代数
import sympy

a, b, c, d = sympy.symbols("a b c d")
A = sympy.Matrix([[a, b], [c, d]])
B = sympy.Matrix([1, 2])

print(A.det())
print(A.inv())
print(A.eigenvals())
print(A.eigenvects())
print(A.solve(B))

输出:

a*d - b*c
Matrix([
[d/(a*d - b*c), -b/(a*d - b*c)],
[-c/(a*d - b*c),  a/(a*d - b*c)]])
{a/2 + d/2 - sqrt(a**2 - 2*a*d + 4*b*c + d**2)/2: 1, a/2 + d/2 + sqrt(a**2 - 2*a*d + 4*b*c + d**2)/2: 1}
[(a/2 + d/2 - sqrt(a**2 - 2*a*d + 4*b*c + d**2)/2, 1, [Matrix([
[(b + d - sqrt(a**2 - 2*a*d + 4*b*c + d**2))/(2*c)],
[                                              1]])]), (a/2 + d/2 + sqrt(a**2 - 2*a*d + 4*b*c + d**2)/2, 1, [Matrix([
[(b + d + sqrt(a**2 - 2*a*d + 4*b*c + d**2))/(2*c)],
[                                              1]])])]
[(-2*b*c + d - 2, 1)]