最小二乘法代数求解 def least_squares_algebraic(x: np.ndarray, y: np.ndarray): """最小二乘法代数求解""" n = x.shape[0] w1 = (n * sum(x * y) - sum(x) * sum(y)) / (n * sum(x * x) - sum(x) * sum(x)) w0 = (sum(x * x) * sum(y) - sum(x) * sum(x * y)) / ( n * sum(x * x) - sum(x) * sum(x) ) return w0, w1 """绘图""" w0 = least_squares_algebraic(x, y)[0] w1 = least_squares_algebraic(x, y)[1] plt.scatter(x, y) plt.plot(x_temp, x_temp * w1 + w0, "r") 最小二乘法矩阵求解 def least_squares_matrix(x: np.matrix, y: np.matrix): """最小二乘法矩阵求解""" w = (x.T * x).I * x.T * y return w """使用np.hstack方法水平对原 x 数据添加截距项系数 1""" x_matrix = np.