您現在的位置是:首頁 > 遊戲

最有效的求解方法:三行程式碼搞定任何線性方程

由 讀芯術 發表于 遊戲2023-01-10
簡介透過操縱和利用Python的內建數學求值功能,這三行函式就可以對任何線性方程式(無論其長度或複雜度)進行處理啦

怎麼寫出線性表示的表示式

全文共

1097

字,預計學習時長

5

分鐘

最有效的求解方法:三行程式碼搞定任何線性方程

圖源:unsplash

在三行函式中解決任何線性方程式的技巧,甚至可以在兩行程式碼中重寫,不想了解一下嘛?據筆者所知,這是解決Python中線性方程的最有效方法。

defsolve_linear(equation,var=‘x’):

expression =equation。replace(“=”,“-(”)+“)”

grouped =eval(expression。replace(var,‘1j’))

return -grouped。real/grouped。imag

最有效的求解方法:三行程式碼搞定任何線性方程

這是標準代數過程示例,最後得出答案。

它的原理是怎樣的呢?首先定義一個線性方程式,它必須以純形式可解。這意味著它只能有一個變數,通常寫為x。二元方程需要求解多個線性方程(方程組)。

最有效的求解方法:三行程式碼搞定任何線性方程

線性方程式由三個主要部分組成:常數,變數和乘數。

最有效的求解方法:三行程式碼搞定任何線性方程

不管是幾元方程還是運算的組合(加,減,乘和除),在括號範圍內都是有效的。只要遵守線性方程的這些定義,就可以透過函式解決。

最有效的求解方法:三行程式碼搞定任何線性方程

接下來逐步分解該函式,用以下線性方程式的演示為例。

最有效的求解方法:三行程式碼搞定任何線性方程

將第一行中等式右側的整個表示式移到左側,將等式轉換為要求值的表示式。

expression= equation。replace(“=”,“ - (”)+“)”

最有效的求解方法:三行程式碼搞定任何線性方程

IDE中的演示如下:

最有效的求解方法:三行程式碼搞定任何線性方程

等式中的所有“變數”已移至一側,等號後已無變數,該表示式等於0。

在第二行程式碼中計算新表示式的值,表示為ax + b =0。使用Python的內建複數處理,其中j表示數學常數i =√-1。

grouped= eval(expression。replace(var,‘1j’)

注意,在函式初始化時將var指定為x。

eval函式有一個表示式。透過用已知的j(i)替換未知變數x,Python將兩類表示式元素分開求值,即變數和常量。對錶達式求值時,答案為a * j +b,Python認定這是一個複數。由於使用j代替了x,所以結果是一個簡化且易於求解的線性方程。

最有效的求解方法:三行程式碼搞定任何線性方程

首先,在eval()的演示工作流程中,它可以接收字串中給出的任何Python命令:

最有效的求解方法:三行程式碼搞定任何線性方程

因此,數學表示式與任何Python表示式的處理方式相同。eval()的獨到之處在於無需手動執行繁重的工作,而是利用Python的字串處理。

最有效的求解方法:三行程式碼搞定任何線性方程

Python會認為x實際上是i來自動求值字串,這與下圖中的操作相同:

最有效的求解方法:三行程式碼搞定任何線性方程

最後獲得了簡化形式ax + b = 0。透過標準和簡單的代數運算,發現x等於-b / a,或者透過建立的複數來運算,實數部分的負數(上例中為9)除以虛數乘數(上例中為1)。

最有效的求解方法:三行程式碼搞定任何線性方程

return -grouped。real/grouped。imag

在最後一行程式碼中,透過返回複數實數部分的負數除以虛數部分來簡單地返回此代數步驟。

透過操縱和利用Python的內建數學求值功能,這三行函式就可以對任何線性方程式(無論其長度或複雜度)進行處理啦。

最有效的求解方法:三行程式碼搞定任何線性方程

留言點贊關注

我們一起分享AI學習與發展的乾貨

如轉載,請後臺留言,遵守轉載規範

推薦文章