Python 曲线拟合
时间: 2023-11-05 20:14:34 浏览: 65
在 Python 中,有许多库可以用来进行曲线拟合。其中比较常用的是 NumPy 和 SciPy 库。下面介绍一种基于 SciPy 库的曲线拟合方法。
首先,需要导入 numpy 和 scipy 库:
```python
import numpy as np
from scipy.optimize import curve_fit
```
然后,定义一个函数来表示要拟合的曲线。例如,假设要拟合的曲线是一个二次函数:
```python
def func(x, a, b, c):
return a * x**2 + b * x + c
```
其中,x 是自变量,a、b、c 是要拟合的参数。
接下来,准备数据。假设有一组 x 和 y 的数据:
```python
x_data = np.array([0, 1, 2, 3, 4, 5])
y_data = np.array([1.1, 2.3, 3.5, 4.7, 5.9, 7.1])
```
然后,调用 curve_fit 函数进行曲线拟合:
```python
popt, pcov = curve_fit(func, x_data, y_data)
```
其中,popt 是拟合出的参数,pcov 是协方差矩阵。
最后,可以用拟合出的参数来绘制拟合曲线:
```python
import matplotlib.pyplot as plt
x_fit = np.linspace(0, 5, 100)
y_fit = func(x_fit, *popt)
plt.plot(x_fit, y_fit, 'r-', label='fit')
plt.scatter(x_data, y_data, label='data')
plt.legend()
plt.show()
```
这样就完成了曲线拟合,并且将拟合曲线和原始数据绘制在同一张图上。
阅读全文