function GM1=fungry1(x0)
T=input('T=');
x1=zeros(1,length(x0));B=zeros(length(x0)-1,2);
yn=zeros(length(x0)-1,1);Hatx0=zeros(1,length(x0)+T);
Hatx00=zeros(1,length(x0));Hatx1=zeros(1,length(x0)+T);
epsilon=zeros(length(x0),1);omega=zeros(length(x0),1);
for i=1:length(x0)
for j=1:i
x1(i)=x1(i)+x0(j);
end
end
for i=1:length(x0)-1
B(i,1)=(-1/2)*(x1(i)+x1(i+1));
B(i,2)=1;
yn(i)=x0(i+1);
end
HatA=(inv(B'*B))*B'*yn
for k=1:length(x0)+T
Hatx1(k)=(x0(1)-HatA(2)/HatA(1))*exp(-HatA(1)*(k-1))+HatA(2)/HatA(1);
end
Hatx0(1)=Hatx1(1);
for k=2:length(x0)+T
Hatx0(k)=Hatx1(k)-Hatx1(k-1);
end
for i=1:length(x0)
epsilon(i)=x0(i)-Hatx0(i);
omega(i)=(epsilon(i)/x0(i))*100;
end
x0;
Hatx0;
epsilon;
omega;
c=std(epsilon)/std(x0),p=0;
for i=1:length(x0)
if abs(epsilon(i)-mean(epsilon))<0.6745*std(x0)
p=p+1;
end
end
p=p/length(x0)
if p>0.95 & c<0.35
disp('The model is good,and the forecast is:'),
disp(Hatx0(length(x0)+T))
elseif p>0.85 & c<0.5
disp('The model is eligibility,and the forecast is:'),
disp(Hatx0(length(x0)+T))
elseif p>0.70 & c<0.65
disp('The model is not good,and the forecast is:'),
disp(Hatx0(length(x0)+T))
else p<=0.70 & c>0.65
disp('The model is bad,and try again')
end
for i=1:length(x0)
Hatx00(i)=Hatx0(i);
end
z=1:length(x0);
plot(z,x0,'-',z,Hatx00,':')
text(2,x0(2),'History data:real line')
text(length(x0)/2,Hatx00(length(x0))/2,'Simulation data:broken line')
gjj.zip_GM(1_1)
版权申诉
5星 · 超过95%的资源 56 浏览量
2022-09-19
16:18:27
上传
评论
收藏 3KB ZIP 举报
alvarocfc
- 粉丝: 111
- 资源: 1万+
最新资源
- ASCII American Standard Code for Information Interchange
- 一个chm格式的 SQL 函数手册-SQL语言手册文档
- 计算当前月份的天数和剩余天数
- 基于ARM的指令调度和延迟分支
- 基于Vue和TypeScript的极简聊天应用设计源码 - HasChat
- 基于Vue2全家桶和Zcool数据的图片收集网站设计源码 - cool-picture
- 基于C和C++的二维绘制工具设计源码 - DrawPro
- Object.defineProperty 的 IE 补丁object-defineproperty-ie-master.zip
- 整卷预览.mhtml
- MySQL是一种广泛使用的开源关系型数据库管理系统,它提供了丰富的SQL语句用于数据库的创建、查询、更新和管理 以下是一些常见的
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈