灰色预测方法预测温度matlab,灰色预测模型matlab程序
%by allen @ 红嘴海鸥
%灰色模型预测是在数据不呈现一定规律下可以采取的一种建模和预测方法,其预测数据与原始数据存在一定的规律相似性
%下面程序是灰色模型GM(1,1)程序二次拟合和等维新陈代谢改进预测程序,matlab6.5 ,使用本程序请注明,程序存储为gm1.m
%x =
[5999,5903,5848,5700,7884];gm1(x); 测试数据
%二次拟合预测GM(1,1)模型
function gmcal=gm1(x)
sizexd2 = size(x,2);
%求数组长度
k=0;
for y1=x
k=k+1;
if
k>1
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)
%输出时间响应方程
%******************************************************
%二次拟合
k2 = 0;
for y2 = x1
k2 = k2 +
1;
if k2 >
k else
ze1(k2) =
exp(-(k2-1)*afor); end
end
%ze1
sizeze1 = size(ze1,2);
z4 = ones(1,sizeze1)';
G=[ze1' z4];
X1 = x1';
au20=inv(G'*G)*G'*X1;
au2 = au20';
%z4,X1,G,au20
Aval = au2(1);
Bval = au2(2);
%Aval,Bval
%输出预测的 A,B的值
strcat(x1t1,'=',num2str(Aval),estr,leftbra,num2str(afor1),tstr,rightbra,'+',leftbra,num2str(Bval),rightbra)
%输出时间响应方程
nfinal = sizexd2-1 + 1;
%决定预测的步骤数5 这个步骤可以通过函数传入
%nfinal = sizexd2 - 1 + 1;
%预测的步骤数 1
for k3=1:nfinal
x3fcast(k3)
= constant1*exp(afor1*k3)+ua;
end
%x3fcast
%一次拟合累加值
for k31=nfinal:-1:0
if
k31>1
x31fcast(k31+1) = x3fcast(k31)-x3fcast(k31-1);
else
if k31>0
x31fcast(k31+1) = x3fcast(k31)-x(1);
else
x31fcast(k31+1) = x(1);
end
end
end
x31fcast
%一次拟合预测值
for k4=1:nfinal
x4fcast(k4)
= Aval*exp(afor1*k4)+Bval;
end
%x4fcast
for k41=nfinal:-1:0
if
k41>1
x41fcast(k41+1) = x4fcast(k41)-x4fcast(k41-1);
else
if k41>0
x41fcast(k41+1) = x4fcast(k41)-x(1);
else
x41fcast(k41+1) = x(1);
end
end
end
x41fcast,x
%二次拟合预测值
%***精度检验p
C************//
k5 = 0;
for y5 = x
k5 = k5 +
1;
if k5 >
sizexd2 else
err1(k5) = x(k5) -
x41fcast(k5); end
end
%err1
%绝对误差
xavg = mean(x);
%xavg
%x平均值
err1avg = mean(err1);
%err1avg
%err1平均值
k5 = 0;
s1total = 0 ;
for y5 = x
k5 = k5 +
1;
if k5 >
sizexd2 else
s1total = s1total + (x(k5) -
xavg)^2; end
end
s1suqare = s1total ./ sizexd2;
s1sqrt = sqrt(s1suqare);
%s1suqare,s1sqrt
%s1suqare 残差数列x的方差 s1sqrt 为x方差的平方根S1
k5 = 0;
s2total = 0 ;
for y5 = x
k5 = k5 +
1;
if k5 >
sizexd2 else
s2total = s2total + (err1(k5) -
err1avg)^2; end
end
s2suqare = s2total ./ sizexd2;
%s2suqare 残差数列err1的方差S2
Cval = sqrt(s2suqare ./ s1suqare);
Cval
%nnn = 0.6745 * s1sqrt
%Cval C检验值
k5 = 0;
pnum = 0 ;
for y5 = x
k5 = k5 +
1;
if abs(
err1(k5) - err1avg ) < 0.6745 * s1sqrt
pnum = pnum + 1;
%ppp = abs( err1(k5) - err1avg
) else
end
end
pval = pnum ./ sizexd2;
pval
%p检验值
%arr1 = x41fcast(1:6)
%预测结果为区间范围 预测步长和数据长度可调整程序参数进行改进
----------程序为原创,引用请注明
灰色预测方法预测温度matlab,灰色预测模型matlab程序相关推荐
- 灰色预测方法预测温度matlab,灰色预测matlab代码怎么写
这是我曾经写过的一个灰色预测的程序:第一个文件为函数,需要在调用时输入原始数据x0和预测周期T, 第二个文件用于计算灰色关联度,使用时直接修改相关参数和原始数据. ------------------ ...
- 【数据匮乏场景下采用生成对抗网络的 光伏出力场景预测方法】
背景介绍 生成对抗网络(GANs)是由两个网络组成的深度神经网络体系结构,它将一个网络与另一个网络相互对立(因此称为"对抗性"). 2014年,Ian Goodfellow和包括Y ...
- 预测性分析及常用预测方法
预测性分析及常用的预测方法 预测的目的 数据分析最重要的目的就是从数据中寻找规律,找到能够指导我们未来实践的原则和方法,是产生智慧的主要途径.所以预测分析是数据分析的终极目的.虽然数据分析承担了很多功 ...
- 机器学习 11 种经典时间序列预测方法
文章目录 一.时间序列预测方法 二.用法讲解及python程序 1.AR 2.MA 3.ARMA 4.ARIMA 5.SARIMA 6.SARIMAX 7.VAR 8.VARMA 9.VARMAX 1 ...
- 数学建模|预测方法:灰色预测模型
简介 灰色系统理论是由华中理工大学邓聚龙教授于1982年提出并加以发展的.二十几年来,引起了不少国内外学者的关注,得到了长足的发展.目前,在我国已经成为社会.经济.科学技术在等诸多领域进行预测.决策. ...
- 基于粒子群优化的灰色预测方法(Matlab)——附代码
目录 摘要: 研究背景: GM(1,1)模型 基于PSO的灰色预测算法 运行结果: 本文Matlab代码分享 摘要: 本文对灰色预测算法进行了研究.在GM(1,1)模型中,发展系数a和灰色作用量u是两 ...
- matlab灰色预测弱化代码,灰色预测模型介绍及MATLAB代码实现
灰色预测模型介绍及MATLAB代码实现 灰色预测模型介绍及MATLAB代码实现 文章目录 1. 按 2. 灰色模型介绍 3. 精度检验等级参照表 4. matlab代码 5. 实验数据 5.1. 测试 ...
- 菜鸟的数学建模之路(七):灰色预测方法
灰色预测的概念 灰色系统.白色系统和黑色系统 (1)白色系统是指一个系统的内部特征是完全已知的,既系统信息是完全充分的. (2)黑色系统是一个系统的内部信息对外界来说是一无所知的,只能通过它与外界的联 ...
- 【Matlab优化预测】布谷鸟算法优化灰色模型预测【含源码 1244期】
一.代码运行视频(哔哩哔哩) [Matlab优化预测]布谷鸟算法优化灰色模型预测[含源码 1244期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]屈迟文,傅 ...
最新文章
- optimize table
- 再见!Kafka决定弃用Zookeeper...
- Poj2449 Remmarguts' Date 【A*搜索】K短路
- mysql5.7是测试版本吗_mysql免安装版本测试(mysql-5.7.18-winx64)
- [CQOI2009] 中位数 (前缀和)
- 《深入理解计算机系统》速读提问
- stm32 整数加法循环时间_剑指 Offer 65. 不用加减乘除做加法 leetcode 剑指offer系列...
- DoIP(四)—— 时间参数
- PADS2007快捷键、无模命令大全
- not found for libcrypto
- 打包openstack of opencontrail
- truncate 释放表空间
- 银行硬件维护维修工单小程序开发制作
- ❥挑灯夜读系列❥-- 软件设计师考试躺过攻略(2021年下半年)
- 批处理删除指定名称的打印机
- Android 字体库的使用。引入外部字体
- 用Python控制摄像头拍照并发邮件
- windows XP系统文件诠释C(转)
- [多图]非线性格兰杰因果检验,eveiws详细实现步骤
- java制作《石头迷阵》游戏。
热门文章
- python tkinter滚动条不起作用_python – 水平滚动条在Tkinter中不起作用
- 上海宝山锦隆考试基地科目二笔记
- 六大重要策略与技巧,让我们更有效在领英(LinkedIn)开展线上营销
- [Codeforces] #603 (Div. 2) A-E题解
- Java java.sql.SQLSyntaxErrorException:Duplicate column name ‘xxx‘问题解决
- 数据结构---尾部插入法
- 浅谈四层交换机技术原理
- 充满哲学命题的科幻巨作—《2001太空漫游》
- 转载 钽电容起火、钽电容爆炸、钽电容烧了
- 易语言 获取TeamViewerID密码 部分代码