QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4804|回复: 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的版本,所以我修改了部分程序,但运行出来有问题。请哪位高手帮忙指教和修正一下。谢谢!!
    / @/ w6 {+ a. {2 u9 ?+ v
    5 k4 ^! F  K* J( i% y%原始数据输入1 z8 Z4 M: @0 Y- y+ P0 p: c  ]
    clc
      o/ r" O6 R5 asqrs=[20.55,22.44,25.73,27.13,29.45,30.1,30.96,34.06,36.42,38.09,39.13,39.99,...
    / O$ E9 x7 e# X$ [$ b1 U  S4 t' x    41.93,44.59,47.30,52.89,55.73,56.76,59.17,60.63];! s7 J' v; H" ^6 L2 V# l( J
    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,..." j) ?. [6 u8 y  @
        2.5,2.6,2.7,2.85,2.95,3.10];  k5 W2 V9 t9 e4 ^, B5 f
    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,...
    ' z* \2 C1 w7 k    0.56,0.59,0.59,0.67,0.69,0.79];6 B, P6 o8 g1 P! `; @8 S& z
    glkyl=[5126,6217,7730,9145,10460,11387,12353,15750,18304,19836,21024,19490,20433,...
    " M6 e% j8 O( o2 X; A: ]/ S0 A    22598,25107,33442,36836,40548,42927,43462];
    8 p  R, s, e- _- m1 q! J) B5 r1 Jglhyl=[1237,1379,1385,1399,1663,1714,1834,4322,8132,8936,11099,11203,10524,11115,...
    - f  f/ V! u: F+ ]    13320,16762,18673,20724,20803,21804];+ w# j4 z3 `3 h3 V; F+ R& P5 L
    p=[sqrs;sqjdcs;sqglmj];! L4 I" a! g% J' j6 f# j$ r
    t=[glkyl;glhyl];, P# C$ h: a$ ]$ I& D
    / i# M2 K# w# y+ M( ~- B
    %数据归一化. s: ]; R) T6 h# o' A) M1 |0 j
    [pn,ps1]=mapminmax(p);; P% g. M0 o9 F$ l
    [tn,ps2]=mapminmax(t);
      h; I" H2 g0 W/ Ddx=[-1,1;-1,1;-1,1];1 i9 g( C# b' @' M5 ]

    % `: d" A7 i. q%BP网络训练$ T: E# Y2 z7 q! a$ q
    net=newff(p,t,[3,7,2],{'tansig','tansig','purelin'},'traingdx');
    / a, x. H. T2 A  {0 [4 Fnet.trainParam.show=1000;2 r. E& S. f. u: y
    net.trainParam.Lr=0.05;" a( v6 ~+ }- x2 d% ^0 l
    net.trainParam.epochs=50000;, f$ z* e6 Y2 b4 u, M
    net.trainParam.goal=0.65*10^(-3);" ~, K" S+ N+ Q; t
    net=train(net,pn,tn);
    * g7 h* v3 P3 A
    9 v( m& N5 Q( E5 R7 n  v%利用原数据对BP网络仿真" P: H/ z* V* M# J
    an=sim(net,pn);( J3 N( q* U9 d3 ~* ]$ r
    a=mapminmax('reverse',an,ps2);
    : }" m" Z" f" V% U
    ! H  C1 o' Q9 N5 d%仿真结果与原数据对比测试1 }) ?& E2 X' @+ {6 A+ V
    x=1990:2009;
    ' C; f7 w; U2 f9 v3 T8 Gnewk=a(1,:);
    ' ?. J5 A+ U+ @2 Jnewh=a(2,:);
    . }1 z7 Y* ]$ f; @: afigure(2);1 P" u! A9 W8 `
    subplot(2,1,1);plot(x,newk,'r-o',x,glkyl,'b--+');/ T8 u1 \" j4 G0 e) `0 f" K
    legend('网络输出客运量','实际客运量');) i. v) \4 ^) d( j4 o# {* R% \+ m
    xlabel('年份');ylabel('货运量、万人');! k' E: O( V3 o0 \# P$ S6 k
    title('运用工具箱客运量学习和测试对比图');6 W9 U3 V; }: m4 N
    subplot(2,1,2);plot(x,newh,'r-o',x,glhyl,'b--+');2 F2 ^0 ~& M% x7 p7 @
    legend('网络输出货运量','实际货运量');4 R* y: i/ y+ N, h' `  `& d4 w0 R5 ^
    xlabel('年份');ylabel('货运量、万吨');3 p  y" n! X7 P2 g& C; X
    title('运用工具箱货运量学习和测试对比图');
    6 t  r/ c$ L' _  [
    , N: `$ O2 T9 j9 o/ A) u9 R" r4 Y%新数据仿真
    & K1 E4 L+ F9 x$ Ypnew=[73.39,75.55
    9 _  i: G8 N+ {2 ~$ G& |+ Q    3.9635,4.0975
    ( g- G* ]9 \8 O; F9 R% {' X    0.9880,1.0268];- p2 F8 ^+ [' ]! u3 K
    pnewn=mapminmax('apply',pnew,ps1);2 g9 T0 o2 n  t9 J$ u% Q) Y% C, S
    anewn=sim(net,pnewn);
    ' r. q9 V7 \0 ]6 a. c+ tanew=mapminmax('reverse',anewn,ps2); y; I- M) z7 s! s8 Z% C5 O
    : x; X9 v' @' l7 O! B3 p

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

    `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
    , {) L& \8 R4 p) Q. t6 b5 t  y5 ^看了图我感觉是网络输出后面那几个值太大了,前面基本都是一条水平线了,具体哪里还看不出问题。你把修改的 ...

    $ V: a& R; A& D( ^2 \1 s因为版本更新,Matlab中的Newff命令用法有所改变,原命令为:: d; U- G' R# c
    net=newff(dx,[3,7,2]{'tansig','tansig','purelin'},'traingdx');
    # j% e. `, @$ q5 K/ @6 s我修改为:
    % L# j/ S+ Q$ b% j5 Jnet=newff(p,t,[3,7,2],{'tansig','tansig','purelin'},'traingdx');
    + s1 P: E5 }: ]) W! @然后有些命令被其他命令替代了,其中有premnmx,postmnmx,tramnmx命令好像被替换了,使用了一个强大的命令mapminmax。原命令为:
    $ @$ E1 o3 @/ \' W& t* J5 K, B3 f% w[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);
    . u# F7 [2 \$ X8 |3 q6 qa=postmnmx(an,mint,maxt);
    7 ?; L  z5 c& Z/ V2 m: Lpnewn=tramnmx(pnew,minp,maxp);' z* Y: e2 N0 B5 D+ c) k
    anew=postmnmx(anewn,mint,maxt)5 O4 j( w4 u& p" @
    我修改为:
    0 Y! w/ `& S, n) T( q[pn,ps1]=mapminmax(p);[tn,ps2]=mapminmax(t);
    9 e! {6 M) O! W& ya=mapminmax('reverse',an,ps2);
      I- \8 B7 M# ?' n% i3 A! y7 upnewn=mapminmax('apply',pnew,ps1);* d6 g2 D, E2 D5 u7 Z
    anew=mapminmax('reverse',anewn,ps2)
    - E8 k7 Y" r& W2 h- Q: X6 l# D
    * F5 B5 n3 W/ z; X6 a4 M3 g原程序为:8 e  @: I# `4 S5 o
    %原始数据输入
    ; Q4 q$ ?+ l* [* Pclc  |- ?9 C: r  X3 b# b6 O
    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,...
    1 q+ D' P* \/ M" h    41.93,44.59,47.30,52.89,55.73,56.76,59.17,60.63];9 O, P, W5 Y4 D( M
    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,...
    + Q4 N. h! l1 S( l1 q1 O9 R    2.5,2.6,2.7,2.85,2.95,3.10];
    8 I# m) N  E/ C# N& H/ V: Qsqglmj=[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,..." G! B; k9 Q; K9 {2 Q3 t1 B2 W& S
        0.56,0.59,0.59,0.67,0.69,0.79];8 q" \0 M- w/ Z6 P$ G/ V- y# m
    glkyl=[5126,6217,7730,9145,10460,11387,12353,15750,18304,19836,21024,19490,20433,...) ^0 r7 `6 o1 }# ?* G4 A" M- u# `
        22598,25107,33442,36836,40548,42927,43462];
    : Z0 P4 R2 ]+ M' e3 l8 [  ~) z, n5 |glhyl=[1237,1379,1385,1399,1663,1714,1834,4322,8132,8936,11099,11203,10524,11115,...
    2 m; k- ~- R, q6 k6 y  _  z1 d0 w    13320,16762,18673,20724,20803,21804];0 P( T4 C* ~8 Y" ]; _2 }7 o
    p=[sqrs;sqjdcs;sqglmj];' v& _. P; X) W! S* F8 [& a
    t=[glkyl;glhyl];5 q' _6 _& Q8 Z
    " d# T' C* W8 Z  `' r) p
    %数据归一化7 c- V( {( R7 o; `* X
    [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);7 ]( V- \" f) r6 Y
    dx=[-1,1;-1,1;-1,1];
    . N! O) d' t6 M+ D; Y! T
    $ P  W* T% k, E# y( ]  {
    %BP网络训练3 e- s. c$ b  w$ j0 Z+ o& b9 k
    net=newff(dx,[3,7,2],{'tansig','tansig','purelin'},'traingdx');5 y. u! f0 a8 O# `
    net.trainParam.show=1000;4 T6 [5 C- G% g
    net.trainParam.Lr=0.05;
    $ s3 _  E/ b! O/ X# M* Ynet.trainParam.epochs=50000;8 @% H: n6 w( u! h
    net.trainParam.goal=0.65*10^(-3);3 z3 G: n" B. d1 M/ j4 Z5 F! k
    net=train(net,pn,tn);
    , d& l& r8 {7 @5 v5 j! h8 Q4 H4 c! a0 p8 C1 V
    %利用原数据对BP网络仿真
    2 e$ ~1 w5 S$ H$ k0 A: l# Zan=sim(net,pn);
    ; U- Q2 e; Z" J- n$ Q* v5 K% z. d" Na=postmnmx(an,mint,maxt);
    + P+ r, Q/ Z7 e" z3 e' \
    $ @7 i( d# s# v8 T  S%仿真结果与原数据对比测试
    / j$ x! P& f% {3 g1 O+ ~x=1990:2009;* Z" i0 x' e7 j/ m6 A' e/ U! g
    newk=a(1,;$ |6 o3 K  U" Q
    newh=a(2,;' t9 F: k" \" u; s1 k
    figure(2);! V1 H. C6 v& T/ m4 ]
    subplot(2,1,1);plot(x,newk,'r-o',x,glkyl,'b--+');
    . H0 d$ E5 o: o+ f- Hlegend('网络输出客运量','实际客运量');7 Y( B/ {$ h' \- D8 t' g
    xlabel('年份');ylabel('货运量、万人');
    ( q$ l* b% g2 dtitle('运用工具箱客运量学习和测试对比图');
    0 u* W/ {5 w0 G( O* msubplot(2,1,2);plot(x,newh,'r-o',x,glhyl,'b--+');9 i2 Q: b: ?% y3 m3 S& x3 A
    legend('网络输出货运量','实际货运量');7 n5 ~9 ]: \# _- X' G6 A
    xlabel('年份');ylabel('货运量、万吨');8 U% C( u4 \1 C. i) T& y$ e" h1 q
    title('运用工具箱货运量学习和测试对比图');# I# K7 D' ]  ?9 a$ Q

    # K: b+ B! Y4 |  J%新数据仿真" R: e5 [& P+ Q. F* F
    pnew=[73.39,75.555 N. G* ~4 u7 b+ z5 }  H& y; ]
        3.9635,4.0975( r% J" W! Z- K
        0.9880,1.0268];
    # Y  f7 ~$ }# }' n4 Tpnewn=tramnmx(pnew,minp,maxp);: j' g" s# [. j* V; \, d
    anewn=sim(net,pnewn);# \: N$ O" }- x8 L. x$ r( l0 K& F7 H4 ~
    anew=postmnmx(anewn,mint,maxt)

    0 t6 p: u2 i1 B: y0 M$ T5 j2 F5 Y2 l
    修改后程序为:
    & J9 }! f3 R& [% K%原始数据输入
    6 e  }7 l4 b: x1 }: Qclc, M. V: q# m9 A9 Y
    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,...4 \, b% z! j: _' H+ u5 l' r1 L6 \
        41.93,44.59,47.30,52.89,55.73,56.76,59.17,60.63];% g  `, G2 |" [+ Y. ]
    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,...
    ( Q, q% `$ u& Y    2.5,2.6,2.7,2.85,2.95,3.10];
    % g' p- M0 q! `7 e& l! V0 d' xsqglmj=[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,...
    " F. O! \. D7 w" ^1 X7 S3 A    0.56,0.59,0.59,0.67,0.69,0.79];5 ?. `" ]' U3 ~) h, ?7 q
    glkyl=[5126,6217,7730,9145,10460,11387,12353,15750,18304,19836,21024,19490,20433,...
    + y; `$ E2 @7 Z. u    22598,25107,33442,36836,40548,42927,43462];. v  B6 u6 ]8 P& X
    glhyl=[1237,1379,1385,1399,1663,1714,1834,4322,8132,8936,11099,11203,10524,11115,...
    , Q' L# A* h6 Y( N8 J/ b* Q    13320,16762,18673,20724,20803,21804];" b; R& h$ G' Q' r/ D
    p=[sqrs;sqjdcs;sqglmj];
    - d) L* s* Y+ T8 N0 q* ^) Et=[glkyl;glhyl];
    2 r$ M$ ~0 h2 e1 o2 f2 m0 m' k0 C( U- z" W7 _% a9 Y
    %数据归一化
    . {' Z3 G. v* l% x  l0 M  a' Q8 ]* h[pn,ps1]=mapminmax(p);
    % q3 P( z0 v/ J: u[tn,ps2]=mapminmax(t);* x2 E2 D( T; R1 H; N6 G
    6 Z8 {- D$ n" i$ V  V, E
    %BP网络训练
      G3 u+ l; ~1 O5 @net=newff(p,t,[3,7,2],{'tansig','tansig','purelin'},'traingdx');
    + F. z  e/ e, G' r% n# M, wnet.trainParam.show=1000;  {) |. V; C( y& |5 Y
    net.trainParam.Lr=0.05;
    2 l  \3 k+ M% ^6 u) [net.trainParam.epochs=50000;0 p& M( x! E# d+ v$ a. y5 X
    net.trainParam.goal=0.65*10^(-3);, N) f/ P* ~; w! q: {
    net=train(net,pn,tn);
    / a: F6 q% y" E, d8 ]5 k  }# U' v' r# m6 {
    %利用原数据对BP网络仿真
    4 c! [, Z1 n: w. Pan=sim(net,pn);
    8 b! o# {6 j+ Ia=mapminmax('reverse',an,ps2);
    9 c- B( m3 Y; U' k' U# d# m/ a" k4 ^8 H  c
    %仿真结果与原数据对比测试8 ^. j9 S$ T/ u3 w" u; \
    x=1990:2009;, g$ k8 C7 m, C! P! O- V+ `
    newk=a(1,;8 g, n# O6 A* q8 b1 N5 I
    newh=a(2,;. _! ^. R! g, z) `
    figure(2);
    7 ]; L4 V1 O5 n- ^6 n, c# Gsubplot(2,1,1);plot(x,newk,'r-o',x,glkyl,'b--+');* z2 d% [- q& a8 u
    legend('网络输出客运量','实际客运量');$ u1 H, O9 m/ j3 t* a
    xlabel('年份');ylabel('货运量、万人');0 Z4 w  f0 X! J7 h6 K. L
    title('运用工具箱客运量学习和测试对比图');4 @9 B/ T$ w- M1 A5 b: [" Y% f
    subplot(2,1,2);plot(x,newh,'r-o',x,glhyl,'b--+');
    0 b, l6 d2 d, `. dlegend('网络输出货运量','实际货运量');2 w( a, C% n, [
    xlabel('年份');ylabel('货运量、万吨');
    * a/ k- f0 I5 w2 \6 ?. x! r8 btitle('运用工具箱货运量学习和测试对比图');
    2 ^- Z. k% m% P: ^
    " ]1 ]4 L$ u; p' b' u$ I%新数据仿真5 l5 u7 A+ \. L1 o* ^: u% D
    pnew=[73.39,75.551 }9 }7 m1 k0 `! |* K" P$ j
        3.9635,4.0975
    - z" Y; A1 F7 N, f- a% K$ p& ]    0.9880,1.0268];
    4 v, m) \5 q( y; k  Ypnewn=mapminmax('apply',pnew,ps1);
    ' V2 `- R& f/ {- eanewn=sim(net,pnewn);
    ; g) _0 y% B7 h) N3 {9 janew=mapminmax('reverse',anewn,ps2)
    8 k. [2 q# P+ w& f(修改的地方用颜色标记了), f, G: ]8 n$ w, G4 ^6 ^  G
    麻烦您帮忙指出其中的问题,万分感谢!
    回复

    使用道具 举报

    且生        

    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; u8 t% k( @# g\" W; d
    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,...
      % h4 ?6 \5 g$ c$ j
    3.     41.93,44.59,47.30,52.89,55.73,56.76,59.17,60.63];
      . [& U  u% Z, g4 p) O4 V5 \
    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 ?# u2 B9 L- Q& N1 M
    5.     2.5,2.6,2.7,2.85,2.95,3.10];5 b8 r( l: n( v
    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,...
      3 N& c! r9 i. H% p
    7.     0.56,0.59,0.59,0.67,0.69,0.79];
      * A. G9 d9 i* z
    8. glkyl=[5126,6217,7730,9145,10460,11387,12353,15750,18304,19836,21024,19490,20433,...
      9 g  k' h7 J5 j' t! Z) R
    9.      22598,25107,33442,36836,40548,42927,43462];
      5 l$ M: r* |, A, {5 q
    10. glhyl=[1237,1379,1385,1399,1663,1714,1834,4322,8132,8936,11099,11203,10524,11115,...
      + X; D+ }8 G! U, S
    11.      13320,16762,18673,20724,20803,21804];& A8 t\" s; ]+ p: C
    12. p=[sqrs;sqjdcs;sqglmj];
      4 [\" _) W+ a* f; n: h. _7 T
    13. t=[glkyl;glhyl];
      & j. O& C  f& o# o$ d, F; u# U
    14. %数据归一化
        b# p! X) m2 h( H& [' b/ C2 W
    15. [pn,ps1]=mapminmax(p);6 y! G# J: S6 o  o( I9 h
    16. [tn,ps2]=mapminmax(t);
      9 H8 T0 k  N( m# V9 d
    17. %dx=[-1,1;-1,1;-1,1];& _1 t6 M& t. B/ d7 m4 V% ]
    18. [color=Red] p0=minmax(pn);t0=minmax(tn);[/color]( Y+ i0 F6 w9 w  T* V9 Y; P) v
    19. / t0 ^- {6 t' X. ~
    20. %BP网络训练
      & T: A) `, n9 Q- P\" P
    21. [color=Red] net=newff(p0,t0,[3,7,2],{'tansig','tansig','purelin'},'traingdx'); [/color]
      ( R/ ~+ e- K$ h$ }. ~
    22. net.trainParam.show=1000;/ c3 i3 [' t1 u+ S7 C' A3 X
    23. net.trainParam.Lr=0.05;0 r! {3 \\" `, W1 Y$ J
    24. net.trainParam.epochs=50000;- \' b. ]9 f2 o% t
    25. [color=Red] net.trainParam.goal=0.65*10^(-5);[/color]8 }- p; b9 `! L0 @: P
    26. net=train(net,pn,tn);
      \" _; {$ s, Y\" e

    27. / j/ D: N' Q) Y5 F1 d, C
    28. %利用原数据对BP网络仿真. g\" w6 M% }/ R/ T
    29. an=sim(net,pn);
      8 d% e/ Y1 V, |4 g! {3 {
    30. a=mapminmax('reverse',an,ps2);0 b+ y5 ?; s: C5 r1 F! P% A6 A
    31. ( A, Q7 t/ @2 D; @1 n* ~+ H8 P
    32. %仿真结果与原数据对比测试 - s7 t8 ^& _/ D2 `% J
    33. x=1990:2009;\" \# q6 B2 U/ I/ \  H
    34. newk=a(1,:);
      5 W\" f; p2 P4 V( W6 o/ S
    35. newh=a(2,:);
      0 ~. o' N0 n0 e* I( J
    36. figure(2);* Y7 N2 h0 L0 m- R; e3 O
    37. subplot(2,1,1);plot(x,newk,'r-o',x,glkyl,'b--+');
      : n' [3 J' M3 n$ r5 G4 I
    38. legend('网络输出客运量','实际客运量');
      , z$ k+ R: J: w' b9 i\" k
    39. xlabel('年份');ylabel('货运量、万人');2 Q0 p0 Y# Y) [1 S; ]! u% G! u1 j4 y; C
    40. title('运用工具箱客运量学习和测试对比图');
      9 W! x) B4 |: p% z/ Q0 b) `* D
    41. subplot(2,1,2);plot(x,newh,'r-o',x,glhyl,'b--+');
      + }. r! R- W5 Z( d
    42. legend('网络输出货运量','实际货运量');6 S/ e' z\" W/ O3 N
    43. xlabel('年份');ylabel('货运量、万吨');6 Q: P; M0 g/ F! m' W
    44. title('运用工具箱货运量学习和测试对比图');9 f& H6 a; Y9 ^( `) A$ y
    45. 1 K8 ]- `8 z, F! }
    46. %新数据仿真
      ; [4 o8 U\" V! x
    47. pnew=[73.39,75.554 i# r# |7 Z4 M% t+ ~
    48.      3.9635,4.0975' ?/ x7 K/ I0 a' s0 X
    49.      0.9880,1.0268];2 \) ]+ w8 e5 X  K. @
    50. pnewn=mapminmax('apply',pnew,ps1);
      8 W$ _# g3 b3 h) X, L
    51. anewn=sim(net,pnewn);5 ?% @0 p; l3 L
    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. clc. @( I$ A3 s$ R; |, [1 R- g
    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,...
      7 @7 E2 y2 K\" Z9 u0 X0 `% R
    3.     41.93,44.59,47.30,52.89,55.73,56.76,59.17,60.63];& r' U9 e. d) X6 Q* P) F
    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,...
      ' ]4 B# ^7 C+ x7 G
    5.     2.5,2.6,2.7,2.85,2.95,3.10];
      \" W4 \. m! K8 Y: x2 O/ \
    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,...
      2 p) O  ^5 s, @- r
    7.     0.56,0.59,0.59,0.67,0.69,0.79];
      & i% e) i9 r' O9 ?; X7 g
    8. glkyl=[5126,6217,7730,9145,10460,11387,12353,15750,18304,19836,21024,19490,20433,...
      * Z9 k% W5 i  @' v4 O
    9.      22598,25107,33442,36836,40548,42927,43462];
      5 E) O( D$ G3 b2 g- V/ I  _
    10. glhyl=[1237,1379,1385,1399,1663,1714,1834,4322,8132,8936,11099,11203,10524,11115,...
      5 h: O4 j5 h* P6 ~$ n0 `4 W
    11.      13320,16762,18673,20724,20803,21804];
      # T5 r5 u2 o+ V7 R' Z6 \8 e
    12. p=[sqrs;sqjdcs;sqglmj];
      3 z: J7 D8 P6 H) O\" o0 `
    13. t=[glkyl;glhyl];
      1 M9 \- H6 }5 w& m) Z7 U
    14. %数据归一化
      + [' Z5 D9 _3 s, k
    15. [pn,ps1]=mapminmax(p);
      1 g) X9 M$ ^  _
    16. [tn,ps2]=mapminmax(t);  O! i' U! F! q# ~* m
    17. %dx=[-1,1;-1,1;-1,1];
      * `7 ?' I7 v\" e8 H7 M  x
    18. p0=minmax(pn);t0=minmax(tn);
      ( `8 W! n( n1 l

    19. : Q8 G: L9 h( C  I  |
    20. %BP网络训练
      7 F& K$ X) M% w- p9 W/ I
    21. net=newff(p0,t0,[3,7,2],{'tansig','tansig','purelin'},'traingdx');
      0 A2 y/ [2 ?7 w$ Q
    22. net.trainParam.show=1000;
      + Z% Z9 ?0 [5 v1 |8 O0 b7 ~
    23. net.trainParam.Lr=0.05;# O4 c* o4 O9 F4 |$ z- {
    24. net.trainParam.epochs=50000;\" j$ R2 A7 q# C7 _* a$ x, e
    25. net.trainParam.goal=0.65*10^(-5);( w5 W+ G4 o\" o! ~
    26. net=train(net,pn,tn);
      , i1 y3 d! |/ W

    27. , X: F- [' t9 h: [
    28. %利用原数据对BP网络仿真
      + ?$ ~/ E# Z) n
    29. an=sim(net,pn);
      8 |3 [7 e) l9 _# A6 q. m
    30. a=mapminmax('reverse',an,ps2);( [( d, {; {8 ~2 y$ a: h) g

    31. , x# }5 T1 i5 z  R% k
    32. %仿真结果与原数据对比测试 8 B: o2 J5 H9 R! a* ~\" t
    33. x=1990:2009;! D/ [+ G3 L, {7 _
    34. newk=a(1,:);, h# s2 ?4 R' ^1 Y) x& q$ }
    35. newh=a(2,:);* l6 ^5 f5 B% N% ]
    36. figure(2);  o% y6 z! O$ l& n( G\" G
    37. subplot(2,1,1);plot(x,newk,'r-o',x,glkyl,'b--+');
      . L* B, @0 }/ r
    38. legend('网络输出客运量','实际客运量');, `. w1 h; z! G2 v
    39. xlabel('年份');ylabel('货运量、万人');
      ' U0 F9 g/ I5 s0 |* g: |0 l( z
    40. title('运用工具箱客运量学习和测试对比图');, _% \3 D* X\" g. e
    41. subplot(2,1,2);plot(x,newh,'r-o',x,glhyl,'b--+');$ V' o* W. i, K: ?; c* R3 g8 Y
    42. legend('网络输出货运量','实际货运量');
      \" b5 z! m$ J0 Q
    43. xlabel('年份');ylabel('货运量、万吨');, J; A% J8 b3 L+ l6 T
    44. title('运用工具箱货运量学习和测试对比图');
      $ v, J8 u5 Y  L! I/ b1 Y

    45. . _& _9 r- B! w6 a  Y% \$ g7 I% q
    46. %新数据仿真: Z' ^4 G/ E: Y9 w' {
    47. pnew=[73.39,75.55/ \8 M8 h% T) p8 x6 p
    48.      3.9635,4.09759 e, `2 D0 U* w& C! q1 b) n
    49.      0.9880,1.0268];; ]$ q$ g6 \\" o/ z
    50. pnewn=mapminmax('apply',pnew,ps1);) M% m: D6 q8 c; K4 Z  L% D7 ?
    51. anewn=sim(net,pnewn);# {/ b9 b3 r+ p) ]( `
    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
    3 V9 W+ X& ^( a忽略我上面那个,改动的地方在18,21,25行……求批

    / ~6 s; W9 x! _确实改善了很多,很是感谢。但效果还是不太理想,而且为何只学习了几十次就停了呢?即使我修改了目标精度。

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

    p1.jpg

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

    p2.jpg

    回复

    使用道具 举报

    且生        

    29

    主题

    9

    听众

    1500

    积分

    升级  50%

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

    [LV.9]以坛为家II

    社区QQ达人

    群组学术交流A

    群组学术交流B

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

    群组EXCEL

    1. %BP网络训练
      0 g, }0 h  B5 }# S
    2. net=newff(p0,t0,6,{'tansig'},'traingd');
      # r+ s( A7 {1 b# Z, Q3 h\" T$ E
    3. net.trainParam.show=1000;% w7 A# l, i/ R
    4. net.trainParam.Lr=0.05;3 \8 J6 D0 V2 c) i
    5. net.trainParam.epochs=2000;
      5 P  f  p( Z  Q, ?% v
    6. net.trainParam.goal=0.65*10^(-4);5 r$ U7 m; I9 k0 O
    7. net=train(net,pn,tn);
    复制代码
    我只改了这里面的,6 `  p( f. P3 ^; c& j/ t! F
    一、改成单隐含层的,6个节点( j6 z  ^; o- a' x! p+ c
    二、训练函数改成梯度下降BP算法 traingd  H5 [# M, z- @& K8 i2 c
    三、迭代次数改成2000
    4 x/ e& g8 L0 d) ?上面的参数是自己试的,我也不知道为什么。( M: h+ `3 H9 G8 Q$ m5 R
    由于这玩意儿比较不靠谱,楼主多运行几次就能找到拟合的比较好的网络。9 D: Q, _4 E$ H4 n/ L1 i7 c' i* K
    关键问题是有没有过拟合我也不知道,等大神来解答吧
    唉,无心学习啊,堕落了堕落了 ...
    回复

    使用道具 举报

    且生        

    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, 2026-6-4 01:23 , Processed in 0.588033 second(s), 103 queries .

    回顶部