import numpy as np
import matplotlib.pyplot as plt# 构造增广矩阵A = np.array([[1, 1, 1, 6], [1, 3, 9, 5], [1, 7, 49, 2]],dtype=‘float64’)# 列主元消去法求解for i in range(A.shape[0] - 1): # 选取列中绝对值最大的元素所在的行 max_row = i for j in range(i + 1, A.shape[0]): if abs(A[j, i]) > abs(A[max_row, i]): max_row = j # 将选中的行与当前行交换 if max_row != i: A[[i, max_row]] = A[[max_row, i]] # 消元 for j in range(i + 1, A.shape[0]): factor = A[j, i] / A[i, i] A[j] -= factor * A[i]# 回带求解未知数c = A[2, 3] / A[2, 2]b = (A[1, 3] - A[1, 2]*c) / A[1, 1]a = (A[0, 3] - A[0, 1]*b - A[0, 2]*c) / A[0, 0]# 输出抛物线方程print(f"The projectile trajectory equation is y={a}+{b}x+{c}x^2")# 绘图x = np.linspace(0, 8, 101)y = a + b * x + c * x**2plt.plot(x, y, label=“Parabola”, color=“blue”)plt.scatter([1, 3, 7], [6, 5, 2], label=“Data Point”, color=“red”)plt.legend()plt.show()
高斯列主元消元发解线性方程组
最新推荐文章于 2024-07-12 19:30:19 发布