用python写 代码一元非线形回归
时间: 2024-03-09 14:24:08 浏览: 54
非线性回归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.exp(b * x) + c
# 生成随机数据
x = np.linspace(0, 4, 50)
y = func(x, 2.5, 1.3, 0.5)
y_noise = 0.2 * np.random.normal(size=y.size)
y = y + y_noise
# 用scipy.optimize.curve_fit拟合数据
popt, pcov = curve_fit(func, x, y)
# 绘制原始数据和拟合曲线
plt.figure()
plt.plot(x, y, 'bo', label='原始数据')
plt.plot(x, func(x, *popt), 'r-', label='拟合曲线')
plt.legend(loc='best')
plt.show()
```
在上面的代码中,首先定义了一个非线性函数`func`,接着生成了一些随机数据,并添加了一些噪声。然后使用`scipy.optimize.curve_fit`函数进行拟合,得到了拟合参数`popt`和协方差矩阵`pcov`。最后绘制了原始数据和拟合曲线。
阅读全文