3 euqations 有兩個未知數有 3 個解決方案:一個解決方案,無限解決方案,無解決方案。您將如何在 Numpy 中撰寫此代碼以獲得解決方案?我用 3 個未知數嘗試了它:
import numpy as np
a = np.array([-9,-8, 14])
A = np.array([[ 1, 2, -2],
[-3,-1, 4],
])
x = np.linalg.solve(A, a)
print(x)
但給出一個錯誤,因為 A 不是正方形。可悲的是,如果我洗掉 a 和 A 的最后一列,雖然我得到了答案,但系統可能仍然沒有解決方案,因為它可能不適合第三個等式。
uj5u.com熱心網友回復:
您可以使用該lstsq方法完成所有這些作業。例如,
a = np.array([-9,-8, 14])
A = np.array([[ 1, 2, -2],
[-3,-1, 4],
])
x,err,rk = np.linalg.lstsq(A.T, a)[:3]
print(x)
print(err)
print(rk)
產生輸出
[-3. 2.]
[9.98402083e-31]
2
從誤差為零(直到數值精度)這一事實,您知道這個解是精確的,也就是說A.T@x應該完全等于a. 因此,該系統至少有一種解決方案。
根據秩為 2(與 中的列數相匹配A.T)這一事實,我們推斷出A.T有一個微不足道的零空間,這意味著任何解決方案都是唯一的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/421563.html
標籤:
上一篇:以編程方式減去SVG路徑
