首页
/
每日頭條
/
科技
/
非線性方程解法
非線性方程解法
更新时间:2024-04-29 06:45:07

全文共1097字,預計學習時長5分鐘

非線性方程解法(最有效的求解方法)1

圖源:unsplash

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

defsolve_linear(equation,var='x'): expression =equation.replace("=","-(") ")" grouped =eval(expression.replace(var,'1j')) return -grouped.real/grouped.imag

非線性方程解法(最有效的求解方法)2

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

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

非線性方程解法(最有效的求解方法)3

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

非線性方程解法(最有效的求解方法)4

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

非線性方程解法(最有效的求解方法)5

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

非線性方程解法(最有效的求解方法)6

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

expression= equation.replace("="," - (") ")"

非線性方程解法(最有效的求解方法)7

IDE中的演示如下:

非線性方程解法(最有效的求解方法)8

等式中的所有“變量”已移至一側,等号後已無變量,該表達式等于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,所以結果是一個簡化且易于求解的線性方程。

非線性方程解法(最有效的求解方法)9

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

非線性方程解法(最有效的求解方法)10

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

非線性方程解法(最有效的求解方法)11

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

非線性方程解法(最有效的求解方法)12

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

非線性方程解法(最有效的求解方法)13

return -grouped.real/grouped.imag

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

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

非線性方程解法(最有效的求解方法)14

留言點贊關注

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

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

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
最好用的拼圖軟件
最好用的拼圖軟件
上次穩哥出了一期修圖軟件大集合,結果一堆“僞粉”得寸進尺地評論,怎麼沒有拼圖軟件呢?當然,這麼寵粉絲的穩哥,有求必應,馬上嘔心瀝血的推出最全拼圖軟件大集合!迅速收藏!美圖秀秀拼圖師祖--美圖秀秀,不用多說,無論P圖還是拼圖,你都值得擁有。2...
2024-04-29
魯大師跑分多少才算主流顯卡
魯大師跑分多少才算主流顯卡
對于PC玩家來說,電腦的顯卡絕大多數情況決定了整機的性能情況,一塊性能強悍的顯卡可以讓你在4K分辨率下暢遊刺客信條奧德賽中的希臘風光,而一塊性能普普通通的顯卡可能就隻能在1080P分辨率下玩玩要求不高的RPG網遊。魯大師近日在微博上公布了去...
2024-04-29
三星tizen工程機
三星tizen工程機
早幾年前,移動操作系統市場可以稱得上是“群雄逐鹿”,除了iOS和Android,還有黑莓、三星Tizen、微軟WindowsPhone/Mobile等,然而如今的格局想必大家都看在眼裡,強如華為鴻蒙,在海外市場仍幾乎是空白的存在。據媒體報道...
2024-04-29
怎樣在excel打鈎
怎樣在excel打鈎
在日常工作中,我們編輯的excel電子表格中經常需要輸入對鈎,如下圖。那麼今天就來與大家分享在excel中輸入對鈎“√”的幾種方法。excel中輸入對鈎“√”方法1:利用中文輸入法輸入“√”。選中單元格——>輸入拼音“dui”,就能看到輸入...
2024-04-29
數據線兩邊怎麼用線纏繞
數據線兩邊怎麼用線纏繞
數據線兩邊怎麼用線纏繞?首先我們準備好自己喜歡顔色的繩子,下面我們就來聊聊關于數據線兩邊怎麼用線纏繞?接下來我們就一起去了解一下吧!數據線兩邊怎麼用線纏繞首先我們準備好自己喜歡顔色的繩子。接着将我們的數據線一頭股固定住。我們将一根繩子對折放...
2024-04-29
Copyright 2023-2024 - www.tftnews.com All Rights Reserved