%% 该代码为基于灰色神经网络的预测算法
%
% <html>
% <table border="0" width="600px" id="table1"> <tr> <td><b><font size="2">该案例作者申明:</font></b></td> </tr> <tr><td><span class="comment"><font size="2">1:本人长期驻扎在此<a target="_blank" href="http://www.ilovematlab.cn/forum-158-1.html"><font color="#0000FF">板块</font></a>里,对该案例提问,做到有问必答。本套书籍官方网站为:<a href="http://video.ourmatlab.com">video.ourmatlab.com</a></font></span></td></tr><tr> <td><font size="2">2:点此<a href="http://union.dangdang.com/transfer/transfer.aspx?from=P-284318&backurl=http://www.dangdang.com/">从当当预定本书</a>:<a href="http://union.dangdang.com/transfer/transfer.aspx?from=P-284318&backurl=http://www.dangdang.com/">《Matlab神经网络30个案例分析》</a>。</td></tr><tr> <td><p class="comment"></font><font size="2">3</font><font size="2">:此案例有配套的教学视频,视频下载方式<a href="http://video.ourmatlab.com/vbuy.html">video.ourmatlab.com/vbuy.html</a></font><font size="2">。 </font></p></td> </tr> <tr> <td><span class="comment"><font size="2"> 4:此案例为原创案例,转载请注明出处(《Matlab神经网络30个案例分析》)。</font></span></td> </tr> <tr> <td><span class="comment"><font size="2"> 5:若此案例碰巧与您的研究有关联,我们欢迎您提意见,要求等,我们考虑后可以加在案例里。</font></span></td> </tr> </table>
% </html>
%% 清空环境变量
clc
clear
load data
%% 数据累加作为网络输入
[n,m]=size(X);
for i=1:n
y(i,1)=sum(X(1:i,1));
y(i,2)=sum(X(1:i,2));
y(i,3)=sum(X(1:i,3));
y(i,4)=sum(X(1:i,4));
y(i,5)=sum(X(1:i,5));
y(i,6)=sum(X(1:i,6));
end
%% 网络参数初始化
a=0.3+rand(1)/4;
b1=0.3+rand(1)/4;
b2=0.3+rand(1)/4;
b3=0.3+rand(1)/4;
b4=0.3+rand(1)/4;
b5=0.3+rand(1)/4;
%% 学习速率初始化
u1=0.0015;
u2=0.0015;
u3=0.0015;
u4=0.0015;
u5=0.0015;
%% 权值阀值初始化
t=1;
w11=a;
w21=-y(1,1);
w22=2*b1/a;
w23=2*b2/a;
w24=2*b3/a;
w25=2*b4/a;
w26=2*b5/a;
w31=1+exp(-a*t);
w32=1+exp(-a*t);
w33=1+exp(-a*t);
w34=1+exp(-a*t);
w35=1+exp(-a*t);
w36=1+exp(-a*t);
theta=(1+exp(-a*t))*(b1*y(1,2)/a+b2*y(1,3)/a+b3*y(1,4)/a+b4*y(1,5)/a+b5*y(1,6)/a-y(1,1));
kk=1;
%% 循环迭代
for j=1:10
%循环迭代
E(j)=0;
for i=1:30
%% 网络输出计算
t=i;
LB_b=1/(1+exp(-w11*t)); %LB层输出
LC_c1=LB_b*w21; %LC层输出
LC_c2=y(i,2)*LB_b*w22; %LC层输出
LC_c3=y(i,3)*LB_b*w23; %LC层输出
LC_c4=y(i,4)*LB_b*w24; %LC层输出
LC_c5=y(i,5)*LB_b*w25; %LC层输出
LC_c6=y(i,6)*LB_b*w26; %LC层输出
LD_d=w31*LC_c1+w32*LC_c2+w33*LC_c3+w34*LC_c4+w35*LC_c5+w36*LC_c6; %LD层输出
theta=(1+exp(-w11*t))*(w22*y(i,2)/2+w23*y(i,3)/2+w24*y(i,4)/2+w25*y(i,5)/2+w26*y(i,6)/2-y(1,1)); %阀值
ym=LD_d-theta; %网络输出值
yc(i)=ym;
%% 权值修正
error=ym-y(i,1); %计算误差
E(j)=E(j)+abs(error); %误差求和
error1=error*(1+exp(-w11*t)); %计算误差
error2=error*(1+exp(-w11*t)); %计算误差
error3=error*(1+exp(-w11*t));
error4=error*(1+exp(-w11*t));
error5=error*(1+exp(-w11*t));
error6=error*(1+exp(-w11*t));
error7=(1/(1+exp(-w11*t)))*(1-1/(1+exp(-w11*t)))*(w21*error1+w22*error2+w23*error3+w24*error4+w25*error5+w26*error6);
%修改权值
w22=w22-u1*error2*LB_b;
w23=w23-u2*error3*LB_b;
w24=w24-u3*error4*LB_b;
w25=w25-u4*error5*LB_b;
w26=w26-u5*error6*LB_b;
w11=w11+a*t*error7;
end
end
%画误差随进化次数变化趋势
figure(1)
plot(E)
title('训练误差','fontsize',12);
xlabel('进化次数','fontsize',12);
ylabel('误差','fontsize',12);
%print -dtiff -r600 28-3
%根据训出的灰色神经网络进行预测
for i=31:36
t=i;
LB_b=1/(1+exp(-w11*t)); %LB层输出
LC_c1=LB_b*w21; %LC层输出
LC_c2=y(i,2)*LB_b*w22; %LC层输出
LC_c3=y(i,3)*LB_b*w23; %LC层输出
LC_c4=y(i,4)*LB_b*w24; %LC层输出
LC_c5=y(i,5)*LB_b*w25;
LC_c6=y(i,6)*LB_b*w26;
LD_d=w31*LC_c1+w32*LC_c2+w33*LC_c3+w34*LC_c4+w35*LC_c5+w36*LC_c6; %LD层输出
theta=(1+exp(-w11*t))*(w22*y(i,2)/2+w23*y(i,3)/2+w24*y(i,4)/2+w25*y(i,5)/2+w26*y(i,6)/2-y(1,1)); %阀值
ym=LD_d-theta; %网络输出值
yc(i)=ym;
end
yc=yc*100000;
y(:,1)=y(:,1)*10000;
%计算预测的每月需求量
for j=36:-1:2
ys(j)=(yc(j)-yc(j-1))/10;
end
figure(2)
plot(ys(31:36),'-*');
hold on
plot(X(31:36,1)*10000,'r:o');
legend('灰色神经网络','实际订单数')
title('灰色系统预测','fontsize',12)
xlabel('月份','fontsize',12)
ylabel('销量','fontsize',12)
web browser www.matlabsky.com
%%
% <html>
% <table width="656" align="left" > <tr><td align="center"><p><font size="2"><a href="http://video.ourmatlab.com/">Matlab神经网络30个案例分析</a></font></p><p align="left"><font size="2">相关论坛:</font></p><p align="left"><font size="2">《Matlab神经网络30个案例分析》官方网站:<a href="http://video.ourmatlab.com">video.ourmatlab.com</a></font></p><p align="left"><font size="2">Matlab技术论坛:<a href="http://www.matlabsky.com">www.matlabsky.com</a></font></p><p align="left"><font size="2">M</font><font size="2">atlab函数百科:<a href="http://www.mfun.la">www.mfun.la</a></font></p><p align="left"><font size="2">Matlab中文论坛:<a href="http://www.ilovematlab.com">www.ilovematlab.com</a></font></p></td> </tr></table>
% </html>
阿里matlab建模师
- 粉丝: 4810
- 资源: 2883
最新资源
- 自主设计自动驾驶控制器与车道偏离预警系统:基于Simulink控制模型的功能验证与实时警报界面展示,自动驾驶控制器,车道偏离预警系统,基于Prescan设计场景和交通流,在Simulink中建立了相应
- 基于Simulink 2018+与Carsim 2019的自适应MPC轨迹跟踪控制仿真研究:跟踪轨迹展示,无人驾驶基于自适应mpc的轨迹跟踪控制仿真跟踪轨迹,simulink版本2018及以上,car
- 基于PSIM软件的LLC闭环仿真模型研究:探究半桥LLC暂稳态与调频ZVS特性分析,LLC闭环仿真PSIM调频ZVS 半桥LLC闭环仿真模型,基于PSIM建模仿真 可以进行LLC暂态、稳态仿真,仿真
- 基于Matlab计算任意三点夹角的算法教程:坐标转换与夹角计算详解,Matlab计算任意三点的夹角 给出特定一组坐标(可以直角坐标系或极坐标系) 计算出所有夹角值 matlab代码,备注清楚,更改为自
- 橘子公益端口8.2.zip
- 基于FCM聚类的数据归一化及自定义聚类处理详解:MATLAB代码实践与解析,FCM聚类,代码对数据先进行归一化然后聚类 可自定义聚类个数,求得每类的具体数据 matlab代码,备注清楚,更改为自己的数
- 基于双层优化的电动汽车充放电行为时空协同调度研究:实现与风电协同的输配协同调度策略,MATLAB代码:基于双层优化的电动汽车优化调度研究 关键词:双层优化 选址定容 输配协同 时空优化 参考
- 基于MATLAB的多种概率分布拟合与KS检验:用于概率分析、可靠度计算等领域的实战教程,11种概率分布的拟合与ks检验,可用于概率分析,可靠度计算等领域 案例中提供11种概率分布,具体包括:gev、l
- "基于PSIM9.1的Buck仿真闭环与双闭环控制模型:暂稳态模拟及控制电路设计探索",Buck仿真闭环Psim双闭环 Buck闭环仿真模型,基于PSIM建模仿真 可以进行暂态、稳态仿真,电压电流双
- 核密度估计方法下的概率分布拟合及KS检验确定最优核密度估计:使用多种核密度算法进行可视化矩形框调整优化拟合策略及Matlab代码实践 ,核密度估计及ks检验确定最优核密度估计 使用Normal、box
- Labview与基恩士PLC上位链路协议通讯通用VI支持全系列网口设备连通,labview与基恩士plc上位链路协议通讯通用vi,支持基恩士plc带网口全系列,有需要的欢迎咨询 ,关键词:LabVI
- 基于弦波SVPWM驱动的龙贝格观测器无感FOC风机方案:高压支持顺风启动原理图和源代码全解析,foc风机方案 高压 支持顺风启动 使用弦波 svpwm驱动方式 使用龙贝格观测器 无感FOC方案
- 基于PSO优化的极限学习机ELM算法详解Matlab代码,注释详尽,易于上手使用,PSO优化极限学习机ELM matlab代码,备注详细,易于使用 ,核心关键词:PSO优化; 极限学习机ELM; M
- 汽车EPB仿真模型:Carsim与Simulink联合实现制动钳动力学建模及电机控制功能仿真,汽车EPB仿真模型,Carsim和Simulink联合仿真 1.其中包括 制动钳系统 的动力学建模
- COMSOL激光烧蚀三维仿真:体热源与引力场对温度场影响分析,COMSOL 激光烧蚀3D体热源引力场温度场仿真 ,核心关键词:COMSOL; 激光烧蚀; 3D体热源; 引力场; 温度场仿真;,"COM
- "COMSOL仿真下的3D脉冲激光刻槽技术与应用研究",COMSOL 3D脉冲激光刻槽 ,"COMSOL 3D激光刻槽技术:脉冲激光精准切割工艺"
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
前往页