日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python解矩阵方程_用Python代写的Numpy求解线性方程组

發布時間:2025/4/5 python 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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求解线性方程组的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。