curve_fit举例
时间: 2023-06-22 11:44:28 浏览: 91
下面是一个简单的使用`curve_fit`进行曲线拟合的例子:
```python
import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
# 定义待拟合的非线性函数
def func(x, a, b, c):
return a * np.exp(-b * x) + c
# 生成观测数据
x_data = np.linspace(0, 4, 50)
y_data = func(x_data, 2.5, 1.3, 0.5) + 0.2 * np.random.normal(size=len(x_data))
# 使用curve_fit进行拟合
init_params = [1, 1, 1] # 初始参数值
est_params, cov = curve_fit(func, x_data, y_data, p0=init_params)
# 输出最优参数及其协方差矩阵
print("Estimated parameters:", est_params)
print("Covariance matrix:", cov)
# 绘制观测数据及拟合结果
plt.plot(x_data, y_data, 'bo', label='Observations')
plt.plot(x_data, func(x_data, *est_params), 'r-', label='Fitted curve')
plt.legend()
plt.show()
```
在上面的例子中,我们定义了一个非线性函数`func`,然后生成了一组观测数据`x_data`和`y_data`。接着,我们使用`curve_fit`进行拟合,将初始参数值`init_params`设为[1, 1, 1],然后将观测数据`x_data`和`y_data`作为输入进行拟合。最终,我们输出了最优参数及其协方差矩阵,并绘制了观测数据及拟合结果的图形。
阅读全文