灰色预测gm(1、1)的模型python代码_python 实现 灰色预测 GM(1,1)模型 灰色系统 预测 灰色预测公式推导...
时间: 2023-08-23 10:08:16 浏览: 115
以下是灰色预测GM(1,1)模型的Python代码实现:
```python
import numpy as np
def GM11(x0):
# 累加生成序列
x1 = np.cumsum(x0)
# 得到累加生成序列的一阶差分序列
z1 = (x1[:-1] + x1[1:]) / 2.0
z1 = z1.reshape((-1, 1))
# 构建矩阵B和Y
B = np.zeros((len(z1) - 1, 2))
Y = np.zeros((len(z1) - 1, 1))
for i in range(len(z1) - 1):
B[i][0] = -z1[i]
B[i][1] = 1
Y[i][0] = x0[i + 1]
# 计算GM(1,1)微分方程的参数a和u
a, u = np.dot(np.dot(np.linalg.inv(np.dot(B.T, B)), B.T), Y)
# 对原始序列进行预测
result = np.zeros(len(x0))
result[0] = x0[0]
for i in range(1, len(x0)):
result[i] = (x0[0] - u / a) * (1 - np.exp(a)) * np.exp(-a * (i))
return result
# 测试代码
x0 = np.array([13.0, 15.0, 16.0, 20.0, 22.0, 25.0, 28.0, 30.0])
result = GM11(x0)
print(result)
```
该代码实现了GM(1,1)模型,输入原始序列x0,通过累加生成序列、得到一阶差分序列、构建矩阵B和Y、计算微分方程的参数a和u,最后预测出序列的结果。
需要注意的是,GM(1,1)模型对原始序列的要求比较苛刻,需要满足一定的规律性,否则预测效果会比较差。
阅读全文
相关推荐















