pythonsympy的安裝和使用-創(chuàng)新互聯(lián)

本篇文章主要探討python的sympy的安裝和使用。有一定的參考價值,有需要的朋友可以參考一下,跟隨小編一起來看解決方法吧。

創(chuàng)新互聯(lián)擁有網(wǎng)站維護(hù)技術(shù)和項目管理團(tuán)隊,建立的售前、實施和售后服務(wù)體系,為客戶提供定制化的成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)站維護(hù)、BGP機房服務(wù)器托管解決方案。為客戶網(wǎng)站安全和日常運維提供整體管家式外包優(yōu)質(zhì)服務(wù)。我們的網(wǎng)站維護(hù)服務(wù)覆蓋集團(tuán)企業(yè)、上市公司、外企網(wǎng)站、成都商城網(wǎng)站開發(fā)、政府網(wǎng)站等各類型客戶群體,為全球成百上千家企業(yè)提供全方位網(wǎng)站維護(hù)、服務(wù)器維護(hù)解決方案。

1.安裝

pip3 install sympy

建議使用anaconda,里面有大量的科學(xué)包,方便使用!

2.使用

我會根據(jù)我的理解和官方教程來進(jìn)行使用,英語好的可以直接去官網(wǎng)看,防止我可能出現(xiàn)的理解誤差。

請認(rèn)真看注釋!

from sympy import * //引入包

x = symbols('x') //聲明變量'x'

a = Integral(cos(x)*exp(x),x) //

print(Eq(a,a.doit()))

Symbol()函數(shù)定義單個數(shù)學(xué)符號;symbols()函數(shù)定義多個數(shù)學(xué)符號

3.數(shù)學(xué)符號

學(xué)了那么久python,忽然發(fā)現(xiàn)自己連數(shù)學(xué)符號都不會打,趁這次機會學(xué)習(xí)一下好了。

sqrt:根號

pi:圓周率

exp(x):exe^xex

詳見《python之math庫的使用》

復(fù)數(shù)的表示

aComplex = 1 + 2j //申明一個復(fù)數(shù)

aComplex

(1+2j)

aComplex.real //復(fù)數(shù)實部

1.0

aComplex.imag //復(fù)數(shù)虛部

2.0

aComplex.conjugate() //共軛復(fù)數(shù)

(1-2j)

//  取整除 - 向下取接近除數(shù)的整數(shù)

比較運算符

==  等于 - 比較對象是否相等  (a == b) 返回 False。

!=  不等于 - 比較兩個對象是否不相等  (a != b) 返回 True。

>  大于 - 返回x是否大于y  (a > b) 返回 False。

<  小于 - 返回x是否小于y。所有比較運算符返回1表示真,返回0表示假。這分別與特殊的變量True和False等價。注意,這些變量名的大寫。  (a < b) 返回 True。

>=  大于等于 - 返回x是否大于等于y?! ?a >= b) 返回 False。

<=  小于等于 - 返回x是否小于等于y。  (a <= b) 返回 True。

賦值運算符

以下假設(shè)變量a為10,變量b為20:

運算符  描述  實例

=  簡單的賦值運算符  c = a + b 將 a + b 的運算結(jié)果賦值為 c

+=  加法賦值運算符  c += a 等效于 c = c + a

-=  減法賦值運算符  c -= a 等效于 c = c - a

*=  乘法賦值運算符  c *= a 等效于 c = c * a

/=  除法賦值運算符  c /= a 等效于 c = c / a

%=  取模賦值運算符  c %= a 等效于 c = c % a

**=  冪賦值運算符  c **= a 等效于 c = c ** a

//=  取整除賦值運算符  c //= a 等效于 c = c // a

:=  海象運算符,可在表達(dá)式內(nèi)部為變量賦值。Python3.8 版本新增運算符?! ≡谶@個示例中,賦值表達(dá)式可以避免調(diào)用 len() 兩次:if (n := len(a)) > 10: print(f"List is too long ({n} elements, expected <= 10)")

示例:

4.擴(kuò)展運用

折疊表達(dá)式

factor()函數(shù)可以折疊表達(dá)式(提取公因子),而expand()函數(shù)可以展開表達(dá)式(類似于一般式)

舉個例子:x3+y2x2+zxx^3+y^2x^2+zxx3+y2x2+zx,折疊后:x(x2+y2x+z)x(x^2+y^2x+z)x(x2+y2x+z).

import math

import sympy

x,y,z = symbols('x y z')

expr = x**3+(x**2)*(y**2)+z*x

f_expr = factor(expr)

e_expr = expand(f_expr)

print(f_expr)

print(e_expr)

輸出結(jié)果:

x*(x**2 + x*y**2 + z)

x**3 + x**2*y**2 + x*z

表達(dá)式化簡

simplify()函數(shù)可以對表達(dá)式進(jìn)行化簡,相當(dāng)于合并同類項

from sympy import *

x,y = symbols('x y')

expr=(2*x)**3*(-5*x*y**2)

s_expr=simplify(expr)

print(s_expr)

輸出: -40*x**4*y**2

求解方程組

一元方程組,例:6x+6(x?2000)=1500006x+6(x-2000)=1500006x+6(x?2000)=150000, (需要移項)

from sympy import *

x = Symbol('x')

print(solve(6*x + 6*(x-2000)-150000,x)) //默認(rèn)使用一邊為0來求解

二元一次方程組,例:

from sympy import *

x,y = symbols('x y')

print(solve([x + y-10,2*x+y-16],[x,y]))

輸出: {x: 6, y: 4}

n元同理,不再示例。

一元二次方程組

from sympy import *

x,y = symbols('x y')

a,b,c = symbols('a b c')

expr = a*x**2 + b*x + c

s_expr = solve(expr, x) //告知要解的參數(shù)

print(s_expr)

輸出 :[(-b + sqrt(-4*a*c + b**2))/(2*a), -(b + sqrt(-4*a*c + b**2))/(2*a)]

微積分Calculus

一個非常重點的內(nèi)容,請認(rèn)真看并記住!

求極限

Sympy是使用limit(表達(dá)式,變量,極限值)函數(shù)來求極限的

例子:lim?y→0sin(x)x\displaystyle \lim_{y \to0}\frac{sin(x)}{x}y→0limxsin(x)

from sympy import *

x,y = symbols('x y')

expr = sin(x)/x

l_expr = limit(expr, x, 0)

print(l_expr)

結(jié)果為1

求導(dǎo)鄭州人流醫(yī)院 http://m.zzzy120.com/

可以使用diff(表達(dá)式,變量,求導(dǎo)的次數(shù))函數(shù)對表達(dá)式求導(dǎo)(matlab也和這個差不多)

例子:sin(x)exsin(x)e^xsin(x)ex

from sympy import *

x,y = symbols('x y')

expr = sin(x)*exp(x)

diff_expr = diff(expr, x)

diff_expr2 = diff(expr,x,2) //n階導(dǎo)同理

print(diff_expr)

print(diff_expr2)

求不定積分

Sympy是使用integrate(表達(dá)式,變量)來求不定積分的

例子:exsin(x)+excos(x)e^xsin(x)+e^xcos(x)exsin(x)+excos(x)

from sympy import *

x,y = symbols('x y')

expr=exp(x)*sin(x) + exp(x)*cos(x)

i_expr=integrate(expr,x)

print(i_expr)

輸出原函數(shù):exp(x)*sin(x)

求定積分

Sympy同樣是使用integrate()函數(shù)來做定積分的求解,

例子:sin(x2)sin(x^2)sin(x2)

from sympy import *

x,y = symbols('x y')

expr=sin(x**2)

i_expr=integrate(expr, (x, -oo, oo))

print(i_expr)

輸出:sqrt(2)*sqrt(pi)/2 即:2π2\frac{\sqrt 2 \sqrt \pi}{2}22π (哭了,手算算不出來,無法驗證)

注意:

本人也是一個初學(xué)者,如有不對的地方望批評指正!

5.其他函數(shù)及參數(shù)的用法

這個涉及的知識就會比較深了,一般只有較高級的運用才會使用的到,一般仿照上面的代碼使用就可以解決絕大多數(shù)問題,純個人想加深理解,選讀 (等我有能力的時候再看下源碼吧!)

傳參:

from sympy import *

x = symbols('x')

fx = 5*x+4

# 使用evalf函數(shù)傳值

y1 = fx.evalf(subs={x:6})

print(y1)

微分:

矩陣:

構(gòu)建矩陣:

from sympy import *

# 一緯矩陣

m1 = Matrix([1, 2, 3])

#二維矩陣

m2 = Matrix([[1, -1], [3, 4], [0, 2]])

print(latex(m1)

print(latex(m2))

輸出:

\left[\begin{matrix}1\\2\\3\end{matrix}\right]

\left[\begin{matrix}1 & -1\\3 & 4\\0 & 2\end{matrix}\right]

完了,有些看不懂,趕緊去查查! 詳情請看《LaTeX之?dāng)?shù)學(xué)公式及符號的語法及表達(dá)》

擴(kuò)展知識:

Eq():創(chuàng)建方程 (例:Eq(x**7+a^2,0) 等式的左邊和右邊

solve:求解方程

部分單詞擴(kuò)展:

integral :積分

indefinite:不定積分 definite:定積分

differential:微分

eigenvalues:特征值

看完上述內(nèi)容,你們對python的sympy大概了解了嗎?如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

本文名稱:pythonsympy的安裝和使用-創(chuàng)新互聯(lián)
URL地址:http://www.muchs.cn/article28/dpgijp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、全網(wǎng)營銷推廣、定制開發(fā)定制網(wǎng)站、動態(tài)網(wǎng)站網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名