Python拟合代码
时间: 2023-07-10 20:12:42 浏览: 90
Python 普通最小二乘法(OLS)进行多项式拟合的方法
Python中常用的拟合方法有最小二乘法拟合和曲线拟合。其中最小二乘法拟合可以使用numpy库中的polyfit函数,曲线拟合可以使用scipy库中的curve_fit函数。以下是拟合代码的示例:
最小二乘法拟合代码:
```python
import numpy as np
import matplotlib.pyplot as plt
#生成数据
x_data = np.array([1, 2, 3, 4, 5])
y_data = np.array([2.7, 3.9, 5.1, 6.2, 7.8])
#进行最小二乘法拟合
fit = np.polyfit(x_data, y_data, 1) #一次函数拟合,第一个参数为自变量,第二个参数为因变量,第三个参数为拟合的次数
fit_fn = np.poly1d(fit) #生成拟合函数
#输出拟合参数
print(fit)
#绘制拟合曲线和原始数据
plt.plot(x_data, y_data, 'bo', label='data')
plt.plot(x_data, fit_fn(x_data), 'r-', label='fit')
plt.legend()
plt.show()
```
曲线拟合代码:
```python
import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
#定义曲线函数(这里以一次函数为例)
def func(x, a, b):
return a * x + b
#生成数据
x_data = np.linspace(-5, 5, 50)
y_data = 2 * x_data + 1 + np.random.normal(size=50)
#调用curve_fit进行拟合
popt, pcov = curve_fit(func, x_data, y_data)
#输出拟合参数
print(popt)
#绘制拟合曲线和原始数据
plt.plot(x_data, y_data, 'b-', label='data')
plt.plot(x_data, func(x_data, *popt), 'r-', label='fit')
plt.legend()
plt.show()
```
在上述代码中,最小二乘法拟合使用了numpy库中的polyfit函数,曲线拟合使用了scipy库中的curve_fit函数。两种方法都可以自动拟合出最佳的拟合参数,并且绘制出拟合曲线和原始数据的图像。具体的曲线函数和数据可以根据需要进行修改。
阅读全文