溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python 中Sympy如何使用

發(fā)布時間:2021-08-06 17:24:31 來源:億速云 閱讀:280 作者:Leah 欄目:開發(fā)技術(shù)

Python 中Sympy如何使用,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

1、表達式與表達式求值:

#--------多項式求解--------
#定義變量
x=sympy.Symbol('x')
fx=5*x+4
#使用evalf函數(shù)傳值
y1=fx.evalf(subs={x:6})
print(y1)
#多元表達式
x=sympy.Symbol('x')
y=sympy.Symbol('y')
fx=x*x+y*y
result=fx.evalf(subs={x:3,y:4})
print(result)

       2、函數(shù)方程求解:

#解方程 有限解
#定義變量
x=sympy.Symbol('x')
y=sympy.Symbol('y')
fx=x*3+9
#可求解直接給出解向量
print(sympy.solve(fx,x))
#解方程無窮多解
#定義變量
x=sympy.Symbol('x')
y=sympy.Symbol('y')
fx=x*3+y**2
#得到是x與y的關(guān)系式,
print(sympy.solve(fx,x,y))
#解方程組
#定義變量
x=sympy.Symbol('x')
y=sympy.Symbol('y')
f1=x+y-3
f2=x-y+5
sympy.solve([f1,f2],[x,y])

3、求和 

Python 中Sympy如何使用

import sympy
#定義變量
n=sympy.Symbol('n')
f=2*n
#前面參數(shù)放函數(shù),后面放變量的變化范圍
s=sympy.summation(f,(n,1,100))
print(s)

解帶有求和式的方程 :  

Python 中Sympy如何使用   

#解釋一下,i可以看做是循環(huán)變量,就是x自己加五次
#先定義變量,再寫出方程
x=sympy.Symbol('x')
i=sympy.Symbol('i')
f=sympy.summation(x,(i,1,5))+10*x-15
result=sympy.solve(f,x)
print(result)

         4、求極限(注意,math包中sin和很多數(shù)學(xué)函數(shù)會報錯,要用sympy中的,無窮大用 sympy.oo 表示)

Python 中Sympy如何使用

#求極限使用limit方法
#定義變量與函數(shù)
x=sympy.Symbol('x')
f1=sympy.sin(x)/x
f2=(1+x)**(1/x)
f3=(1+1/x)**x
#三個參數(shù)是 函數(shù),變量,趨向值
lim1=sympy.limit(f1,x,0)
lim2=sympy.limit(f2,x,0)
lim3=sympy.limit(f3,x,sympy.oo)
print(lim1,lim2,lim3)

           5、求導(dǎo) 

#求導(dǎo)使用diff方法
x=sympy.Symbol('x')
f1=2*x**4+3*x+6
#參數(shù)是函數(shù)與變量
f1_=sympy.diff(f,x)
print(f1_)
 
f2=sympy.sin(x)
f2_=sympy.diff(f2,x)
print(f2_)
 
#求偏導(dǎo)
y=sympy.Symbol('y')
f3=2*x**2+3*y**4+2*y
#對x,y分別求導(dǎo),即偏導(dǎo)
f3_x=sympy.diff(f3,x)
f3_y=sympy.diff(f3,y)
print(f3_x)
print(f3_y)

           6、求定積分

Python 中Sympy如何使用

#求定積分用 integrate方法
x=sympy.Symbol('x')
f=2*x
#參數(shù)傳入 函數(shù),積分變量和范圍
result=sympy.integrate(f,(x,0,1))
print(result)

          上面的求法有點爛,難的就罷工不干了,我丟,還是喜歡scipy,如下: http://liao.cpython.org/scipy18/  scipy 還能解決很多數(shù)值計算,包括多重積分。 

from scipy import integrate
def f(x):
    return x + 1
v, err = integrate.quad(f, 1, 2)# err為誤差
print (v)

 以下計算多重積分: 

Python 中Sympy如何使用

#求多重積分,先求里面的積分,再求外面的
x,t=sympy.symbols('x t')
f1=2*t
f2=sympy.integrate(f1,(t,0,x))
result=sympy.integrate(f2,(x,0,3))
print(result)

        7、求不定積分

Python 中Sympy如何使用    

#求不定積分其實和定積分區(qū)別不大
x=sympy.Symbol('x')
f=(sympy.E**x+2*x)
f_=sympy.integrate(f,x)
print(f_)

         8、數(shù)學(xué)符合補充:

#數(shù)學(xué)符合
#虛數(shù)單位i
sympy.I
#自然對數(shù)低e
sympy.E
#無窮大
sympy.oo
#圓周率
sympy.pi
#求n次方根
sympy.root(8,3)
#求對數(shù)
sympy.log(1024,2)
#求階乘
sympy.factorial(4)
#三角函數(shù)
sympy.sin(sympy.pi)
sympy.tan(sympy.pi/4)
sympy.cos(sympy.pi/2)

         9、公式展開與折疊 

x=sympy.Symbol('x')
#公式展開用expand方法
f=(1+2*x)*x**2
ff=sympy.expand(f)
print(ff)
#公式折疊用factor方法
f=x**2+1+2*x
ff=sympy.factor(f)
print(ff)

         10、公式分離與合并(分數(shù)的分離與合并)

x=sympy.Symbol('x')
y=sympy.Symbol('y')
#公式展開用apart方法,和expand區(qū)別不是很大,常用于分數(shù)進行分離
f=(x+2)/(x+1)
ff=sympy.apart(f)
print(ff)
#公式折疊用tegother方法
f=(1/x+1/y)
ff=sympy.together(f)
print(ff)

11、表達式簡化

#simplify( )普通的化簡
simplify((x**3 + x**2 - x - 1)/(x**2 + 2*x + 1))
#trigsimp( )三角化簡
trigsimp(sin(x)/cos(x))
#powsimp( )指數(shù)化簡
powsimp(x**a*x**b)

看完上述內(nèi)容,你們掌握Python 中Sympy如何使用的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI