下面的代碼都在
來自sympy import *
init _ printing(use _ unicode = true)#根據書寫習慣輸出。
跑下。
數學表達式的輸入
首先聲明符號:
x =符號(' x ')
即計算機中的變量X代表數學表達式中的X。在以下輸出中,所有x都將顯示為x。如果x=symbols('x0 '),則輸入等式中的所有x將在輸出中表示為x0。
如果妳需要希臘字母,
l,r =符號(“λρ”)
l和r將分別用λ和ρ表示。您可以在壹個表達式中同時聲明多個符號。
或者使用var()聲明:
var('x ')
相當於上面的。
聲明表達式:
f = (5/x)*(表達式(x)-1)-表達式(x)
這時候如果輸出f,可以看到書寫習慣的表達。因為表達式通常不顯示在markdown下,所以這裏不放示例。註意,f的類型是類“sympy.core.add.Add”
求f(x)=0的數值解
因為有些函數有多個零,所以Sympy中的解的輸出是壹個列表。使用solve(表達式,獨立變量符號)解析求解方程:
s,= solve(f,x)
這裏,根據上面F的賦值,我們得到S是
蘭伯特(-5e**-5)+5
它由壹個特殊的函數來表示。
我們需要這個結果的壹個數值近似值,然後輸出它。
s.evalf()
獲取輸出
4.96511423174428
是方程f(x)=0的數值解。
給定自變量x的值時求函數f(x)的值|將表達式轉換成函數。
f.evalf(subs = {x:4.96})
得到f的值(4.96)
0.141885450782171
如果需要以計算機函數的形式定義函數f(x),可以用lambdify()進行變換:
f_func = lambdify(x,f)
然後妳可以打電話。
f_func(4.96)
輸出
0.141885450782
這種方法可以用來測試方程的數值算法,比如用sympy接口編寫牛頓法。