Python-解三元一次方程


需要解的方程組為:

x + y + z = 26
x - y = 1
2x - y + z = 18

 

下面進入代碼實現:

1.導入數學計算庫 numpy

import numpy as np

 

2.生成未知數系數的三維數組,注意📢位置對應

W = np.array([[1,1,1],[1,-1,0],[2,-1,1]])

 

3.由方程組的值形成數組

result = np.array([26,1,18])

 

4.求得W逆矩陣W_inv

W_inv = np.linalg.inv(W)

 

5.

由方程未知數(x,y,z)形成的數組:vxyz = np.array([x,y,z]),

得到以上方程式的矩陣乘法等式:W * vxyz = result,

讓等式兩邊點乘W的逆矩陣,

得到等式:np.dot(Winv,W*vxyz) = np.dot( W_inv,result),

其中W_inv式W的逆矩陣,np.dot()是矩陣點乘函數,

由於矩陣與其逆矩陣相乘得1,進一步推導出 vxyz = np.dot( W_inv, result),

求得 vxyz 的值,即求得該方程組的解

vxyz = np.dot(W_inv,result)

 

6.打印出求得的系數

v = list(vxyz)
print("得到的值:")
print("x=%d" %v[0])
print("y=%d" %v[1])
print("z=%d" %v[2])

 

7.運行結果

x = 10
y = 9
z = 7

這個程序可以進一步擴展,例如增加未知數的個數,隨着未知數不斷增多,會逐漸感受到程序解方程的效率。

 

結束語:

最近真是

 

                    to be continued...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM