用python写GM(2,1)代码
时间: 2024-05-13 21:14:32 浏览: 120
GM(1,1)python实现
GM(2,1)模型是一种灰色预测模型,可以用于时间序列预测。下面是一个用Python实现GM(2,1)模型的代码示例:
```python
import numpy as np
def GM_21(data):
# 累加生成序列
cum_data = np.cumsum(data)
# 紧邻均值生成序列
mean_data = (cum_data[:-1] + cum_data[1:]) / 2
# 级比生成序列
b = np.array([-mean_data, np.ones_like(mean_data)]).T
Yn = data[1:].reshape((-1, 1))
a = np.matmul(np.matmul(np.linalg.inv(np.matmul(b.T, b)), b.T), Yn)
# 模型预测
Yn_pred = np.zeros_like(data)
Yn_pred[0] = data[0]
for i in range(1, len(data)):
Yn_pred[i] = (data[0] - a[1] / a[0]) * np.exp(-a[0] * i) + a[1] / a[0]
return Yn_pred
```
这个函数接受一个一维数组 `data` 作为输入,并返回一个一维数组,表示模型预测的结果。可以将这个函数用于时间序列预测等应用中。
阅读全文