pythonSymPy求極值
SymPy是Python符號(hào)計(jì)算庫(kù)。其目標(biāo)是成為一個(gè)功能齊全的計(jì)算機(jī)代數(shù)系統(tǒng),代碼保持簡(jiǎn)潔,易于理解和擴(kuò)展。Python是完全由Python編寫的,不依賴外部庫(kù)。
1、求、求導(dǎo)、求偏導(dǎo)以及帶值求導(dǎo)
importsympy
#求
#設(shè)置符號(hào)變量Symbol只能創(chuàng)建一個(gè)變量symbols可一次定義多個(gè)變量
x1,x2,x3,x4=sympy.symbols('x1,x2,x3,x4')
#創(chuàng)建函數(shù)建立方程式
defF(t):
returnsympy.sin(t)/t
defN(t):
return(x1**3+3*x1**2+1)/(4*x1**3+2*+3)
#調(diào)用limit求
limF=sympy.limit(F(x1),x1,0)
limN=sympy.limit(N(x1),x1,sympy.oo)
print("x1趨于0的為{}".format(limF))
print("x1趨于0的為{}".format(limN))
#求導(dǎo)
#創(chuàng)建求導(dǎo)函數(shù)
defS(t):
returnsympy.sec(t)#正割
defS1(x):
return2*x**4+2
#調(diào)用diff函數(shù)求導(dǎo)
s=sympy.diff(S(x1),x1).subs(x1,1)#subs帶值求導(dǎo)
print('S在1處的導(dǎo)數(shù)為{}'.format(s))
#求多階導(dǎo)數(shù)2階
s1=sympy.diff(S1(x1),x1,2)
#帶值計(jì)算
print("S1的二階導(dǎo)數(shù){}帶入值2計(jì)算為{}".format(s1,s1.subs(x1,2)))
#建立求偏導(dǎo)函數(shù)
defPD(x,y,z):
returnsympy.sin(x+pow(y,2)-sympy.exp(z))
#對(duì)x求偏導(dǎo)
x=sympy.diff(PD(x1,x2,x3),x1)
#print(x.subs(x1,2))
#對(duì)y求偏導(dǎo)
y=sympy.diff(PD(x1,x2,x3),x2)
#對(duì)z求偏導(dǎo)
z=sympy.diff(PD(x1,x2,x3),x3,2)
print("x的偏導(dǎo)為{}\ny的偏導(dǎo)為{}\nz的二次偏導(dǎo)為{}".format(x,y,z))
片
2、建立表達(dá)式
不求其,只需要表達(dá)式。也就是說是一個(gè)未計(jì)算(評(píng)估)的,是一個(gè)表達(dá)式。
fromsympyimportLimit,sin,Symbol
fromsympy.abcimportx
Limit(sin(x)/x,x,0)#這是一個(gè)表達(dá)式,不執(zhí)行計(jì)算
Limit(1/x,x,0,dir='-')#這也是一個(gè)表達(dá)式,不執(zhí)行計(jì)算
以上就是PythonSymPy求極值的用法,希望對(duì)大家有所幫助。更多Python學(xué)習(xí)教程請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。