- 在线时间
- 13 小时
- 最后登录
- 2016-2-1
- 注册时间
- 2015-4-15
- 听众数
- 10
- 收听数
- 0
- 能力
- 0 分
- 体力
- 68 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 40
- 相册
- 0
- 日志
- 2
- 记录
- 0
- 帖子
- 37
- 主题
- 1
- 精华
- 0
- 分享
- 0
- 好友
- 2
升级   36.84% TA的每日心情 | 怒 2016-1-29 14:03 |
|---|
签到天数: 16 天 [LV.4]偶尔看看III
- 自我介绍
- 暂无
 群组: 2015国赛优秀论文解析 |
%PA 6月6:0:0 计算的MATLAB 程序如下:BP神经网络预测- w9 b+ _3 N( e6 X: C6 L3 B' ~
%6月6位于第28行
% M7 p& M/ e% _* Yclc,clear
9 ~* ?+ b, \6 {# d; Y) ?4 u6 hload ('data.mat')%原始数据以列向量的方式存放在workplace文件中+ o& w ^; T+ D
PA=PA(2:29,:);7 P& m# a w$ H% R+ ?
%数据的标准化& N+ D/ O: w6 Q/ @. p2 E
N=size(PA);
. J6 I* ^% a2 ufor j=1:N(1,2)
! n+ i9 o8 e, a PAHminmax=minmax(PA(:,j)');# }4 h# S6 m8 k4 Q
for i=1:N(1,1)7 u- ]- p, j1 q7 y1 [. Q: t
PA(i,j)=(PA(i,j)-PAHminmax(1,1))/(PAHminmax(1,2)-PAHminmax(1,1));( B- e. P4 L4 o
end$ S: e$ ?3 H4 ]& D5 p2 u
end
1 o7 R; m/ i$ I' e F: n( O% I+ v9 i%以每天的从0时计数起,每隔十五分钟作为输入
0 v8 U8 b2 q0 J5 dP=PA(7:27,:);6 ^9 y1 \* j% R
%以6月6的间隔十五分钟的发电量作为目标向量
- P: E; ~. w8 J+ d7 y sT=PA(28,:);* I! Y! b0 }$ _3 D* P0 \3 k0 j
%创建一个BP神经网络,每一个输入向量的取值范围为[0 ,1],隐含层有22个神经元,
! H5 t/ s8 \ D/ X: c' Y/ g3 w%输出层有一个神经元,隐含层的激活函数为tansig,输出层的激活函数为%logsig,
, j- P6 T$ R8 x$ L$ L& e%训练函数为梯度下降函数,即标准学习算法
# _0 o$ t5 q$ O% G! dfor i=1:21- F2 x e, A2 M6 i; U- x
a(i,1)=0;' ~5 N& A+ r$ v6 a, k
a(i,2)=1;
. X6 r& \& }; p) j' V# bend
# h$ [* {# u* b" i S! c9 Tnet=newff(a,[21,1],{'tansig','logsig'},'traingd');
0 D5 [9 r: T1 Lnet.trainParam.epochs=30000;
6 F* _* n- t; v5 vnet.trainParam.goal=0.01;
+ I# N! ]* V, @%设置学习速率为0.1' S' m. _" j" ~- i" {
LP.lr=0.1;( X3 O; w% d2 m; ~- b; j" J3 N
%训练网络% W4 s7 v, O% {6 C, Z
net=train(net,P,T);+ u0 \+ z; ~3 c' g$ G- V
%预测6月6的发电量数据
) G' G/ ?3 x# a) aT1=sim(net,P);%预测值7 a9 T* p! V0 e# Q6 T( O# I2 p4 p# Y; K
%PA.6月6日发电量真实值
& b9 `9 w7 N kT0=PA(28,:);& u; k% c, W1 K6 j+ I
%预测值与实际值的误差
1 m% \& {" j2 r" bfor i=1:N(1,2)6 O# t J0 }( m4 W' D
error(1,i)=T1(1,i)-T0(1,i);
1 M- _, Y' x( l0 G/ C) I* K$ oend# W4 z% h: F- Q! X$ G
%绘制误差图3 M0 G; b1 Y h' d& @' K. @# Q* n
figure(1)) l: P |& G/ {" R8 a/ K
plot(1:N(1,2),error(1,1:N(1,2)),'-*')
# u x6 u8 c3 X& v$ {. dgrid on
2 R! v7 |9 x, S) Q$ }xlabel('时点x'),ylabel('发电功率误差y');
/ S- r: Y- h; h2 f5 p& {title('PA6.6.0.0-6.6.23.45发电功率误差图像')- H1 b. W4 @& d; q( T) Y4 Z6 u
%绘制实时函数图; D: @0 b8 q" C' d" u( N2 H/ B+ C! `, r$ a
figure(2)
# i- W5 ^; s. Aplot(1:N(1,2),T0(1,:),1:N(1,2),T1(1,:),'r')
# d% ~7 A X! M; }# M ?/ @' J/ m1 Bgrid on
& n: Z) Q+ k2 E5 C/ F4 d" j1 olegend('实际值','预测值',2)% l. s! }. t8 ^" l4 U l) u" |
xlabel('时点x'),ylabel('发电功率y');4 m, [; h6 D1 ?+ c; q
title('PA6.6.0.0-6.6.23.45发电功率实时函数图像')
' O+ ?( q9 p7 g, @0 e web('http://www.ilovematlab.cn/forum-238-1.html','-browser')
% Y, `) V' F$ Q& U1 c2 `4 ~- a5 l- B. E# a, d8 |( S' F
- R, t: Y2 h% V% M
% V% `6 r+ w* Y5 o- _
* s3 t) A) t5 N% y一本书关于预测发电量的BP的程序。我稍微有点纳闷,既然你已经知道了6月6日的实际值,并且都拿相应的数据来作目标向量了,还利用神经网络来预测6月6日的发电量,意义何在?
: Z, z/ M5 Z( ?' D) F u- \0 W' v9 \6 Z! }# [/ v# P8 h! [
|
zan
|