QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4264|回复: 11
打印 上一主题 下一主题

[问题求助] BP神经网络程序问题求助

[复制链接]
字体大小: 正常 放大
T-Eric        

5

主题

14

听众

259

积分

升级  79.5%

  • TA的每日心情
    奋斗
    2016-1-29 12:24
  • 签到天数: 81 天

    [LV.6]常住居民II

    自我介绍
    数学建模准备中...

    社区QQ达人

    跳转到指定楼层
    1#
    发表于 2014-7-18 21:13 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    这是我从书上打下来的代码,因为书的运行软件版本比较低,我的是Malab2013a的版本,所以我修改了部分程序,但运行出来有问题。请哪位高手帮忙指教和修正一下。谢谢!!
      M* }3 C4 w; y' G  ^: Q1 V
    4 ?2 O/ l. [. P! U0 F/ r) \%原始数据输入
    & t5 D% c- v3 X6 Jclc
    8 i, E/ i! G& o' r" `sqrs=[20.55,22.44,25.73,27.13,29.45,30.1,30.96,34.06,36.42,38.09,39.13,39.99,...
    ' c0 @' ~% {% j    41.93,44.59,47.30,52.89,55.73,56.76,59.17,60.63];, N+ r1 a$ G4 M" l5 z
    sqjdcs=[0.6,0.75,0.85,0.90,1.05,1.35,1.45,1.60,1.70,1.85,2.15,2.20,2.25,2.35,...2 e7 z. R9 e* c& x- v
        2.5,2.6,2.7,2.85,2.95,3.10];
    & r/ _5 k+ g8 j5 `6 h! r2 ysqglmj=[0.09,0.11,0.11,0.14,0.20,0.23,0.23,0.32,0.32,0.34,0.36,0.36,0.38,0.49,...8 j  i  A& |" O5 B% A
        0.56,0.59,0.59,0.67,0.69,0.79];
    6 r/ Y0 F& g$ d. i3 z5 xglkyl=[5126,6217,7730,9145,10460,11387,12353,15750,18304,19836,21024,19490,20433,...
    . i$ {5 d: b8 a* s/ R    22598,25107,33442,36836,40548,42927,43462];% O8 B7 }4 J+ T
    glhyl=[1237,1379,1385,1399,1663,1714,1834,4322,8132,8936,11099,11203,10524,11115,...7 s, {3 n6 f: ~: E! o7 @; {
        13320,16762,18673,20724,20803,21804];$ A! Z4 Z! Q8 [: ~0 l5 l/ a
    p=[sqrs;sqjdcs;sqglmj];  v  R5 l4 n& H: e& p5 n
    t=[glkyl;glhyl];
    6 |5 {0 u* s7 q0 Z9 u- l: ]* ?. T; e5 f1 @% t+ b
    %数据归一化6 [3 C: O! x; _0 J) q. T" S
    [pn,ps1]=mapminmax(p);6 }1 a$ Z% G# P! D6 z4 f" D
    [tn,ps2]=mapminmax(t);% k4 Q5 h' O* E( ?! K( _5 V
    dx=[-1,1;-1,1;-1,1];
    2 t1 V6 w6 s4 c& N2 }6 _" Z9 x0 _, b, G' L
    %BP网络训练
    8 p9 _1 u2 Z' r' l0 unet=newff(p,t,[3,7,2],{'tansig','tansig','purelin'},'traingdx');
    8 A9 k( T, |3 V3 N1 lnet.trainParam.show=1000;
    ; s, U' a8 h- D8 y6 C$ Knet.trainParam.Lr=0.05;% }$ B" @  m& n4 ]% J1 e- r/ C
    net.trainParam.epochs=50000;* V3 f% @; {; B0 A5 C3 V4 ?! i
    net.trainParam.goal=0.65*10^(-3);
    ( z* J5 Z( r& ]# D3 b& dnet=train(net,pn,tn);$ A3 N: w& Y5 p; R+ A. d
    3 L2 @/ A" p& G. f$ W
    %利用原数据对BP网络仿真
    $ _* n; t6 t; o8 r4 pan=sim(net,pn);" Q: f3 {1 A0 e: ?/ [) U( D) f
    a=mapminmax('reverse',an,ps2);4 `8 @3 u0 y4 U2 h) d
    % z' N7 ?; J! M8 a) ]
    %仿真结果与原数据对比测试
    6 P( c$ e  N- W1 c+ t/ jx=1990:2009;
    . i' |* _( d+ Unewk=a(1,:);
    * i( z* Z* s2 m* Z0 E( }newh=a(2,:);( D" J. G0 k- M, X7 \
    figure(2);0 \' R, k# I9 x; \. t
    subplot(2,1,1);plot(x,newk,'r-o',x,glkyl,'b--+');
    5 i! m; c% D7 Ylegend('网络输出客运量','实际客运量');
    4 P3 u1 k/ X  I& axlabel('年份');ylabel('货运量、万人');- y/ X% n. i( K$ f
    title('运用工具箱客运量学习和测试对比图');
    ( O8 _1 |5 D2 `  Y; j3 \, m, _2 zsubplot(2,1,2);plot(x,newh,'r-o',x,glhyl,'b--+');5 _$ N& N5 W; ^4 {3 P- h
    legend('网络输出货运量','实际货运量');- n/ U) E. H, i6 L( s" _
    xlabel('年份');ylabel('货运量、万吨');
    ' n0 b7 {, J! i* r; xtitle('运用工具箱货运量学习和测试对比图');( O/ i4 Y* R5 M/ _+ f. X

    $ [# a. m% b$ S$ @%新数据仿真9 R  I- ?6 f* C$ t
    pnew=[73.39,75.55
    . j/ j  n4 F# ]; N    3.9635,4.09754 `5 a" I- a% l7 t, @7 v
        0.9880,1.0268];+ m) X5 J0 |1 G7 I4 N( _
    pnewn=mapminmax('apply',pnew,ps1);" a% r* q5 h- c' U; x5 e0 U
    anewn=sim(net,pnewn);! Z8 l- J3 p2 i- k; b! Q
    anew=mapminmax('reverse',anewn,ps2)
    2 W  @9 e$ Q" f( ?" T! V
    7 i5 |( g  r# S' R, d( H, l8 Q

    `VCWMZD9E$D~NHRR~AT9B4D.jpg (120.2 KB, 下载次数: 501)

    `VCWMZD9E$D~NHRR~AT9B4D.jpg

    zan
    转播转播1 分享淘帖0 分享分享0 收藏收藏1 支持支持0 反对反对0 微信微信
    gancm 实名认证       

    8

    主题

    13

    听众

    1831

    积分

  • TA的每日心情

    2015-5-31 00:30
  • 签到天数: 432 天

    [LV.9]以坛为家II

    国际赛参赛者

    社区QQ达人

    群组2013电工杯A题讨论群组

    看了图我感觉是网络输出后面那几个值太大了,前面基本都是一条水平线了,具体哪里还看不出问题。你把修改的地方说一下看看

    点评

    T-Eric  因为版本更新,Matlab中的Newff命令用法有所改变,原命令为: net=newff(dx,[3,7,2]{'tansig','tansig','purelin'},'traingdx'); 我修改为: net=newff(p,t,[3,7,2],{'tansig','tansig','purelin'},'traingdx');  详情 回复 发表于 2014-7-21 11:58
    回复

    使用道具 举报

    529084167        

    0

    主题

    9

    听众

    390

    积分

    升级  30%

  • TA的每日心情
    奋斗
    2014-9-8 00:44
  • 签到天数: 136 天

    [LV.7]常住居民III

    自我介绍
    我是一名学物联网的学生!

    群组2013年美赛优秀论文解

    群组物联网工程师培训

    群组第一期sas基础实训课堂

    群组第三届数模基础实训

    回复

    使用道具 举报

    T-Eric        

    5

    主题

    14

    听众

    259

    积分

    升级  79.5%

  • TA的每日心情
    奋斗
    2016-1-29 12:24
  • 签到天数: 81 天

    [LV.6]常住居民II

    自我介绍
    数学建模准备中...

    社区QQ达人

    gancm 发表于 2014-7-19 12:30
    4 H# I/ P+ ^/ b, x! v- J8 I0 {看了图我感觉是网络输出后面那几个值太大了,前面基本都是一条水平线了,具体哪里还看不出问题。你把修改的 ...

    9 y, q$ W! j  ^4 r2 h. `因为版本更新,Matlab中的Newff命令用法有所改变,原命令为:
    ; Z; {. J/ T  o' _# `& G3 Rnet=newff(dx,[3,7,2]{'tansig','tansig','purelin'},'traingdx');
    " |; K/ F- D1 V6 V我修改为:
    ; _* U( K8 X8 \( P/ f. Ynet=newff(p,t,[3,7,2],{'tansig','tansig','purelin'},'traingdx');4 r3 G3 E+ Y) M7 g
    然后有些命令被其他命令替代了,其中有premnmx,postmnmx,tramnmx命令好像被替换了,使用了一个强大的命令mapminmax。原命令为:
    / g) G1 N" I3 l/ p[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);
    + s$ e! w1 x  `$ wa=postmnmx(an,mint,maxt);
    ) R, y. k" {$ `pnewn=tramnmx(pnew,minp,maxp);3 T5 x5 u; |; Q8 V1 M7 ~+ j! a8 X
    anew=postmnmx(anewn,mint,maxt)
    7 \5 @5 o6 V9 i7 K: W9 n我修改为:7 J$ U* h$ F% l8 ]8 Z5 _
    [pn,ps1]=mapminmax(p);[tn,ps2]=mapminmax(t);% w. {" G3 {6 H
    a=mapminmax('reverse',an,ps2);: b7 B& W" Z* n8 z9 C  _# k1 d2 b+ O
    pnewn=mapminmax('apply',pnew,ps1);
      ^4 h/ p, j6 @6 Yanew=mapminmax('reverse',anewn,ps2)4 _# |; \3 S# w$ U( b  H; d* N- t

    : F0 {6 D7 Z+ z, E: \! l原程序为:7 U+ _8 J# ]7 a+ w5 o) I- Z
    %原始数据输入
      l1 x7 G* k0 S: ?7 {clc
    : i# g  \) A8 }. V, O1 usqrs=[20.55,22.44,25.73,27.13,29.45,30.1,30.96,34.06,36.42,38.09,39.13,39.99,...6 T* z- G$ ~, B1 k3 g. s4 Y
        41.93,44.59,47.30,52.89,55.73,56.76,59.17,60.63];) x9 m" D$ G  b, J- X& ?
    sqjdcs=[0.6,0.75,0.85,0.90,1.05,1.35,1.45,1.60,1.70,1.85,2.15,2.20,2.25,2.35,...3 D2 b& h! D( u% n* V
        2.5,2.6,2.7,2.85,2.95,3.10];# ~6 l' U, ^5 d3 E
    sqglmj=[0.09,0.11,0.11,0.14,0.20,0.23,0.23,0.32,0.32,0.34,0.36,0.36,0.38,0.49,...
    % ^0 K" ?  |9 a! B. M" i* ^    0.56,0.59,0.59,0.67,0.69,0.79];
    8 ]. N& s' e% K' y2 ]glkyl=[5126,6217,7730,9145,10460,11387,12353,15750,18304,19836,21024,19490,20433,...
    ! G9 o9 }+ _" R7 P, g- L    22598,25107,33442,36836,40548,42927,43462];
    . ^7 C: }: C+ [7 o% E; E2 q. ]glhyl=[1237,1379,1385,1399,1663,1714,1834,4322,8132,8936,11099,11203,10524,11115,...& y4 Y5 U& K7 R7 O7 |. M& [* f
        13320,16762,18673,20724,20803,21804];
    9 b, T$ t1 p8 ?5 E( k3 @/ R) h* hp=[sqrs;sqjdcs;sqglmj];9 [! u8 Z0 d" }5 R1 }( C* C
    t=[glkyl;glhyl];
    $ B% g! F, B3 \7 J3 X+ L% f
    5 ^& s+ @$ e( j/ ]( A' e%数据归一化3 g& W) {' L( h3 J% N9 _
    [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);
    / z; N! I1 P# t7 Qdx=[-1,1;-1,1;-1,1];) i; F7 O; d! c/ d' |+ r! {) q
    2 h/ @. a0 ?, V' g: ?$ Y
    %BP网络训练
    . e# k0 [, g2 b1 `net=newff(dx,[3,7,2],{'tansig','tansig','purelin'},'traingdx');
    / U8 e0 \7 b# B, D/ Xnet.trainParam.show=1000;
    % L' S% ]2 V7 [" _) @+ ?net.trainParam.Lr=0.05;
    4 u9 g7 W% P# n) \* w$ y/ H5 unet.trainParam.epochs=50000;1 m' W8 N. B/ ?) X
    net.trainParam.goal=0.65*10^(-3);
    3 S1 o. E; t0 r/ L# ?5 _net=train(net,pn,tn);
      ~1 L- i( Q6 p# K/ g% K" G6 K: O
    / C, G) [7 q8 s& o%利用原数据对BP网络仿真
    / s5 }' B! B2 z4 Pan=sim(net,pn);
    6 Y: [6 n( ~# {5 ~a=postmnmx(an,mint,maxt);
    6 f" V$ E+ b% I1 \4 w- y; |  Q( y! r: E) B! w) J" y# Q4 Z$ v  i6 n
    %仿真结果与原数据对比测试# P" `: ]$ z" Q- X8 f
    x=1990:2009;
    7 C) S2 t5 q4 L- d+ qnewk=a(1,;7 _4 n) J( R* I
    newh=a(2,;% h! A  x: g% N: n1 z
    figure(2);4 \+ T# A$ Z" L, t5 n8 n7 i
    subplot(2,1,1);plot(x,newk,'r-o',x,glkyl,'b--+');
    6 {) S* A7 V# ~- E: M) nlegend('网络输出客运量','实际客运量');  V$ o6 a. j0 G
    xlabel('年份');ylabel('货运量、万人');1 _% A% B7 v: E) I5 W  r1 B
    title('运用工具箱客运量学习和测试对比图');3 q( ?6 v0 H. @/ V& o9 q! Q
    subplot(2,1,2);plot(x,newh,'r-o',x,glhyl,'b--+');
    , ?1 \! d" c4 d' R( u/ Olegend('网络输出货运量','实际货运量');
    3 C% v5 |- C# o1 xxlabel('年份');ylabel('货运量、万吨');
    . w4 G* u. E: stitle('运用工具箱货运量学习和测试对比图');: F5 y7 B- k! ^" r! v, w

    + i" b. F9 f, [' f- p6 j%新数据仿真# b' n7 u- T# R3 z9 k5 Y
    pnew=[73.39,75.55
    $ `. l) `6 J4 o% V    3.9635,4.0975
    + u( X. H4 f1 |# F% A    0.9880,1.0268];6 ?; J6 \& L: p) i. p
    pnewn=tramnmx(pnew,minp,maxp);
    1 s7 q- K4 t' Y2 uanewn=sim(net,pnewn);
    9 _: k+ B1 R# a4 T. ^anew=postmnmx(anewn,mint,maxt)

    ' {9 d" `6 ?8 ^/ f  A, P
    7 g9 F) q, n/ x+ p5 w修改后程序为:
      i7 b& x0 B2 h# h2 u%原始数据输入. s$ v' u" P, n8 E9 C
    clc# z  _2 k4 D) R9 |9 T! I2 ]( J
    sqrs=[20.55,22.44,25.73,27.13,29.45,30.1,30.96,34.06,36.42,38.09,39.13,39.99,...
    & U2 F8 g+ Q# I( K4 K8 U    41.93,44.59,47.30,52.89,55.73,56.76,59.17,60.63];
    % s% e, p2 ]+ ]# I  Tsqjdcs=[0.6,0.75,0.85,0.90,1.05,1.35,1.45,1.60,1.70,1.85,2.15,2.20,2.25,2.35,...
    # T- |9 {9 R/ Z    2.5,2.6,2.7,2.85,2.95,3.10];' M1 {% l6 H3 [/ t
    sqglmj=[0.09,0.11,0.11,0.14,0.20,0.23,0.23,0.32,0.32,0.34,0.36,0.36,0.38,0.49,..." p# r5 \; W* \- R' ~
        0.56,0.59,0.59,0.67,0.69,0.79];
    # ~; l/ M. V! C& Q! ?glkyl=[5126,6217,7730,9145,10460,11387,12353,15750,18304,19836,21024,19490,20433,...7 a3 x0 Q' o; u, t, j: ]8 Q
        22598,25107,33442,36836,40548,42927,43462];: P: t! U7 u# {) I
    glhyl=[1237,1379,1385,1399,1663,1714,1834,4322,8132,8936,11099,11203,10524,11115,...
    ; H2 |7 b6 `# `3 s# ~! N: \& K5 w    13320,16762,18673,20724,20803,21804];1 c1 [/ t4 M6 v4 p+ N1 G* }
    p=[sqrs;sqjdcs;sqglmj];
    & f: ?. F0 E+ G/ O( ~% Kt=[glkyl;glhyl];
    . ^- G. g) N* Y& Y. C5 ~& S" |! o7 c- T' V
    %数据归一化/ `# z! S0 |) ^  Z2 T! g& ^. D
    [pn,ps1]=mapminmax(p);
    4 b! k' X, t- d6 }[tn,ps2]=mapminmax(t);7 T( A& Q+ i8 W

      \6 Z% k6 J5 N# `' S, f, ^%BP网络训练
    ! @( q9 c2 t5 f) D4 M2 c) @net=newff(p,t,[3,7,2],{'tansig','tansig','purelin'},'traingdx');
    : ~. v2 g  O/ K5 h" Bnet.trainParam.show=1000;
    # F' Z8 v9 V9 q/ j( Pnet.trainParam.Lr=0.05;
    $ R+ P. c7 N! ~. U5 X! i& T  ?net.trainParam.epochs=50000;
    ! v' @( Y! ?3 N" r; Dnet.trainParam.goal=0.65*10^(-3);
    + W) N" t& g; r. t) s( |" ]net=train(net,pn,tn);# Q) O$ u1 `6 Y( n) R" v
    3 G8 |  q  L/ c3 k0 G1 }5 B
    %利用原数据对BP网络仿真; I/ O' {, Z$ _3 S+ \2 X7 x0 X9 B
    an=sim(net,pn);' c" Q5 G' k& O6 U( i& j6 Y' }
    a=mapminmax('reverse',an,ps2);! I! E* R' t1 t2 Y/ c+ D2 \- e: S
    9 L5 h9 b& C7 |; O
    %仿真结果与原数据对比测试
    - e+ {# e$ G. X7 ]( zx=1990:2009;
    : z, q; j  B" |& P, ], y' cnewk=a(1,;
    7 x/ ~) V) O3 i1 o8 I+ a' vnewh=a(2,;" ]! X' y8 C3 X7 F2 A
    figure(2);
    ! G% H! E$ Z* c4 y) ^2 [subplot(2,1,1);plot(x,newk,'r-o',x,glkyl,'b--+');) S2 m6 x3 Y* U# I7 `
    legend('网络输出客运量','实际客运量');- ^1 [! R+ F& k9 X
    xlabel('年份');ylabel('货运量、万人');7 f' N& s) n1 v) @% H
    title('运用工具箱客运量学习和测试对比图');
    $ p' e  l; G! k& Ssubplot(2,1,2);plot(x,newh,'r-o',x,glhyl,'b--+');! |% \5 r- a  K; a
    legend('网络输出货运量','实际货运量');- I# d/ y* B9 T, s) D
    xlabel('年份');ylabel('货运量、万吨');
    + C1 R5 S9 u7 ztitle('运用工具箱货运量学习和测试对比图');" S9 S9 _) z7 P/ t* P& M) K8 N; b

    ; O2 v+ H, i: i$ |. }%新数据仿真/ E  N( a. L' S5 c
    pnew=[73.39,75.55
    3 {- a4 j: t1 v8 V    3.9635,4.0975% F" @1 }2 _7 ?5 C
        0.9880,1.0268];) T( U1 w1 l# n- K
    pnewn=mapminmax('apply',pnew,ps1);
    2 S( S: ^* `8 T8 }$ O' q& H! \anewn=sim(net,pnewn);" I6 W+ k8 W* u3 x% L( S0 R
    anew=mapminmax('reverse',anewn,ps2)
    " G' j$ f" i, u(修改的地方用颜色标记了)
    , m& a* O+ |' u3 i& r5 E6 `8 E5 X麻烦您帮忙指出其中的问题,万分感谢!
    回复

    使用道具 举报

    且生        

    29

    主题

    9

    听众

    1500

    积分

    升级  50%

  • TA的每日心情
    慵懒
    2016-9-24 15:19
  • 签到天数: 412 天

    [LV.9]以坛为家II

    社区QQ达人

    群组学术交流A

    群组学术交流B

    群组2013认证赛B题讨论群组

    群组EXCEL

    回复

    使用道具 举报

    且生        

    29

    主题

    9

    听众

    1500

    积分

    升级  50%

  • TA的每日心情
    慵懒
    2016-9-24 15:19
  • 签到天数: 412 天

    [LV.9]以坛为家II

    社区QQ达人

    群组学术交流A

    群组学术交流B

    群组2013认证赛B题讨论群组

    群组EXCEL

    1. clc  \4 E+ ~0 f6 ?# ^6 Y0 a
    2. sqrs=[20.55,22.44,25.73,27.13,29.45,30.1,30.96,34.06,36.42,38.09,39.13,39.99,...; G' j# }/ u# U- {' {1 y0 ?2 @; c
    3.     41.93,44.59,47.30,52.89,55.73,56.76,59.17,60.63];\" y' c; W$ V4 S9 `% b8 l* u$ R
    4. sqjdcs=[0.6,0.75,0.85,0.90,1.05,1.35,1.45,1.60,1.70,1.85,2.15,2.20,2.25,2.35,...9 s# n6 J8 V\" l
    5.     2.5,2.6,2.7,2.85,2.95,3.10];8 }  J# L. B* I' E+ t
    6. sqglmj=[0.09,0.11,0.11,0.14,0.20,0.23,0.23,0.32,0.32,0.34,0.36,0.36,0.38,0.49,...' d* r! E! y1 }
    7.     0.56,0.59,0.59,0.67,0.69,0.79];  H& a: V5 F7 s
    8. glkyl=[5126,6217,7730,9145,10460,11387,12353,15750,18304,19836,21024,19490,20433,...
      ' i4 }) u6 i# d
    9.      22598,25107,33442,36836,40548,42927,43462];
      8 A: C+ [3 e* o\" ]5 V
    10. glhyl=[1237,1379,1385,1399,1663,1714,1834,4322,8132,8936,11099,11203,10524,11115,...
      , H* `8 u- K! G7 G
    11.      13320,16762,18673,20724,20803,21804];
      4 n. K# d' f) J1 Z( p
    12. p=[sqrs;sqjdcs;sqglmj];& V$ X; e& q8 c* L: W% u0 N
    13. t=[glkyl;glhyl];; R, g) {) y/ @9 v1 |
    14. %数据归一化' z7 K9 V  W9 z- b% l
    15. [pn,ps1]=mapminmax(p);
      9 `0 P' I$ |. u1 ~9 i6 w4 B, _
    16. [tn,ps2]=mapminmax(t);& t  v: y% O- H5 S- F5 g) u
    17. %dx=[-1,1;-1,1;-1,1];
      # c$ B) y  f0 U\" E0 K
    18. [color=Red] p0=minmax(pn);t0=minmax(tn);[/color]
      , r( x8 T1 r- ~

    19.   z! `, d. ^# U/ _1 Q5 l
    20. %BP网络训练% R8 X7 e* [5 n4 {
    21. [color=Red] net=newff(p0,t0,[3,7,2],{'tansig','tansig','purelin'},'traingdx'); [/color]
      ! P- \- J, @  j+ P: @9 i
    22. net.trainParam.show=1000;
      / n( n& R! l( Q$ |) J* |2 U
    23. net.trainParam.Lr=0.05;
      # c0 u! w2 G: l/ A9 u
    24. net.trainParam.epochs=50000;
      4 s. Q, l2 }9 I, Y9 P7 j: {
    25. [color=Red] net.trainParam.goal=0.65*10^(-5);[/color]2 ~1 B4 z' G/ e\" ]$ j+ _: q5 O0 t
    26. net=train(net,pn,tn);
      * \& _& `$ P' T# n0 _; Q- y# c

    27. 0 \2 [% h5 O8 \$ G0 Q2 E
    28. %利用原数据对BP网络仿真
      ! T2 m2 o3 j, c5 V
    29. an=sim(net,pn);
      ( ?* b. q0 C' p( y2 e, [7 ]
    30. a=mapminmax('reverse',an,ps2);# O6 B4 Q, N9 K0 r4 Q8 p
    31. 5 i. R; \# U# D3 F, _
    32. %仿真结果与原数据对比测试 3 a+ E% M$ v5 d\" S0 _\" z. v0 e1 Y1 b
    33. x=1990:2009;
      8 J3 ?! P6 n& G: e3 h5 a
    34. newk=a(1,:);
      5 {: k& U9 Q: {! i! ?( l& f\" {
    35. newh=a(2,:);! M( |3 x# R2 g* X8 w, M
    36. figure(2);
      # p6 G9 N& S0 @. c  U) G6 B
    37. subplot(2,1,1);plot(x,newk,'r-o',x,glkyl,'b--+');
      ) d2 n# m  g& s! G
    38. legend('网络输出客运量','实际客运量');+ J) R\" a! I1 b2 F
    39. xlabel('年份');ylabel('货运量、万人');9 M% N8 W2 S2 p* B5 j) ]
    40. title('运用工具箱客运量学习和测试对比图');- |3 A' s9 _$ ~) x! ^\" E/ J
    41. subplot(2,1,2);plot(x,newh,'r-o',x,glhyl,'b--+');+ @- |1 ^1 `6 n' U* X2 b
    42. legend('网络输出货运量','实际货运量');
      / Q) f% M+ I$ @
    43. xlabel('年份');ylabel('货运量、万吨');+ a# c/ P7 \% C' E3 G
    44. title('运用工具箱货运量学习和测试对比图');4 q2 J/ G4 E- D
    45. % N+ L# I& c3 f% _6 P
    46. %新数据仿真; C3 Z( O% x% R$ o4 T* m
    47. pnew=[73.39,75.55
      1 C' _1 U1 f9 ^# |5 m& N
    48.      3.9635,4.0975
      % V& v7 o0 S4 X/ N. F- ^& v; Z
    49.      0.9880,1.0268];7 i8 \\" C5 s9 W# s5 r2 H8 o, {
    50. pnewn=mapminmax('apply',pnew,ps1);5 S3 u/ H7 f+ k
    51. anewn=sim(net,pnewn);0 _( B+ {% L; M; @5 s6 x
    52. anew=mapminmax('reverse',anewn,ps2)
    复制代码
    唉,无心学习啊,堕落了堕落了 ...
    回复

    使用道具 举报

    且生        

    29

    主题

    9

    听众

    1500

    积分

    升级  50%

  • TA的每日心情
    慵懒
    2016-9-24 15:19
  • 签到天数: 412 天

    [LV.9]以坛为家II

    社区QQ达人

    群组学术交流A

    群组学术交流B

    群组2013认证赛B题讨论群组

    群组EXCEL

    忽略我上面那个,改动的地方在18,21,25行……求批
    1. clc7 {5 G0 q1 P( Q
    2. sqrs=[20.55,22.44,25.73,27.13,29.45,30.1,30.96,34.06,36.42,38.09,39.13,39.99,...
      ) w& O- B' r\" r! G; _
    3.     41.93,44.59,47.30,52.89,55.73,56.76,59.17,60.63];
      9 n6 b  Q+ e8 @. ?9 y
    4. sqjdcs=[0.6,0.75,0.85,0.90,1.05,1.35,1.45,1.60,1.70,1.85,2.15,2.20,2.25,2.35,...
      8 w. K8 ^9 \9 S; o  A) {! u
    5.     2.5,2.6,2.7,2.85,2.95,3.10];# N2 [1 P8 [' L: Z8 I8 @8 F( F* o! E
    6. sqglmj=[0.09,0.11,0.11,0.14,0.20,0.23,0.23,0.32,0.32,0.34,0.36,0.36,0.38,0.49,...
      + y3 J4 K1 v7 x* L5 n2 p& [0 y
    7.     0.56,0.59,0.59,0.67,0.69,0.79];
      + y6 p3 y* B, r+ x) Z+ @% T
    8. glkyl=[5126,6217,7730,9145,10460,11387,12353,15750,18304,19836,21024,19490,20433,...
        M4 b# P, J# `
    9.      22598,25107,33442,36836,40548,42927,43462];) U+ B& M9 D5 G
    10. glhyl=[1237,1379,1385,1399,1663,1714,1834,4322,8132,8936,11099,11203,10524,11115,...
      7 H! a' w: n. A# x$ x! q8 ~
    11.      13320,16762,18673,20724,20803,21804];
      : v- H3 o* K' ]1 x$ F
    12. p=[sqrs;sqjdcs;sqglmj];
      5 I* O) G, y; X8 l0 x( s$ k7 S
    13. t=[glkyl;glhyl];
      : k1 O0 s1 C8 j# u% D  j0 n* m
    14. %数据归一化$ V& q, j3 g# C
    15. [pn,ps1]=mapminmax(p);% e( C6 e1 u! X/ x3 C
    16. [tn,ps2]=mapminmax(t);% `- L. W& \% i
    17. %dx=[-1,1;-1,1;-1,1];( l3 `# w! K1 ]* z6 R3 g- J
    18. p0=minmax(pn);t0=minmax(tn);. O/ j0 M+ a! E: I1 N\" Z
    19. 6 V8 n8 O( ^1 {, K; i# S# Z+ |
    20. %BP网络训练1 i- o5 u# q0 ?\" p& t: z
    21. net=newff(p0,t0,[3,7,2],{'tansig','tansig','purelin'},'traingdx'); 4 O! ~* [0 K! ^: J  ~0 k
    22. net.trainParam.show=1000;  p/ N- S8 B4 e' n
    23. net.trainParam.Lr=0.05;
      5 _\" @; A  n& f% N: e
    24. net.trainParam.epochs=50000;
      0 J5 U9 \/ t- Q
    25. net.trainParam.goal=0.65*10^(-5);1 M7 I) h. h- P! p2 [! F- K% l
    26. net=train(net,pn,tn);
      # ~- R- y' q* z

    27. 8 ^7 M, O, _4 M  K9 o3 ?& {3 c
    28. %利用原数据对BP网络仿真# {0 v5 b4 A( t8 ^1 R1 C% L0 ^2 _
    29. an=sim(net,pn);
      * k1 y7 A7 I! S4 J0 C
    30. a=mapminmax('reverse',an,ps2);0 s+ Y- N4 Y7 M. X8 ]
    31. 9 H9 g5 J+ X' M  L  W
    32. %仿真结果与原数据对比测试 3 i4 D: a4 D. Y2 ?# j
    33. x=1990:2009;; l/ g) R) }2 {, U
    34. newk=a(1,:);
      + Y& e, D  A: j& k) ^% W
    35. newh=a(2,:);$ [/ A; A, K. O- }( f
    36. figure(2);
      2 v! s! m3 W' U5 E& V: @
    37. subplot(2,1,1);plot(x,newk,'r-o',x,glkyl,'b--+');% b. h* I\" b! l8 l& U; \
    38. legend('网络输出客运量','实际客运量');
      1 ?# J+ y7 w. L: ~. U8 j/ ^' l
    39. xlabel('年份');ylabel('货运量、万人');; a/ g/ w5 G2 k0 J( {4 F) U/ t9 @$ i
    40. title('运用工具箱客运量学习和测试对比图');- t. h% p: }5 f; p  _
    41. subplot(2,1,2);plot(x,newh,'r-o',x,glhyl,'b--+');
      ) ~$ U\" x6 }5 y7 Z2 n$ H
    42. legend('网络输出货运量','实际货运量');
      & s: l7 G/ i\" J$ k2 n9 a% ?7 j
    43. xlabel('年份');ylabel('货运量、万吨');
      0 _. N- c8 D; w+ g, Z; J+ O
    44. title('运用工具箱货运量学习和测试对比图');2 z3 W: `4 }0 ?$ u
    45. & p0 c\" ^6 g' w; ?/ S1 J
    46. %新数据仿真
      3 H8 k* l; f) X1 B9 R& K
    47. pnew=[73.39,75.55. Y/ j0 t! L; C; J& h' a
    48.      3.9635,4.0975/ c/ N1 a5 H; R% s2 T
    49.      0.9880,1.0268];
      \" A) j4 G: }  g9 d7 m
    50. pnewn=mapminmax('apply',pnew,ps1);
      & z4 Y3 Z! Q+ O7 m% W5 v
    51. anewn=sim(net,pnewn);\" u3 n8 f3 K# H/ v
    52. anew=mapminmax('reverse',anewn,ps2)
    复制代码

    点评

    T-Eric  确实改善了很多,很是感谢。但效果还是不太理想,而且为何只学习了几十次就停了呢?即使我修改了目标精度。  详情 回复 发表于 2014-7-22 21:14
    唉,无心学习啊,堕落了堕落了 ...
    回复

    使用道具 举报

    T-Eric        

    5

    主题

    14

    听众

    259

    积分

    升级  79.5%

  • TA的每日心情
    奋斗
    2016-1-29 12:24
  • 签到天数: 81 天

    [LV.6]常住居民II

    自我介绍
    数学建模准备中...

    社区QQ达人

    且生 发表于 2014-7-21 18:22
    - G( Y, ~# b2 p; ]% ^忽略我上面那个,改动的地方在18,21,25行……求批
    9 }/ j$ P3 M  o. A- q
    确实改善了很多,很是感谢。但效果还是不太理想,而且为何只学习了几十次就停了呢?即使我修改了目标精度。

    p1.jpg (166.22 KB, 下载次数: 531)

    p1.jpg

    p2.jpg (158.1 KB, 下载次数: 492)

    p2.jpg

    回复

    使用道具 举报

    且生        

    29

    主题

    9

    听众

    1500

    积分

    升级  50%

  • TA的每日心情
    慵懒
    2016-9-24 15:19
  • 签到天数: 412 天

    [LV.9]以坛为家II

    社区QQ达人

    群组学术交流A

    群组学术交流B

    群组2013认证赛B题讨论群组

    群组EXCEL

    1. %BP网络训练
      ! @1 ~3 ~* _' G! z4 t) d
    2. net=newff(p0,t0,6,{'tansig'},'traingd');
      # z2 R* {# O) h4 B! s
    3. net.trainParam.show=1000;
      5 n\" z$ F* _6 k2 V$ p. Y8 W
    4. net.trainParam.Lr=0.05;; D3 p: N\" t\" n4 o
    5. net.trainParam.epochs=2000;) v  z% v% c) N6 i
    6. net.trainParam.goal=0.65*10^(-4);$ G# k# G6 X\" _2 ]
    7. net=train(net,pn,tn);
    复制代码
    我只改了这里面的,
    : I: G2 H6 D! r! r8 W) H: [/ w一、改成单隐含层的,6个节点) k, I7 B' {- T" d# y$ ?% f" p& Z
    二、训练函数改成梯度下降BP算法 traingd
    . x, C0 G8 Q$ h$ d三、迭代次数改成20009 ?9 |+ h. x/ O' u* ~( T. p8 V
    上面的参数是自己试的,我也不知道为什么。, J% S! M9 H7 j0 t7 U8 k2 j* x  |7 w+ t
    由于这玩意儿比较不靠谱,楼主多运行几次就能找到拟合的比较好的网络。# ~4 K4 R) a# j  L2 i& p
    关键问题是有没有过拟合我也不知道,等大神来解答吧
    唉,无心学习啊,堕落了堕落了 ...
    回复

    使用道具 举报

    且生        

    29

    主题

    9

    听众

    1500

    积分

    升级  50%

  • TA的每日心情
    慵懒
    2016-9-24 15:19
  • 签到天数: 412 天

    [LV.9]以坛为家II

    社区QQ达人

    群组学术交流A

    群组学术交流B

    群组2013认证赛B题讨论群组

    群组EXCEL

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-7-26 02:20 , Processed in 0.840962 second(s), 102 queries .

    回顶部