scipy 拟合多变量曲面
时间: 2023-09-14 15:05:10 浏览: 190
可以使用 `scipy.optimize.curve_fit` 函数来拟合多变量曲面。
首先,我们需要准备数据。假设我们有两个自变量 `x1` 和 `x2`,以及一个因变量 `y`。我们可以将自变量和因变量数据存储在 NumPy 数组中,如下所示:
```python
import numpy as np
# 自变量数据
x1 = np.array([1, 2, 3, 4, 5])
x2 = np.array([1, 2, 3, 4, 5])
# 因变量数据
y = np.array([2.3, 4.5, 6.7, 8.9, 11.1])
```
接下来,我们需要定义一个函数来拟合多变量曲面。例如,我们可以使用以下函数拟合一个二次曲面:
```python
def func(x, a, b, c, d, e, f):
x1, x2 = x
return a + b*x1 + c*x2 + d*x1**2 + e*x2**2 + f*x1*x2
```
这个函数的参数包括 `a`、`b`、`c`、`d`、`e` 和 `f`。我们可以根据实际情况调整这些参数。
现在,我们可以使用 `curve_fit` 函数来拟合数据。首先,我们需要将自变量和因变量数据传递给该函数:
```python
from scipy.optimize import curve_fit
popt, pcov = curve_fit(func, (x1, x2), y)
```
`curve_fit` 函数将返回一个元组,其中第一个元素是拟合函数的参数,第二个元素是参数的协方差矩阵。
最后,我们可以使用拟合函数和参数来预测新的因变量值。例如,我们可以使用以下代码来预测 `(x1, x2) = (6, 6)` 时的因变量值:
```python
new_x = (6, 6)
new_y = func(new_x, *popt)
print(new_y)
```
阅读全文