python编写对数曲线拟合的例子
时间: 2023-07-05 10:27:53 浏览: 58
下面是一个用 Python 编写对数曲线拟合的例子:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
# 定义对数函数
def func(x, a, b, c):
return a * np.log(b * x) + c
# 生成数据
xdata = np.array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0])
ydata = np.array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0])
for i in range(len(xdata)):
ydata[i] = np.log(xdata[i]) + 0.1 * np.random.normal(size=1)
# 拟合曲线
popt, pcov = curve_fit(func, xdata, ydata)
# 绘图
plt.plot(xdata, ydata, 'b-', label='data')
plt.plot(xdata, func(xdata, *popt), 'r-', label='fit')
plt.legend()
plt.show()
```
这个例子中,我们先定义了一个对数函数,然后生成了一些随机数据。接着使用 `scipy.optimize.curve_fit` 函数进行对数曲线拟合,得到拟合参数 `popt` 和协方差矩阵 `pcov`。最后利用 `matplotlib` 库绘制数据和拟合曲线的图像。