python解矩阵方程_用Python代写的Numpy求解线性方程组
在本文中,您將看到如何使用Python的Numpy庫解決線性方程組。
什么是線性方程組?
維基百科將線性方程組定義為:
在數學中,線性方程組(或線性系統)是兩個或多個涉及同一組變量的線性方程的集合。
解決線性方程組的最終目標是找到未知變量的值。這是帶有兩個未知變量的線性方程組的示例,x并且y:
等式1:
4x + 3y = 20
-5x + 9y = 26
為了解決上述線性方程組,我們需要找到x和y變量的值。解決此類系統的方法有多種,例如消除變量,克萊默規則,行縮減技術和矩陣解決方案。在本文中,我們將介紹矩陣解決方案。
在矩陣解中,要求解的線性方程組以矩陣形式表示AX = B。例如,我們可以用矩陣形式表示等式1,如下所示:
A = [[ 4 3]
[-5 9]]
X = [[x]
[y]]
B = [[20]
[26]]
要查找的值x和y變量方程1,我們需要找到在矩陣中的值X。為此,我們可以采用矩陣逆的點積A和矩陣B,如下所示:
X = inverse(A).B
用numpy求解線性方程組
要求解線性方程組,我們需要執行兩個操作:矩陣求逆和矩陣點積。Python的Numpy庫支持這兩種操作。如果尚未安裝Numpy庫,則可以使用以下pip命令:
$ pip install numpy
現在讓我們看看如何使用Numpy庫解決線性方程組。
使用inv()和dot()方法
首先,我們將找到A在上一節中定義的矩陣逆。
首先讓我們A在Python中創建矩陣。要創建矩陣,array可以使用Numpy模塊的方法。矩陣可以視為列表列表,其中每個列表代表一行。
在以下腳本中,我們創建一個名為的列表m_list,其中進一步包含兩個列表:[4,3]和[-5,9]。這些列表是矩陣中的兩行A。要A使用Numpy?創建矩陣,請將m_list傳遞給array方法,如下所示:
import numpy as np
m_list = [[4, 3], [-5, 9]]
A = np.array(m_list)
為了找到矩陣的逆,將矩陣傳遞給linalg.inv()Numpy模塊的方法:
inv_A = np.linalg.inv(A)
print(inv_A)
下一步是找出矩陣的逆矩陣之間的點積A和矩陣B。重要的是要提一下,只有在矩陣的內部尺寸相等的情況下,才可能在矩陣之間獲得矩陣點積,即,左矩陣的列數必須與右矩陣的行數匹配。
要使用Numpy庫查找點積,請使用該linalg.dot()函數。
B = np.array([20, 26])
X = np.linalg.inv(A).dot(B)
print(X)
輸出:
[2. 4.]
這里,2和4是未知的各個值x和y在等式1。驗證一下,如果在方程式中插入2未知數x并4替換未知數,您將看到結果為20。y4x + 3y
現在,讓我們解決由三個線性方程組成的系統,如下所示:
4x + 3y + 2z = 25
-2x + 2y + 3z = -10
3x -5y + 2z = -4
可以使用Numpy庫按以下方式求解以上方程式:
公式2:
print(X)
在上面的腳本中,linalg.inv()和linalg.dot()方法鏈接在一起。該變量X包含方程式2的解,并打印如下:
[ 5. 3. -2.]
未知數x,,y和的值分別是5、3?z和-2。您可以將這些值代入公式2并驗證其正確性。
使用solve()方法
在前兩個示例中,我們使用linalg.inv()和linalg.dot()方法來找到方程組的解。但是,Numpy庫包含該linalg.solve()方法,該方法可用于直接找到線性方程組的解:
print(X2)
輸出:
[ 5. 3. -2.]
您可以看到輸出與以前相同。
一個真實的例子
讓我們看看如何使用線性方程組來解決實際問題。
假設有一個賣水果的人一天就賣出了20個芒果和10個橘子,總價為350元。第二天,他以500元的價格出售了17個芒果和22個橙子。如果這兩天的水果價格都保持不變,那么一個芒果和一個橙子的價格是多少?
使用兩個線性方程組可以輕松解決此問題。
假設一個芒果x的價格為,一個橙子的價格為y。上面的問題可以這樣轉換:
20x + 10y = 350
17x + 22y = 500
上面的方程組的解決方案如下所示:
X = np.linalg.solve(A,B)
print(X)
這是輸出:
[10. 15.]
輸出顯示,一個芒果的價格為10元,一個橙子的價格為15元。
結論
本文介紹了如何使用Python的Numpy庫解決線性方程組。您可以鏈式使用linalg.inv()和linalg.dot()方法來求解線性方程組,也可以簡單地使用該solve()方法。該solve()方法是首選方法。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的python解矩阵方程_用Python代写的Numpy求解线性方程组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python字符串无效的原因_pytho
- 下一篇: 安装程序无法创建新的系统分区也无法定位现