前言
一般的數(shù)學(xué)算式math就可以解決了考阱,但是涉及到極限泌射,微積分等知識粘姜,math就不行了,程序中無法用符號表示出來熔酷。
python中有一個sympy科學(xué)計算庫孤紧,專門用來解決數(shù)學(xué)的運算問題。
安裝
使用鏡像安裝會比較快拒秘,推薦第二種
# 第一種
pip install sympy
# 第二種 推薦
pip install sympy -i https://pypi.tuna.tsinghua.edu.cn/simple"
使用
一個變量
from sympy import *
#定義變量
x= symbols("x")
# 數(shù)學(xué)表達式
expr = cos(x)+1
# 傳遞x=0坛芽,打印出結(jié)果
print(expr.subs(x,0)) # 結(jié)果:2
解釋:使用時需要先定義變量,通過表達式的subs傳遞數(shù)值進去翼抠,第一個參數(shù)代表的是x變量咙轩,值為0.
多個變量
from sympy import *
#定義變量
x, y, z = symbols("x y z")
# 數(shù)學(xué)表達式
expr = x**3 + 4*x*y - z
# 傳遞x=0,打印出結(jié)果
print(expr.subs([(x, 2), (y, 4), (z, 0)])) # 結(jié)果 2*3+4*2*4-0=40
解釋:多個變量可以一次性定義阴颖,然后傳遞多個數(shù)值時活喊,以列表的形式。出來場面這種方式以外量愧,下面這種方式也可以钾菊。
from sympy import *
#定義變量
x, y, z = symbols("x y z")
# 數(shù)學(xué)表達式
expr = x**3 + 4*x*y - z
# 傳遞x=0,打印出結(jié)果
print(expr.evalf(subs={x:2,y:4,z:0})) # 結(jié)果 2*3+4*2*4-0=40
極限
極限公式:
常數(shù)a就叫做函數(shù)f(x) 當(dāng)x-->x0 時的極限偎肃。
from sympy import *
#定義變量
x, y, z = symbols("x y z")
# 打印1/x極限
print(limit(1/x, x, 0)) #結(jié)果:oo
解釋:limit是求極限方法煞烫,三個參數(shù)分別表示 函數(shù)表達式1/x,變量x累颂,極限位置值0滞详。最后結(jié)果為oo無窮大,
求導(dǎo)/微分
導(dǎo)數(shù)的幾何意義其實就是切線的斜率
如下圖所示:
一般公式:
這里y'或者f'(x)就是函數(shù)在x0處的導(dǎo)數(shù)紊馏。
微分:微分其實就是微小的增量料饥,無窮小量。
通常把自變量x的增量 Δx稱為自變量的微分朱监,記作dx岸啡,即dx = Δx。于是函數(shù)y = f(x)的微分又可記作dy = f'(x)dx赫编。函數(shù)因變量的微分與自變量的微分之商等于該函數(shù)的導(dǎo)數(shù)巡蘸。
from sympy import *
#定義變量
x, y, z = symbols("x y z")
# 打印導(dǎo)數(shù)
print(diff(sin(x), x)) # 結(jié)果:cos(x)
print(diff(x**2, x,2)) # 結(jié)果:2
解釋:diff函數(shù)的作用是求導(dǎo)擂送,第一個參數(shù)表示被求導(dǎo)的函數(shù)悦荒,第二個參數(shù)是自變量,第三個參數(shù)是求導(dǎo)次數(shù)团甲。sin(x)求一次導(dǎo)為cos(x)逾冬;2x**2求兩次導(dǎo)為2。
定積分與不定積分
導(dǎo)函數(shù)的原函數(shù)稱為不定積分,x**2的導(dǎo)數(shù)是2x,那2x的不定積分就為2x+c(常數(shù))身腻。
設(shè) 是函數(shù)f(x)的一個原函數(shù)产还,我們把函數(shù)f(x)的所有原函數(shù)F(x)+C(C為任意常數(shù))叫做函數(shù)f(x)的不定積分,記作嘀趟,即∫f(x)dx=F(x)+C.其中∫叫做積分號脐区,f(x)叫做被積函數(shù),x叫做積分變量她按,f(x)dx叫做被積式牛隅,C叫做積分常數(shù),求已知函數(shù)不定積分的過程叫做對這個函數(shù)進行積分酌泰。
f在閉區(qū)間[a,b]上的積分記作:這叫做定積分媒佣,幾何意義就是表示f(x)與x軸圍成的面積。
from sympy import *
#定義變量
x, y, z = symbols("x y z")
# 打印不定積分和積分
print(integrate(6*x**5, x)) # 結(jié)果:x**6
print(integrate(sin(x), x)) # 結(jié)果:-cos(x)
print(integrate(sin(x), (x, 0, pi/2)))# 結(jié)果:-cos(pi/2)+cos(0)=0+1=1
解釋:integrate是積分函數(shù)陵刹,第一個參數(shù)是被積函數(shù)默伍,第二個參數(shù)x表示自變量,若是元組形式 x表示自變量 -pi表示積分下限衰琐,pi表示積分上限也糊。
參考:
https://docs.sympy.org/latest/index.html
(全文完)
長按二維碼,加關(guān)注羡宙!葉子陪你玩
歡迎轉(zhuǎn)載狸剃,轉(zhuǎn)載請注明出處!
歡迎關(guān)注公眾微信號:葉子陪你玩
分享自己的python編程學(xué)習(xí)之路