gm11的matlab代码(gmres matlab)
admin 发布:2022-12-19 20:45 166
本篇文章给大家谈谈gm11的matlab代码,以及gmres matlab对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
灰色系统预测GM(1,1)模型的MATLAB源代码
function GM1_1(X0)
%format long ;
[m,n]=size(X0);
X1=cumsum(X0); %累加
X2=[];
for i=1:n-1
X2(i,:)=X1(i)+X1(i+1);
end
B=-0.5.*X2 ;
t=ones(n-1,1);
B=[B,t] ; % 求B矩阵
YN=X0(2:end) ;
P_t=YN./X1(1:(length(X0)-1)) %对原始数据序列X0进行准光滑性检验,
%序列x0的光滑比P(t)=X0(t)/X1(t-1)
A=inv(B.'*B)*B.'*YN.' ;
a=A(1)
u=A(2)
c=u/a ;
b=X0(1)-c ;
X=[num2str(b),'exp','(',num2str(-a),'k',')',num2str(c)];
strcat('X(k+1)=',X)
%syms k;
for t=1:length(X0)
k(1,t)=t-1;
end
k
Y_k_1=b*exp(-a*k)+c;
for j=1:length(k)-1
Y(1,j)=Y_k_1(j+1)-Y_k_1(j);
end
XY=[Y_k_1(1),Y] %预测值
CA=abs(XY-X0) ; %残差数列
Theta=CA %残差检验 绝对误差序列
XD_Theta= CA ./ X0 %残差检验 相对误差序列
AV=mean(CA); % 残差数列平均值
R_k=(min(Theta)+0.5*max(Theta))./(Theta+0.5*max(Theta)) ;% P=0.5
R=sum(R_k)/length(R_k) %关联度
Temp0=(CA-AV).^2 ;
Temp1=sum(Temp0)/length(CA);
S2=sqrt(Temp1) ; %绝对误差序列的标准差
%----------
AV_0=mean(X0); % 原始序列平均值
Temp_0=(X0-AV_0).^2 ;
Temp_1=sum(Temp_0)/length(CA);
S1=sqrt(Temp_1) ; %原始序列的标准差
TempC=S2/S1*100; %方差比
C=strcat(num2str(TempC),'%') %后验差检验 %方差比
%----------
SS=0.675*S1 ;
Delta=abs(CA-AV) ;
TempN=find(Delta=SS);
N1=length(TempN);
N2=length(CA);
TempP=N1/N2*100;
P=strcat(num2str(TempP),'%') %后验差检验 %计算小误差概率
调用例子:
X0=[2.874,3.278,3.337,3.39,3.679];GM1_1(X0)
matlab中灰色模型新陈代谢模型的代码
result(i) = gm11(x0,1); % 将预测一期的结果保存到result中,这段代码总是有错误提示。其原因是题主缺这个 gm11() 灰色模型自定义函数。解决方法,下载或求助这个函数文件。
MATLAB程序问题
提示说,你的第13行有问题。你的第13行里“B(i,1)=-0.5*(X1(i)+X1(i+1));%计算B,Yn”,矩阵B在之前没有初始化就拿来直接用了。
灰色系统预测GM(1,1)模型的MATLAB详细源代码
%%%%%%%%%%%%%%%%把下面函数保存为gmcal.m文件%%%%%%%%%%%
function gmcal=gm1(x)
sizexd2 = size(x,2);
%求数组长度
k=0;
for y1=x
k=k+1;
if k1
x1(k)=x1(k-1)+x(k);
%累加生成
z1(k-1)=-0.5*(x1(k)+x1(k-1));
%z1维数减1,用于计算B
yn1(k-1)=x(k);
else
x1(k)=x(k);
end
end
%x1,z1,k,yn1
sizez1=size(z1,2);
%size(yn1);
z2 = z1';
z3 = ones(1,sizez1)';
YN = yn1'; %转置
%YN
B=[z2 z3];
au0=inv(B'*B)*B'*YN;
au = au0';
%B,au0,au
afor = au(1);
ufor = au(2);
ua = au(2)./au(1);
%afor,ufor,ua
%输出预测的 a u 和 u/a的值
constant1 = x(1)-ua;
afor1 = -afor;
x1t1 = 'x1(t+1)';
estr = 'exp';
tstr = 't';
leftbra = '(';
rightbra = ')';
%constant1,afor1,x1t1,estr,tstr,leftbra,rightbra
strcat(x1t1,'=',num2str(constant1),estr,leftbra,num2str(afor1),tstr,rightbra,'+',leftbra,num2str(ua),rightbra)
%输出时间响应方程,也就是最终要求的灰色模型
%%%%%%%%%%%%%%%%%%%%%在workspace里输入%%%%%%%%%%%%
x =[5999,5903,5848,5700,7884];gm1(x)
%其中5999,5903,5848,5700,7884可以换成已知的历史数据,无论几个都可以。
gm11的matlab代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于gmres matlab、gm11的matlab代码的信息别忘了在本站进行查找喔。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 05-02包含跟屏悬浮客服代码的词条[20240502更新]
- 05-02修饰网页代码(网页设计修改)[20240502更新]
- 05-02音乐播放器网页代码(HTML音乐播放器代码)[20240502更新]
- 05-02谷歌离线地图apicss代码(谷歌地图接入)[20240502更新]
- 05-02html5导航条代码生成器(html导航条制作)[20240502更新]
- 05-02functionmatlab代码(matlab出现function)[20240502更新]
- 05-02js变圆代码(图片变圆的代码)[20240502更新]
- 05-02关于类似于漂流瓶html代码的信息[20240502更新]
- 05-01jqtab代码的简单介绍[20240501更新]
- 05-01网页的背景图片代码(网页背景图片代码怎么写)[20240501更新]
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接