2.7(学号:3025)
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")