當前位置:成語大全網 - 書法字典 - 用python的sympy求解符號方程組後,如何把結果帶入下面的符號表達式?

用python的sympy求解符號方程組後,如何把結果帶入下面的符號表達式?

Sympy是python中非常強大的符號運算庫,可以用書寫習慣表達數學表達式。下面介紹用Sympy求方程數值解的方法。

下面的代碼都在

來自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接口編寫牛頓法。