请给我关于函数拟合的相关代码
时间: 2023-12-09 20:03:50 浏览: 41
以下是 Python 中使用 numpy 和 scipy 库进行多项式函数拟合和非线性函数拟合的示例代码:
1. 多项式拟合
```python
import numpy as np
from scipy.optimize import curve_fit
# 定义多项式函数
def poly_func(x, a, b, c):
return a * x ** 2 + b * x + c
# 生成随机数据
x_data = np.linspace(-5, 5, 50)
y_data = 2 * x_data ** 2 - 3 * x_data + 1 + np.random.randn(len(x_data)) * 0.5
# 进行拟合
popt, pcov = curve_fit(poly_func, x_data, y_data)
# 输出拟合结果
print('a =', popt[0], ', b =', popt[1], ', c =', popt[2])
```
2. 非线性拟合
```python
import numpy as np
from scipy.optimize import curve_fit
# 定义非线性函数
def nonlinear_func(x, a, b, c):
return a * np.sin(b * x) + c
# 生成随机数据
x_data = np.linspace(0, 10, 100)
y_data = 2 * np.sin(1.5 * x_data) + 0.5 * np.random.randn(len(x_data))
# 进行拟合
popt, pcov = curve_fit(nonlinear_func, x_data, y_data, p0=[1, 1, 1])
# 输出拟合结果
print('a =', popt[0], ', b =', popt[1], ', c =', popt[2])
```
在上述代码中,curve_fit() 函数是 scipy 库提供的拟合函数,其第一个参数为待拟合函数,第二个参数为输入数据,第三个参数为初始参数值。函数返回值是拟合函数的参数和协方差矩阵。
阅读全文