新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:PythonSymPy求極值
sympy是python符號計算庫。其目標是成為一個功能齊全的計算機代數(shù)系統(tǒng),代碼保持簡潔,易于理解和擴展。Python是完全由Python編寫的,不依賴外部庫。

1、求、求導(dǎo)、求偏導(dǎo)以及帶值求導(dǎo)
import sympy
#求
#設(shè)置符號變量Symbol只能創(chuàng)建一個變量 symbols 可一次定義多個變量
x1,x2,x3,x4=sympy.symbols('x1,x2,x3,x4')
#創(chuàng)建函數(shù)建立方程式
def F(t):
return sympy.sin(t)/t
def N(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ù)
def S(t):
return sympy.sec(t) #正割
def S1(x):
return 2*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)
#帶值計算
print("S1的二階導(dǎo)數(shù){} 帶入值2計算為{}".format(s1,s1.subs(x1,2)))
#建立求偏導(dǎo)函數(shù)
def PD(x,y,z):
return sympy.sin(x+pow(y,2)-sympy.exp(z))
#對x求偏導(dǎo)
x=sympy.diff(PD(x1,x2,x3),x1)
# print(x.subs(x1,2))
#對y求偏導(dǎo)
y=sympy.diff(PD(x1,x2,x3),x2)
#對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、建立表達式
不求其,只需要表達式。也就是說是一個未計算(評估)的,是一個表達式。
from sympy import Limit, sin, Symbol from sympy.abc import x Limit(sin(x)/x, x, 0) # 這是一個表達式,不執(zhí)行計算 Limit(1/x, x, 0, dir='-') # 這也是一個表達式,不執(zhí)行計算
以上就是Python SymPy求極值的用法,希望對大家有所幫助。更多Python學(xué)習(xí)指路:創(chuàng)新互聯(lián)Python教程
本文教程操作環(huán)境:windows7系統(tǒng)、Python 3.9.1,DELL G3電腦。
標題名稱:創(chuàng)新互聯(lián)Python教程:PythonSymPy求極值
文章起源:http://www.dlmjj.cn/article/cooeiog.html


咨詢
建站咨詢
