- 积分
- 0
- 注册时间
- 2012-3-28
- 仿真币
-
- 最后登录
- 1970-1-1
|
程序入下:
P=[666 675 634 620 609 620 689 726 701 711 712 728 725 722 717 721 718 739 764 750 757 698 650 641;
669 659 633 623 628 607 667 718 754 726 741 739 749 746 736 726 740 765 744 734 741 714 647 645;
665 666 646 627 609 596 591 584 604 623 657 704 694 716 708 714 695 731 726 725 716 667 657 659;
622 650 621 598 583 575 556 537 545 578 632 659 647 641 651 648 628 635 673 690 702 649 623 613;
653 628 610 586 590 583 662 705 711 712 742 746 733 756 751 724 728 738 742 751 744 695 637 638];
T=[669 659 633 623 628 607 667 718 754 726 741 739 749 746 736 726 740 765 744 734 741 714 647 645;
665 666 646 627 609 596 591 584 604 623 657 704 694 716 708 714 695 731 726 725 716 667 657 659;
622 650 621 598 583 575 556 537 545 578 632 659 647 641 651 648 628 635 673 690 702 649 623 613;
653 628 610 586 590 583 662 705 711 712 742 746 733 756 751 724 728 738 742 751 744 695 637 638;
676 659 620 607 624 617 667 711 722 736 751 734 724 755 733 722 718 772 747 775 750 719 668 640];
% 创建一个新的前向神经网络
net_1=newff(minmax(P),[20,5],{'tansig','purelin'},'traingdm');
% 设置训练参数
net_1.trainParam.show = 50;
net_1.trainParam.lr = 0.05;
net_1.trainParam.mc = 0.9;
net_1.trainParam.epochs = 10000;
net_1.trainParam.goal = 0.01;
% 调用 TRAINGDM 算法训练 BP 网络
[net_1,tr]=train(net_1,P,T);
% 对 BP 网络进行仿真
A = sim(net_1,P);
% 计算仿真误差
E = T - A;
MSE=mse(E);
figure(1);
X=1:24;
plot(X,A,'r*',X,T,'bo');
title('o为真实值,*为预测值');
x=[645 665 658 617 628 628 677 721 733 730 739 727 725 733 731 714 734 739 753 773 743 697 650 654];
%测试
sim(net_1,x)
用matlab训练步数达到时误差极大。且显示出错,如下所示:
Error using network/sim (line 130)
Input 1 size does not match net.inputs{1}.size.
Error in BP3 (line 48)
sim(net_1,x)
请高人指点一下,谢谢
|
|