习题2.7(2)

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

结果如下

posted @ 2024-10-15 19:51  方~~  阅读(10)  评论(0)    收藏  举报