1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 多变量预测建模matlab 多变量灰色预测模型算法的MATLAB实现

多变量预测建模matlab 多变量灰色预测模型算法的MATLAB实现

时间:2022-12-17 01:33:56

相关推荐

多变量预测建模matlab 多变量灰色预测模型算法的MATLAB实现

摘要:文章讨论了多变量灰色预测模型的建模方法及其算法思想,得到了多变量灰色预测模型的检验方

法。为了简化模型求解,给出多变量灰色预测模型的MATLAB程序实现。通过应用实例说明算法程序的应用和效果。

关键词:多变量;灰色预测模型;算法;MATLAB

引言

自从邓聚龙教授提出灰色系统理论以来,灰色预测模型在许多领域得到了广泛应用。许多的研究工作者对于动态微分方程模型GM(1,1)进行了广泛的研究,为了提高模型精度,提出了一些改进的 GM(1,1)模型。近年来,许多文献从不同的角度给出了非等间距灰色预测模型的改进’+,-),然而实际的社会、经济系统中往往包含多个变量,各变量相互影响、相互作用。为了解决多变量等间距原始数据的灰色预测问题,文献分别讨论了多量等间距和非等间距预测模型的建模方法和应用。多量灰色模型的参数估计、模型预测以及模型的精度检验都需要一些比较复杂的计算。本文的目的是给出多变量灰色预测模型的检验和算法的MATLAB程序,并通过一个应用实例加以说明

1、多变量灰色预测模型

假定非负原始数据向量序列为},其一次累加生成向量序列为},其中,,(k=1,2,…,n),n为观测数据的个数,这里(k)是维列向量。如果记

A=B=

则多变量灰色模型9.,/)的动态微分方程组可表示为

=A(1)

如果规定初始条件为=,则动态微分方程组模型的连续时间响应函数为。

为了得到模型参数的估计值,需要将上述微分方程组转化为离散形式,从而可得到参数的估计值,如果记D=,如果可逆,则利用最小二乘法可以得到D的估计值为

=(2)

其中

L=

Y=

根据(2)式可得参数A和B的辩识值。有了参数估计就可以得到时间响应函数为

(3)

利用(3)式还原成原始数据序列有

,k=2,3,…

下面讨论模型的检验,设模型的残差为,残差的均值和方差分别为

=,

=

同样,可得的均值和方差和,称C=为均方差比值,对于给定的当C

2、多变量灰色预测模型算法的MATLAB实现

1、多变量灰色预测模型的算法步骤

根据多变量灰色预测模型的建模方法和机理,下面

给出多变量灰色预测模型的算法步骤:

(i)输入原始序列X0,对其进行累加生成序列X1。

(ii)计算数据矩阵L及Y。

(iii)根据(2)式计算模型参数的估计值。

(iv)利用(3)式和(4)式,计算模型的拟合值或预测值。

2、多变量灰色模型的MATLAB程序实现

下面给出多变量灰色预测模型的MATLAB程序。

clear all

clc

%输入待预测时刻k及原始序列X0

k=23;%k取23,24,25,26

X0=[17.34,27.12,14.88,20.54,21.03,27.25,19.25,21.37,23.32,27.19,19.52,21.16,14.92,71.64,21.25,42.97,32.96,43.93,21.45,47.86,33.59,47.47];

[n,m]=size(X0);

for j=1:m c=0;

for i=1:n

c=X0(i,j)+c;

X1(i,j)=c;

end

end

%计算数据矩阵L

for j=1:m

for i=1:n-1

l(i,j)=(X1(i,j)+X1(i+1,j))/2;

end

end

L=[1 ones(n-1,1)];

%计算Y及参数估计值

for j=i:m

Y(1:n-1,j)=X0(2:n,j);

a(:,j)=inv(L'*L)*L'*Y(1:n-1,j);

end

a=a';

A=a(1:end,1:end-1);

B=a(1:end,end);

%计算模型的拟合值或预测值

S=X1(1,1:end);

ifk==1

Z=S'

elseifk>1

Z=expm2(A*(k-1))*S'+inv(A)*(expm2(A*(k-1)-eye(size(expm2(expm2(A*(k-1)))))*B-(expm2(A*(k-2))*S'+inv(A)*(expm2(A*(k-2)-eye(size(expm2(A*(k-2)))))*B)

else disp('输入错误!k不得小于1')

end

3、结束语

MATLAB语言具有良好的运行环境、强大的函数资源,其编程效率远远高于其他高级语言。多变量灰色预测模型广泛的应用于许多领域。但该模型参数估计以及预测都需要经过比较复杂的计算,本文的多变量灰色预测模型的MATLAB程序能够方便的解决模型的计算问题。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。