2.7(學號:3025)

唐锦珅發表於2024-10-27

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")

相關文章