天天看點

python sympy數學工具庫1 Sympy資料工具庫

文章目錄

  • 1 Sympy資料工具庫
    • 1.1 繪制函數2d圖形
    • 1.2 多函數繪圖
    • 1.3 繪制函數3d圖形
    • 1.4 因式分解
    • 1.5 表達式展開
    • 1.6 解方程
    • 1.7 解方程組
    • 1.8 解參數方程
    • 1.9 解多項式不等式
    • 1.10 解有理不等式
    • 1.11 解通用不等式
    • 1.12 求極限
    • 1.13 函數求導
    • 1.14 導數特定處的值
    • 1.15 高階導數
    • 1.16 求積分
    • 1.17 求機率分布

1 Sympy資料工具庫

1.1 繪制函數2d圖形

from sympy import *

x = Symbol(‘x’)

p2=plotting.plot(sin(x),(x,-10,10))

python sympy數學工具庫1 Sympy資料工具庫

x=Symbol(‘x’)

y=tan(x)

p=plotting.plot(y,grid=True,legend=True,xlim=[-3,3], ylim=[-7,7])

python sympy數學工具庫1 Sympy資料工具庫

1.2 多函數繪圖

x = Symbol(‘x’)

p=plotting.plot(sin(x),cos(x),2*sin(x),legend=True,show=False)

p[0].line_color=‘b’

p[1].line_color=‘r’

p.show()

python sympy數學工具庫1 Sympy資料工具庫

1.3 繪制函數3d圖形

x = Symbol(‘x’)

y = Symbol(‘y’)

p3=plotting.plot3d((x2+y2),(x,-10,10),(y,-10,10))

python sympy數學工具庫1 Sympy資料工具庫

1.4 因式分解

x=Symbol(‘x’)

expr=x**3+1

factor(expr)

python sympy數學工具庫1 Sympy資料工具庫

1.5 表達式展開

x=Symbol(‘x’)

y=Symbol(‘y’)

expr=(x+1)(x**2-x+1)(y+1)*(y**2-y+1)

expand(expr)

python sympy數學工具庫1 Sympy資料工具庫

1.6 解方程

x=Symbol(‘x’)

expr=x**2+5*x+4

solve(expr)

python sympy數學工具庫1 Sympy資料工具庫

1.7 解方程組

x=Symbol(‘x’)

y=Symbol(‘y’)

expr1=x+y-4

expr2=x2+y3-28

solve((expr1,expr2))

1.8 解參數方程

x=Symbol(‘x’)

a=Symbol(‘a’)

b=Symbol(‘b’)

c=Symbol(‘c’)

expr=ax**2+bx+c

solve(expr,x)

python sympy數學工具庫1 Sympy資料工具庫

1.9 解多項式不等式

x=Symbol(‘x’)

expr=-x**2+4<0

solve_poly_inequality(Poly(expr.lhs,x),expr.rel_op)

python sympy數學工具庫1 Sympy資料工具庫

x=Symbol(‘x’)

expr=-x**2+4<=0

solve_poly_inequality(Poly(expr.lhs,x),expr.rel_op)

python sympy數學工具庫1 Sympy資料工具庫

1.10 解有理不等式

x=Symbol(‘x’)

expr=((x+1)/(x+2))>0

lhs=expr.lhs

numer,denom=lhs.as_numer_denom()

p1=Poly(numer)

p2=Poly(denom)

rel=expr.rel_op

solve_rational_inequalities([[((p1,p2),rel)]])

python sympy數學工具庫1 Sympy資料工具庫

1.11 解通用不等式

x=Symbol(‘x’)

expr=sin(x)-0.6>0

solve_univariate_inequality(expr,x,relational=False)

python sympy數學工具庫1 Sympy資料工具庫

x=Symbol(‘x’)

expr=sin(x)-cos(x)>0

solve_univariate_inequality(expr,x,relational=False)

python sympy數學工具庫1 Sympy資料工具庫

也有解不了的

python sympy數學工具庫1 Sympy資料工具庫

1.12 求極限

x=Symbol(‘x’)

Limit((2x+1)/(3x+5),x,S.Infinity).doit()

python sympy數學工具庫1 Sympy資料工具庫

x=Symbol(‘x’)

Limit((2x+1)/(3x+5),x,3).doit()

python sympy數學工具庫1 Sympy資料工具庫

x=Symbol(‘x’)

Limit((2sin(x))/(3x),x,0).doit()

python sympy數學工具庫1 Sympy資料工具庫

x=Symbol(‘x’)

Limit((1+1/x)**x,x,S.Infinity).doit()

python sympy數學工具庫1 Sympy資料工具庫

1.13 函數求導

x=Symbol(‘x’)

Derivative(x*sin(x)+cos(x),x).doit()

python sympy數學工具庫1 Sympy資料工具庫

x=Symbol(‘x’)

Derivative(x*sin(x)*exp(x)+cos(x),x).doit()

python sympy數學工具庫1 Sympy資料工具庫

x=Symbol(‘x’)

Derivative(axsin(b*x)*exp(x)+cos(x),x).doit()

python sympy數學工具庫1 Sympy資料工具庫
python sympy數學工具庫1 Sympy資料工具庫

1.14 導數特定處的值

x=Symbol(‘x’)

y=Derivative(xsin(x)+cos(x),x).doit()

y,y.subs({x:2math.pi})

python sympy數學工具庫1 Sympy資料工具庫

1.15 高階導數

說明:第三個參數為求導階數

x=Symbol(‘x’)

Derivative(x*sin(x)+cos(x),x,2).doit()

python sympy數學工具庫1 Sympy資料工具庫

1.16 求積分

x=Symbol(‘x’)

k=Symbol(‘k’)

expr=Integral(k*x,x)

expr,expr.doit(),expr.doit().subs({x:3})

python sympy數學工具庫1 Sympy資料工具庫

x=Symbol(‘x’)

k=Symbol(‘k’)

k=2

expr=Integral(k*x,(x,2,4))

expr,expr.doit()

python sympy數學工具庫1 Sympy資料工具庫

x=Symbol(‘x’)

y=Symbol(‘y’)

k=Symbol(‘k’)

k=2

expr=Integral(kx,(x,2y,4*y))

expr,expr.doit()

python sympy數學工具庫1 Sympy資料工具庫

1.17 求機率分布

x=Symbol(‘x’)

p=exp(-(x-10)**2/2)/sqrt(2*pi)

Integral(p,(x,10,3)).doit()

python sympy數學工具庫1 Sympy資料工具庫

x=Symbol(‘x’)

p=exp(-(x-10)**2/2)/sqrt(2*pi)

Integral(p,(x,10,3)).doit().evalf()

python sympy數學工具庫1 Sympy資料工具庫

備注:evalf()為求數值解