- 在线时间
- 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神经网络预测
% U* X* O& k' }9 D$ W' S* s%6月6位于第28行$ ~0 A5 a. \0 E r
clc,clear
, ~+ q% I( d" L2 rload ('data.mat')%原始数据以列向量的方式存放在workplace文件中
& z5 d" Y# {3 g d: xPA=PA(2:29,:);. u& [7 H0 Z" `9 ^% T% w/ e, s
%数据的标准化, K4 m/ ^) }% @# W
N=size(PA); T! W7 ]1 ^8 `
for j=1:N(1,2)
* [- f2 g8 p4 \) m d' {5 e) L# n PAHminmax=minmax(PA(:,j)');9 |. B4 X: x- V. c/ y5 }7 I
for i=1:N(1,1)
# x) q |2 D! k4 M. }4 E PA(i,j)=(PA(i,j)-PAHminmax(1,1))/(PAHminmax(1,2)-PAHminmax(1,1));
7 R( D4 G8 ]4 M3 _/ h4 s4 V e end0 y. e+ a8 h3 }
end, [- B2 u% a" c( i, q2 S, W
%以每天的从0时计数起,每隔十五分钟作为输入
6 V% v% s9 D8 c9 q2 M- LP=PA(7:27,:);
/ p1 D# U1 K: c! _%以6月6的间隔十五分钟的发电量作为目标向量
0 f. L" C2 e# |4 Z# aT=PA(28,:);2 I0 H5 z/ c! g1 p0 d1 _0 t
%创建一个BP神经网络,每一个输入向量的取值范围为[0 ,1],隐含层有22个神经元,
! @. P3 U% g: S+ r8 {- W%输出层有一个神经元,隐含层的激活函数为tansig,输出层的激活函数为%logsig,
. x- |$ o7 ^. @' s2 w%训练函数为梯度下降函数,即标准学习算法
. Y: T K8 h) |- X- m7 Dfor i=1:21% s& t: b% W5 z( J2 ~$ Y
a(i,1)=0;
8 p! L( }( J8 [ a(i,2)=1;
, y1 x& [" _, R7 I G v1 R9 fend
# ]3 y1 z6 v6 y% G$ Tnet=newff(a,[21,1],{'tansig','logsig'},'traingd');
/ S, k$ [1 Q7 ~; }net.trainParam.epochs=30000;# y( \5 W0 y6 x* H' ~/ @
net.trainParam.goal=0.01;. T- ^( Y1 q8 K. P0 k8 u
%设置学习速率为0.1
8 P) h9 l/ D5 \# d2 L8 ILP.lr=0.1; X% ^1 q+ t0 w$ E
%训练网络# A/ \: ~( g, T* i/ I0 M
net=train(net,P,T);# V" ?5 A' Z" R
%预测6月6的发电量数据' ~' _8 b7 M* o) A* b
T1=sim(net,P);%预测值
6 Z6 c/ S Y! D- E/ V# q%PA.6月6日发电量真实值
; r& ?) ~9 p" p9 fT0=PA(28,:);
. N$ A9 ?8 t% y$ X2 j! L5 J7 P%预测值与实际值的误差
8 j' _) e% q5 F Mfor i=1:N(1,2)1 W) u* X% p- c/ ^
error(1,i)=T1(1,i)-T0(1,i);6 J6 v( d/ B5 E& p$ F( h7 a
end( L6 i1 @6 l$ N% Z1 i) O8 }7 Z
%绘制误差图
; Q5 n- J1 {6 K& tfigure(1)
6 d4 H8 w" O# L; j, C. a& Qplot(1:N(1,2),error(1,1:N(1,2)),'-*') v, h+ Z k) m. ~7 E$ X' H
grid on# {: \4 R# R1 N
xlabel('时点x'),ylabel('发电功率误差y');
) i# M# ]4 k5 G. wtitle('PA6.6.0.0-6.6.23.45发电功率误差图像')
7 z: R" q& S: H8 w. c9 V2 h& I+ E%绘制实时函数图# u, f& Z. p7 ], a
figure(2)
6 S- g1 i: v/ J8 Gplot(1:N(1,2),T0(1,:),1:N(1,2),T1(1,:),'r')
- }5 ?- n, O( C2 Z4 W. Lgrid on
: M6 l: o* A5 S( ]1 a+ X4 O( ylegend('实际值','预测值',2)4 Q# r2 E& d( Q m# i( f& `8 r
xlabel('时点x'),ylabel('发电功率y');1 k3 Q% ]3 M4 u1 S9 f
title('PA6.6.0.0-6.6.23.45发电功率实时函数图像')/ {" Q1 o: Q1 d t6 M9 |
web('http://www.ilovematlab.cn/forum-238-1.html','-browser')# f1 w G o) i) e" @5 e
d0 n2 E9 G0 K7 y% J* @6 `7 Z
2 H) }$ [; R8 t9 m% ^* \3 | U' ^! s! k2 v
7 M- u; e7 s7 O; ~5 S' S8 X
一本书关于预测发电量的BP的程序。我稍微有点纳闷,既然你已经知道了6月6日的实际值,并且都拿相应的数据来作目标向量了,还利用神经网络来预测6月6日的发电量,意义何在?
; B3 d& H( j c( a
6 s8 t a/ T# E |
zan
|