×

Python sympy

SymPy符号数学Python库

我的强少 我的强少 发表于2022-04-06 15:49:53 浏览754 评论0

抢沙发发表评论

SymPy是符号数学的Python库。它的目标是成为一个全功能的计算机代数系统,同时保持代码简洁、易于理解和扩展。

符号表示

from sympy import *

x = Symbol('x')

y = Symbol('y')

展开与折叠

expand( )展开方程

((x+y)**2).expand()

x**2 + 2*x*y + y**2

factor( )折叠方程

factor(x**2 + 2*x*y + y**2)

(x + y)**2

分离与合并

apart( )分离整式

together(1 + 2/(x - 1))

(x + 1)/(x - 1)

together( )合并整式

together(1/x+1/y+1/z)

(x*y + x*z + y*z)/(x*y*z)

简化表达式

simplify( )普通的化简

simplify((x**3 + x**2 - x - 1)/(x**2 + 2*x + 1))

x - 1

trigsimp( )三角化简

trigsimp(sin(x)/cos(x))

tan(x)

powsimp( )指数化简

powsimp(x**a*x**b)

x**(a + b)

solve( )解方程

第一个参数为要解的方程,要求右端等于0,第二个参数为要解的未知数

一元一次方程

solve(x * 3 - 6, x)

二元一次方程

solve([2 * x - y - 3, 3 * x + y - 7],[x, y])

{x: 2, y: 1}

1

2

limit( )求极限

dir=’+’表示求解右极限,dir=’-‘表示求解左极限

limit(1/x,x,oo,dir='+')

0

limit(1/x,x,oo,dir='-')

0

integrate( )求积分

不定积分

integrate(sin(x),x)

-cos(x)

定积分

integrate(sin(x),(x,0,pi/2))

1

diff( )求导

diff(x**3,x)

3*x**2

diff(x**3,x,2)

6*x

dsolve( )解微分方程

y′=2xyy′=2xy 为例

f =Function('f')

dsolve(diff(f(x),x) - 2*f(x)*x,f(x))

Eq(f(x), C1*exp(x**2))

矩阵化简

x1,x2,x3 = symbols('x1 x2 x3')

a11,a12,a13,a22,a23,a33 = symbols('a11 a12 a13 a22 a23 a33')

m = Matrix([[x1, x2, x3]])

n = Matrix([[a11, a12, a13], [a12, a22, a23], [a13, a23, a33]])

v = Matrix([[x1], [x2], [x3]])

f = m * n * v

f[0].subs({x1:1, x2:1, x3:1})

 

Matrix([[x1*(a11*x1 + a12*x2 + a13*x3) + x2*(a12*x1 + a22*x2 + a23*x3) + x3*(a13*x1 + a23*x2 + a33*x3)]])

a11 + 2*a12 + 2*a13 + a22 + 2*a23 + a33

 

 


群贤毕至

访客