QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4954|回复: 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的版本,所以我修改了部分程序,但运行出来有问题。请哪位高手帮忙指教和修正一下。谢谢!!
    # L& O& A" T$ V; g' j( ^/ C
    6 G  c+ t  M2 W5 L%原始数据输入
    0 M- ], {7 H- `) e9 k" \clc* S- V3 r4 g8 E9 u! m9 v6 X
    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,.../ Q3 |) d5 p6 L2 [5 G
        41.93,44.59,47.30,52.89,55.73,56.76,59.17,60.63];
    ' D$ L# M* a9 L7 zsqjdcs=[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,...! D5 P# W; w+ F* e
        2.5,2.6,2.7,2.85,2.95,3.10];# f/ X) i# H+ t6 n, G, |
    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,...
      C2 ?4 T( }9 K, a    0.56,0.59,0.59,0.67,0.69,0.79];  z3 v+ D& q0 z( g* X! M8 b
    glkyl=[5126,6217,7730,9145,10460,11387,12353,15750,18304,19836,21024,19490,20433,...* s+ g, @' y2 i8 [- _+ z" \. Z
        22598,25107,33442,36836,40548,42927,43462];
    * B8 L3 n- q8 g6 A" U2 P! b1 i, zglhyl=[1237,1379,1385,1399,1663,1714,1834,4322,8132,8936,11099,11203,10524,11115,...
    8 `0 c  Q1 U( b. Q. {    13320,16762,18673,20724,20803,21804];
    1 ]. M/ O: o" y/ X6 Q7 d# y' Yp=[sqrs;sqjdcs;sqglmj];
    6 e6 l+ \) z8 `, tt=[glkyl;glhyl];
    6 m3 {6 j- m% @' S* H, d, P$ C/ \3 K; d7 I- M/ _
    %数据归一化/ m5 z5 E! }  N# m5 t- }: F
    [pn,ps1]=mapminmax(p);
    ; X3 L  p& H  v0 {( C; s# x' j[tn,ps2]=mapminmax(t);
    2 R4 e4 e8 D4 Ddx=[-1,1;-1,1;-1,1];
    8 ~1 ^7 T7 K+ F  c, g. I, J) u! j# B6 h5 e
    %BP网络训练; H) k8 A  ?" c/ C- g% `  C# S
    net=newff(p,t,[3,7,2],{'tansig','tansig','purelin'},'traingdx');
    , _# g0 v: c4 t+ \3 s, Hnet.trainParam.show=1000;
    0 c- j3 a6 r, z/ C8 Ynet.trainParam.Lr=0.05;% M" v% L: G9 ~+ |6 J) j+ ]
    net.trainParam.epochs=50000;
    1 O$ C+ h- c# ^& P  R' q9 Xnet.trainParam.goal=0.65*10^(-3);
    6 R' \4 V9 v" c1 n. \/ M- Ynet=train(net,pn,tn);) U+ q6 ?! c+ A; ]4 t& s1 e
    2 J/ _/ L* ]8 ?  I
    %利用原数据对BP网络仿真4 p" i' I* [. M$ K7 u
    an=sim(net,pn);
    % F1 M* o/ h+ X: k: ua=mapminmax('reverse',an,ps2);" N3 P/ Q" P8 E! F

    + |$ d, I/ ?: z. l%仿真结果与原数据对比测试5 a- i1 B9 x( F+ ~
    x=1990:2009;( s( a1 P& P1 e- s
    newk=a(1,:);) o: U# @8 N& o
    newh=a(2,:);
    # e  d: [3 T7 L! }3 sfigure(2);
    ; q, @5 `! [2 X, \7 M! W) }% r! Fsubplot(2,1,1);plot(x,newk,'r-o',x,glkyl,'b--+');8 V+ c" z. D, e
    legend('网络输出客运量','实际客运量');( g; Y& o$ f2 V
    xlabel('年份');ylabel('货运量、万人');
    2 L: y' y3 A9 I9 Q( i  Mtitle('运用工具箱客运量学习和测试对比图');# M9 a/ m" `# ~1 {/ g5 ^
    subplot(2,1,2);plot(x,newh,'r-o',x,glhyl,'b--+');
    + ^) z. G8 ]7 I/ Z. B3 mlegend('网络输出货运量','实际货运量');
      g& a. y. d0 q% V+ @xlabel('年份');ylabel('货运量、万吨');8 \& A5 _. A1 w3 N( X
    title('运用工具箱货运量学习和测试对比图');
    ( s' M4 k: ]5 |; _, J, b! @
    & W. O) C  q7 R4 h%新数据仿真
    , ^# o$ Z- d- e! ~" R4 fpnew=[73.39,75.55( W+ }" {  A# T: i0 T  L2 K3 Q
        3.9635,4.0975
    $ h% ~  Z5 K- S$ W& A    0.9880,1.0268];
    , {: ~6 G" V: o3 Lpnewn=mapminmax('apply',pnew,ps1);* ~3 ~* E! N4 g8 p
    anewn=sim(net,pnewn);" F, e) n* a9 `) E6 \( b
    anew=mapminmax('reverse',anewn,ps2)
    0 ^6 O# b& q5 |' H6 \6 M3 m- t1 ?) }- f$ Y# G, Q

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

    `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 1 G9 S  {$ t$ K% ^# }8 T
    看了图我感觉是网络输出后面那几个值太大了,前面基本都是一条水平线了,具体哪里还看不出问题。你把修改的 ...

    5 Y, l8 b% `% K: [因为版本更新,Matlab中的Newff命令用法有所改变,原命令为:- @' B( R2 H& x0 I
    net=newff(dx,[3,7,2]{'tansig','tansig','purelin'},'traingdx');0 }- ?# ^. u& `$ s4 K
    我修改为:
    : F4 n2 a4 X! k" O9 z. o1 Unet=newff(p,t,[3,7,2],{'tansig','tansig','purelin'},'traingdx');
    * b* n+ L- ]4 ~* c4 K然后有些命令被其他命令替代了,其中有premnmx,postmnmx,tramnmx命令好像被替换了,使用了一个强大的命令mapminmax。原命令为:9 {/ |* v, a# r; x
    [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);
    3 H2 v; m$ m5 M6 [4 ja=postmnmx(an,mint,maxt);
    + {& T# U+ b8 P  A0 p; q. apnewn=tramnmx(pnew,minp,maxp);7 K6 P, P( U( k) r! m1 @  }
    anew=postmnmx(anewn,mint,maxt)! \  F9 m/ }/ n0 {9 P$ o
    我修改为:
    + D$ t! c0 R" \/ h. ~! }[pn,ps1]=mapminmax(p);[tn,ps2]=mapminmax(t);1 W8 a% N. {. s$ ~4 j
    a=mapminmax('reverse',an,ps2);) E' Q7 h; n2 `: b3 [  a1 W  h
    pnewn=mapminmax('apply',pnew,ps1);
    2 e% b6 D# ^/ v' O+ Y3 g/ Sanew=mapminmax('reverse',anewn,ps2)
    ) u& I3 A$ p7 U; x5 C# z  ~; y. \8 c: h. }" f
    原程序为:# f- v$ }: Q6 I3 l  W3 A
    %原始数据输入4 `% K+ \; \4 `; o9 k
    clc' ~2 H; t" X# ~% Q8 s8 s" D
    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 m; ^* C3 S: u7 `2 v& W* _. e3 M
        41.93,44.59,47.30,52.89,55.73,56.76,59.17,60.63];7 D  r0 ?! r/ i" k; {5 d. F3 h; F# ^5 n2 k
    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,...6 B) a  G' ]& N0 l+ F
        2.5,2.6,2.7,2.85,2.95,3.10];- u1 m9 D9 g" n% ~0 Q
    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,...
    6 m- S7 I/ e/ D3 T. d* g% \    0.56,0.59,0.59,0.67,0.69,0.79];
    - E% d; ?2 `: G# a$ E7 f; k5 H; Fglkyl=[5126,6217,7730,9145,10460,11387,12353,15750,18304,19836,21024,19490,20433,...
    7 Y) }7 e6 g/ Z: ]0 f3 |' n7 O    22598,25107,33442,36836,40548,42927,43462];
    ( J; J; M$ l* \" `  m) e6 i' `glhyl=[1237,1379,1385,1399,1663,1714,1834,4322,8132,8936,11099,11203,10524,11115,...
    % [( p, U- G2 n( f5 E. a2 d    13320,16762,18673,20724,20803,21804];
    - X% }* v0 `; T4 H& _+ op=[sqrs;sqjdcs;sqglmj];: m1 n! \- X% Q/ A2 W- @3 p
    t=[glkyl;glhyl];
    ! Z4 B* C( x2 k2 S4 ?! e. ]8 g8 N9 i, Q4 i* `
    %数据归一化
    & Z! T+ b' D! D/ E. U[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);
    ( O: Q% i' H5 p& Q- Fdx=[-1,1;-1,1;-1,1];
    # n' }& p6 Z" Q3 Q7 }8 y

    8 j( ~) P  r/ U%BP网络训练: J! o7 F  ?1 J" }* G# l# Z
    net=newff(dx,[3,7,2],{'tansig','tansig','purelin'},'traingdx');
    ) T! X+ u/ H. [0 R6 s" Gnet.trainParam.show=1000;
    / e6 h( V8 B+ nnet.trainParam.Lr=0.05;/ h; P. ?4 B+ n9 B
    net.trainParam.epochs=50000;
    & R# ^1 x; E( f  g4 f  [net.trainParam.goal=0.65*10^(-3);
    ' @- Y: b  J# _net=train(net,pn,tn);
    ) B  |7 f) o" h$ I8 a! C% ~5 j$ \: j5 i* M
    %利用原数据对BP网络仿真
    5 u) b7 k, n/ N9 h6 Kan=sim(net,pn);4 I1 t% N( v3 ]. n, Z9 D. W9 {
    a=postmnmx(an,mint,maxt);
    6 L2 f# y+ C. [) l! F0 Q( h- V# f% p4 U, R9 d+ j- h- H8 j4 d
    %仿真结果与原数据对比测试
    $ D  `+ m* I2 M' \4 _x=1990:2009;8 J1 O' x3 I. B- Z: a
    newk=a(1,;  V- l) y0 P1 h$ v0 ?
    newh=a(2,;
    : |  O" q/ k* n' ]; {figure(2);
    ) `4 I5 I. {/ q( B# `0 J% ysubplot(2,1,1);plot(x,newk,'r-o',x,glkyl,'b--+');8 j$ N6 ~; a: E* q# U6 F
    legend('网络输出客运量','实际客运量');) s. a9 }; {; z
    xlabel('年份');ylabel('货运量、万人');
    ) u" X4 ^" P: m9 z3 {) a4 r$ dtitle('运用工具箱客运量学习和测试对比图');
    ) [* w& t; e  E. @subplot(2,1,2);plot(x,newh,'r-o',x,glhyl,'b--+');+ F% |; I& c7 i1 u1 x$ f1 e
    legend('网络输出货运量','实际货运量');* P0 l+ D0 ~4 D& [5 ~( M) \7 [: W3 q
    xlabel('年份');ylabel('货运量、万吨');' Z: I8 c9 v2 W6 q# {
    title('运用工具箱货运量学习和测试对比图');" l% v; M% u  W$ V

    8 c( ^7 j, f- s%新数据仿真5 P9 F% _# D& ^% W7 g9 c
    pnew=[73.39,75.55
    % ^6 [6 M. B# t: z2 N1 D    3.9635,4.0975
    8 W* o$ \! M9 `3 s3 z    0.9880,1.0268];8 }4 D1 h) Z) k, l& k3 T1 U
    pnewn=tramnmx(pnew,minp,maxp);* G5 s6 W( P* ?5 e- _
    anewn=sim(net,pnewn);
    % z& a6 t, |$ hanew=postmnmx(anewn,mint,maxt)
    ( E2 q! s: V! x  n: C8 b

    1 h9 j* q* N0 C5 b5 c, y修改后程序为:
    6 V6 I5 [7 j; a8 F. o%原始数据输入
    - H; x! j3 S) w, t- H. X& c# Dclc
    * w" K' T3 h/ ], v, {; y" K, tsqrs=[20.55,22.44,25.73,27.13,29.45,30.1,30.96,34.06,36.42,38.09,39.13,39.99,...
    2 T! e; i  n. ]3 B' {$ q1 N. O6 q    41.93,44.59,47.30,52.89,55.73,56.76,59.17,60.63];
    ) ]3 b) N" B4 J& P5 y! o7 o8 O9 wsqjdcs=[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 N# G& r, S( p: {3 ^7 f, I$ p, p/ f
        2.5,2.6,2.7,2.85,2.95,3.10];
    % D' V: F# _/ _; K) Nsqglmj=[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,...
    ( \; S' B; q0 |* n0 K( Q# B, Z    0.56,0.59,0.59,0.67,0.69,0.79];- p: r: ~7 [' Y2 v1 Z% N6 g& M" t
    glkyl=[5126,6217,7730,9145,10460,11387,12353,15750,18304,19836,21024,19490,20433,...1 x( q3 k7 m4 O' T* O7 Q
        22598,25107,33442,36836,40548,42927,43462];$ E/ l' M. h* H7 V. m
    glhyl=[1237,1379,1385,1399,1663,1714,1834,4322,8132,8936,11099,11203,10524,11115,...
    7 K( m- R" L+ m, B% n+ k! p    13320,16762,18673,20724,20803,21804];) {+ o4 w! k3 o
    p=[sqrs;sqjdcs;sqglmj];
    ( E0 S- p% w. f( kt=[glkyl;glhyl];
    / X; o  D# f4 Y2 s4 ?0 o+ u( n/ V
    + ?! b+ K. e- l" Y2 L7 [%数据归一化
      A& L+ t$ v+ T[pn,ps1]=mapminmax(p);8 J+ u1 h; ?* I2 Q) k, o( _
    [tn,ps2]=mapminmax(t);
    ) e1 l3 B' q) ^( k* N: e3 k. L
    9 |! B7 H8 d3 O: T%BP网络训练  g2 m  S* q' D
    net=newff(p,t,[3,7,2],{'tansig','tansig','purelin'},'traingdx');( e; I( Y, t& W8 G) z6 c% s
    net.trainParam.show=1000;
    ; h! N. a7 y0 x: Tnet.trainParam.Lr=0.05;
    8 J" |5 T; [: ?: k) k1 [net.trainParam.epochs=50000;% Q3 B2 M6 g. E; }- {8 A9 Z/ `/ o
    net.trainParam.goal=0.65*10^(-3);) j6 D- r- H0 S- Q  r
    net=train(net,pn,tn);
    # C0 w2 _! _  h% P1 _) `5 Y- @; a) A* A1 J% w
    %利用原数据对BP网络仿真" @# r. \5 b1 o+ t) v/ r
    an=sim(net,pn);
    ; }% l9 C0 ^3 Ia=mapminmax('reverse',an,ps2);
    8 B; ~( K4 k; `, r( u( |3 l
    , ^3 P9 ]9 k, n" x& l%仿真结果与原数据对比测试
    ( H- g5 \9 A0 X' G; T3 e9 Xx=1990:2009;4 w6 Y+ f" E# ~$ b/ i/ L
    newk=a(1,;
    2 e9 g/ ^$ q; \) m, ynewh=a(2,;
    9 I4 {: ~5 ]4 Ufigure(2);/ x0 z! _2 ]" m! C0 W
    subplot(2,1,1);plot(x,newk,'r-o',x,glkyl,'b--+');9 `* x" Y4 S& P0 k
    legend('网络输出客运量','实际客运量');# v9 z5 J0 _7 z5 p1 m- a0 x
    xlabel('年份');ylabel('货运量、万人');  ]( X* m  g8 ?4 }1 Q
    title('运用工具箱客运量学习和测试对比图');
    : J2 y8 u9 K# y' ]subplot(2,1,2);plot(x,newh,'r-o',x,glhyl,'b--+');+ Q* s* i! x" c' K
    legend('网络输出货运量','实际货运量');
    + d% W: U  Z! s3 v( pxlabel('年份');ylabel('货运量、万吨');
    3 M4 ], k' \# N; H; atitle('运用工具箱货运量学习和测试对比图');9 n+ T# R2 R3 W7 w& U$ M+ {! L

    1 A# `: ^6 u& M3 ^9 s! P4 M+ o%新数据仿真
    8 I  N- m. q) Z" \3 d6 Wpnew=[73.39,75.552 M( O- m) U# ~1 \
        3.9635,4.0975
    # C, o8 m% ^+ b! L    0.9880,1.0268];2 s, l! a/ H$ l; N$ V
    pnewn=mapminmax('apply',pnew,ps1);0 ]( J* R1 p3 e
    anewn=sim(net,pnewn);- [+ M8 Q+ t0 {. m
    anew=mapminmax('reverse',anewn,ps2)- h8 Z, o4 j0 ^% e5 g7 R8 G
    (修改的地方用颜色标记了)
    6 ?  K5 ?8 Z5 i麻烦您帮忙指出其中的问题,万分感谢!
    回复

    使用道具 举报

    且生        

    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; N% n\" D9 @; b: p
    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: {9 v& K% \- R# }7 e7 O
    3.     41.93,44.59,47.30,52.89,55.73,56.76,59.17,60.63];
      . W0 L/ X* v0 n1 E* p) b2 _7 h6 c
    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,...
      3 y3 ?5 v: J6 Q8 e/ O6 a
    5.     2.5,2.6,2.7,2.85,2.95,3.10];
      , A; _! L6 ^& ?$ h7 X
    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,...
      . K+ s2 y  C) {+ Q. I, H
    7.     0.56,0.59,0.59,0.67,0.69,0.79];/ ?7 o5 i\" M5 V
    8. glkyl=[5126,6217,7730,9145,10460,11387,12353,15750,18304,19836,21024,19490,20433,...  E& i- Q* p* `% v! m# ?
    9.      22598,25107,33442,36836,40548,42927,43462];
      7 _1 E( q6 o: k0 W$ P& K7 N4 E
    10. glhyl=[1237,1379,1385,1399,1663,1714,1834,4322,8132,8936,11099,11203,10524,11115,...4 K\" S3 V$ P% G( z4 \
    11.      13320,16762,18673,20724,20803,21804];
      / c1 C0 m& z8 J4 f# q, e7 H
    12. p=[sqrs;sqjdcs;sqglmj];
      2 I5 i1 b: c% W* H6 W# U0 h
    13. t=[glkyl;glhyl];
      7 r2 |/ L: `4 W% T9 o% K. `( |4 c  k
    14. %数据归一化
      0 J7 p- m( Z( }, `2 i
    15. [pn,ps1]=mapminmax(p);
      9 z4 B# \\" E\" n0 U; U
    16. [tn,ps2]=mapminmax(t);
      5 ^. p\" s9 l6 a- D& s$ w
    17. %dx=[-1,1;-1,1;-1,1];
      4 x* ^  d# b; [6 }# m2 ?( [- @+ f
    18. [color=Red] p0=minmax(pn);t0=minmax(tn);[/color]6 {4 A' O/ ]% V

    19. ! V1 C7 C9 ~/ o6 R8 R7 B
    20. %BP网络训练! |3 r  y) ]* }. ?+ g
    21. [color=Red] net=newff(p0,t0,[3,7,2],{'tansig','tansig','purelin'},'traingdx'); [/color]
      ( k6 q1 K4 e9 w3 `0 A\" }
    22. net.trainParam.show=1000;+ k  [8 f2 {& s5 N7 J0 m
    23. net.trainParam.Lr=0.05;
        J6 f3 f4 {6 k
    24. net.trainParam.epochs=50000;$ R8 y( Z) [/ n: C
    25. [color=Red] net.trainParam.goal=0.65*10^(-5);[/color]: D7 y1 i6 l! w7 V$ Z6 N
    26. net=train(net,pn,tn);+ b+ X5 R: ?! [

    27. 9 X\" w4 U* r) ^9 F4 w
    28. %利用原数据对BP网络仿真
      , p9 J' P$ C# w( F. r; p
    29. an=sim(net,pn);
      7 x- n2 c) h\" [, i
    30. a=mapminmax('reverse',an,ps2);
      : V, r! P9 n4 _& p4 S; Q  k, ^

    31. 3 Q/ m/ P' {9 T3 G' c( \! j6 x. I
    32. %仿真结果与原数据对比测试
      ( E' T0 g! z7 r) _7 z9 j1 a
    33. x=1990:2009;) J9 P2 z( p! |. l: q$ f1 u, U1 J; }
    34. newk=a(1,:);
      ! T. i! I2 g( Z, t2 m2 r; M4 h
    35. newh=a(2,:);
      ; s( q. Y0 N) I/ _1 R
    36. figure(2);7 v0 b1 U& \/ [4 s4 |. A6 z
    37. subplot(2,1,1);plot(x,newk,'r-o',x,glkyl,'b--+');9 `( h7 W7 G+ g8 j7 o- ^; o8 W6 o
    38. legend('网络输出客运量','实际客运量');
      ) h: F/ l* P/ S: k
    39. xlabel('年份');ylabel('货运量、万人');
      $ [\" T+ Z+ Y  r- |5 S6 ^4 v
    40. title('运用工具箱客运量学习和测试对比图');$ E\" M/ D, a! w* G2 T
    41. subplot(2,1,2);plot(x,newh,'r-o',x,glhyl,'b--+');2 Z1 U, R9 u  }( l
    42. legend('网络输出货运量','实际货运量');
      3 _\" }0 V( `) L) j0 j0 H
    43. xlabel('年份');ylabel('货运量、万吨');
      8 \: w9 s4 k! c# c$ Q
    44. title('运用工具箱货运量学习和测试对比图');
      . q6 ?' h% {\" I( }1 s# U
    45. ( @' r! [- v3 a
    46. %新数据仿真8 R9 H( [  x/ J
    47. pnew=[73.39,75.55; F5 k8 _& Z: {: N4 T* R
    48.      3.9635,4.0975' _  T0 N3 D/ w1 E$ Q# x$ K2 s
    49.      0.9880,1.0268];+ L! @; v' t* e1 ^
    50. pnewn=mapminmax('apply',pnew,ps1);) t, G3 `9 Z) X/ l- `, G
    51. anewn=sim(net,pnewn);4 Q\" J* J! ^8 x0 n, Z
    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
      7 ~7 U2 E- e: p; O0 F
    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,...
      5 o/ I% N# a$ I8 v7 G( W
    3.     41.93,44.59,47.30,52.89,55.73,56.76,59.17,60.63];
      8 u2 q0 b- [\" R3 h  b& e& l7 q
    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,...( h: V+ M& _8 x1 _: ~
    5.     2.5,2.6,2.7,2.85,2.95,3.10];! p( r8 X3 h\" h
    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,...
      * ?) a9 X2 Z$ @0 l3 f
    7.     0.56,0.59,0.59,0.67,0.69,0.79];
      ' Q# Y6 q- U1 N: q/ y
    8. glkyl=[5126,6217,7730,9145,10460,11387,12353,15750,18304,19836,21024,19490,20433,...+ {, v# |  p* G; ]
    9.      22598,25107,33442,36836,40548,42927,43462];
      ( I' C3 C/ A& M& S
    10. glhyl=[1237,1379,1385,1399,1663,1714,1834,4322,8132,8936,11099,11203,10524,11115,...
      & Q4 q+ j  A$ X\" O
    11.      13320,16762,18673,20724,20803,21804];
      # m  o  _; u8 k$ U+ f, m
    12. p=[sqrs;sqjdcs;sqglmj];
      * R8 g; n. H1 u: F9 X& V  G
    13. t=[glkyl;glhyl];- O+ ]1 E% G. ]$ U2 I5 I
    14. %数据归一化. y7 A) e0 O) f0 f
    15. [pn,ps1]=mapminmax(p);- a( l5 t# ?/ I( x
    16. [tn,ps2]=mapminmax(t);) B3 g+ k7 f! W- C
    17. %dx=[-1,1;-1,1;-1,1];
      \" h, x1 ~% f& b! W1 i% g
    18. p0=minmax(pn);t0=minmax(tn);8 m8 G2 t5 X$ ~( {. s+ b! h; \7 f! u
    19. / f( C, F9 U/ ^; |2 ^+ `
    20. %BP网络训练9 W$ V$ U7 T, t2 w* Z# m* R! q8 m
    21. net=newff(p0,t0,[3,7,2],{'tansig','tansig','purelin'},'traingdx'); ! T1 s# C$ W* {2 B4 Q5 P3 g% d5 [$ J
    22. net.trainParam.show=1000;0 n1 b) R/ k4 ^! [
    23. net.trainParam.Lr=0.05;$ F  B+ y  t) D( H% i( v# t
    24. net.trainParam.epochs=50000;
      # i) U2 E8 G$ G
    25. net.trainParam.goal=0.65*10^(-5);  ]( j, u. S7 K) B( t! k
    26. net=train(net,pn,tn);( Z5 W) Z% ^! Y+ Q: G/ u. V' u

    27. ; {0 O( }0 k7 L) u, e* b
    28. %利用原数据对BP网络仿真
      4 i% `3 z. m& c6 o
    29. an=sim(net,pn);, k; _  Z/ j1 ]1 P
    30. a=mapminmax('reverse',an,ps2);5 q. Y( E% |/ }5 j\" h2 {, [- B4 W
    31. 3 I  ~* g8 V8 V! `! X8 x
    32. %仿真结果与原数据对比测试
      : h+ h5 S5 o+ N8 j7 N9 B
    33. x=1990:2009;# @* [: r6 F3 P+ L+ W! G- z\" l2 L
    34. newk=a(1,:);( M5 \+ P' V7 X! n* k6 l9 z
    35. newh=a(2,:);
      4 R, K4 W\" F( k* E. S
    36. figure(2);0 }+ L: O7 d, g% P( ]% j
    37. subplot(2,1,1);plot(x,newk,'r-o',x,glkyl,'b--+');
      4 b3 F4 [\" e; L
    38. legend('网络输出客运量','实际客运量');
      ' c6 P# ?' I3 P3 P4 G. }
    39. xlabel('年份');ylabel('货运量、万人');# \4 N6 E3 }8 `\" U: Q' x
    40. title('运用工具箱客运量学习和测试对比图');
      , Y6 u3 T5 c) e9 c
    41. subplot(2,1,2);plot(x,newh,'r-o',x,glhyl,'b--+');
      / R) `\" J0 u' m3 Q
    42. legend('网络输出货运量','实际货运量');
      & H: Q, C( m\" {3 `6 R# e$ P
    43. xlabel('年份');ylabel('货运量、万吨');
      0 `7 {$ Z$ R! P8 t0 d8 \+ D
    44. title('运用工具箱货运量学习和测试对比图');
      2 {. S! ]5 Z! K3 [
    45. - B( {3 `9 m4 p+ g2 }
    46. %新数据仿真
      # B4 Q  t# h5 g/ w; N, f* e& M
    47. pnew=[73.39,75.55  x- i9 s0 a, ]! Y  D# h\" t( v5 S
    48.      3.9635,4.0975
      ; G- \8 G. a* N, W3 e$ ?$ L
    49.      0.9880,1.0268];/ L  ]\" K\" a- t6 N* ^
    50. pnewn=mapminmax('apply',pnew,ps1);
        m7 Z: N4 V3 F6 q% K8 W
    51. anewn=sim(net,pnewn);( S4 F3 a6 F% N2 ]& y+ h2 W
    52. anew=mapminmax('reverse',anewn,ps2)
    复制代码
    唉,无心学习啊,堕落了堕落了 ...
    回复

    使用道具 举报

    T-Eric        

    5

    主题

    14

    听众

    259

    积分

    升级  79.5%

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

    [LV.6]常住居民II

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

    社区QQ达人

    且生 发表于 2014-7-21 18:22 " w0 S% X4 R/ X1 a
    忽略我上面那个,改动的地方在18,21,25行……求批

    4 I" X" P+ _9 A) q# g确实改善了很多,很是感谢。但效果还是不太理想,而且为何只学习了几十次就停了呢?即使我修改了目标精度。

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

    p1.jpg

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

    p2.jpg

    回复

    使用道具 举报

    且生        

    29

    主题

    9

    听众

    1500

    积分

    升级  50%

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

    [LV.9]以坛为家II

    社区QQ达人

    群组学术交流A

    群组学术交流B

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

    群组EXCEL

    1. %BP网络训练3 \+ V1 B7 \% }\" u
    2. net=newff(p0,t0,6,{'tansig'},'traingd');
      0 j\" I0 e1 z9 K1 y
    3. net.trainParam.show=1000;
      : |6 r9 t) t, o7 W- a
    4. net.trainParam.Lr=0.05;2 t5 b$ T( S/ K; {
    5. net.trainParam.epochs=2000;. D( }1 T8 F7 r9 ^  x  X
    6. net.trainParam.goal=0.65*10^(-4);- z% F2 V4 F$ ]: E- u' i7 \
    7. net=train(net,pn,tn);
    复制代码
    我只改了这里面的,
    & ~) {7 X2 G, w* L5 W9 ~- U3 x一、改成单隐含层的,6个节点
    3 v2 t' `- J% Y, ]: W  Q$ ]3 v! n二、训练函数改成梯度下降BP算法 traingd
    ; {, K' i5 f% o+ r2 I- U三、迭代次数改成2000
    ! S$ W" g" l& [  {9 s' H上面的参数是自己试的,我也不知道为什么。
    , a$ h* l) i& N: U' l6 ]由于这玩意儿比较不靠谱,楼主多运行几次就能找到拟合的比较好的网络。
    / _! O1 P, l* G- |, k: E关键问题是有没有过拟合我也不知道,等大神来解答吧
    唉,无心学习啊,堕落了堕落了 ...
    回复

    使用道具 举报

    且生        

    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-9-11 03:28 , Processed in 1.602584 second(s), 111 queries .

    回顶部