在Python中进行线性拟合,你可以使用`numpy`和`scipy`库中的函数。下面是一个简单的例子,展示了如何使用`scipy.optimize.curve_fit`函数进行线性拟合:
import numpy as np
import matplotlib.pyplot as plt
from scipy import optimize
定义线性函数模型
def linear_model(x, a, b):
return a * x + b
给定的数据点
x_data = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
y_data = np.array([5, 7, 9, 11, 13, 15, 28.92, 42.81, 56.7, 70.59, 84.47, 98.36, 112.25, 126.14, 140.03])
使用curve_fit进行线性拟合
params, params_covariance = optimize.curve_fit(linear_model, x_data, y_data)
输出拟合参数
print(f"拟合参数:a = {params}, b = {params}")
使用拟合参数计算预测值
y_fit = params * x_data + params
绘制数据点和拟合线
plt.scatter(x_data, y_data, label='数据点')
plt.plot(x_data, y_fit, color='red', label='拟合线')
plt.legend()
plt.show()
这段代码首先定义了一个线性函数模型`linear_model`,然后使用`optimize.curve_fit`函数找到最佳拟合参数`a`和`b`。最后,使用这些参数计算预测值,并绘制数据点和拟合线。
如果你需要更复杂的拟合,比如多项式拟合或其他非线性拟合,`scipy`库也提供了相应的函数。