import numpy as np
定義係數矩陣A和常數項向量b
A = np.array([[4, 2, -1],
[3, -1, 2],
[11, 3, 0]])
b = np.array([2, 10, 8])
使用numpy的lstsq求解最小二乘解
x, residuals, rank, s = np.linalg.lstsq(A, b, rcond=None)
print("最小二乘解為:")
print(x)
列印殘差和矩陣A的秩
print("殘差為:", residuals)
print("矩陣A的秩為:", rank)
print("學號:3004")
print("\n")
import numpy as np
定義係數矩陣A和常數項向量b
A = np.array([[2, 3, 1],
[1, -2, 4],
[3, 8, -2],
[4, -1, 9]])
b = np.array([4, -5, 13, -6])
使用numpy的lstsq函式求解最小二乘解
對於這個特定的問題,由於方程數和未知數數量相同,且沒有矛盾,lstsq將給出唯一解
x, residuals, rank, s = np.linalg.lstsq(A, b, rcond=None)
輸出解
print("解 x:", x)
驗證解是否正確(可選)
print("驗證結果:", np.dot(A, x))
檢查是否精確等於b(對於精確解,這應該非常接近)
print("與b的誤差:", np.linalg.norm(np.dot(A, x) - b))
計算係數矩陣的秩(可選,以確認方程組是否有唯一解)
print("係數矩陣的秩:", np.linalg.matrix_rank(A))
由於秩等於未知數數量,且沒有矛盾,我們可以確信有一個唯一解
print("學號:3025")