📄 ryubao.m
字号:
%NEWFF---生成一个新的前向神经网络
% TRAIN---对BP神经网络进行训练
% SIM---对BP神经网络进行仿真
%敲任意键开始
pause
%定义训练样本
%P为输入矢量
P=[ 0
.014253
-.000083
-.004412
-.01873
-.023038
.082662
.068372
.084091
.04982
.045558
.041305
.037062
.032828
.048603
.024388
.030181
.035984
.041796
.037618
-.006553
-.010713
.015135
-.129007
-.13314
-.117265
-.12138
-.125486
-.149584
-.113672
-.117751
-.121823
-.135883
-.139937
-.07398
-.078016
.087959
.09394
.069933
.085932
.081941
.107959
.083985
.090019
.086064
.092116
.018176
.034247
]'
T=[2.0
1.97
1.98
1.98
1.99
1.99
1.88
1.89
1.87
1.9
1.9
1.9
1.9
1.9
1.88
1.9
1.89
1.88
1.87
1.87
1.91
1.91
1.88
2.02
2.02
2.0
2.0
2.0
2.02
1.98
1.98
1.98
1.99
1.99
1.92
1.92
1.75
1.74
1.76
1.74
1.74
1.71
1.73
1.72
1.72
1.71
1.78
1.76
]'
tmin=min(T)
tmax=max(T)
T1=0.8*[(T-tmin)/(tmax-tmin)]+0.1
pause;
clc
%创建一个新的前向神经网络
net=newff(minmax(P),[12,1],{'tansig','purelin'},'trainlm');
%当前输入层权值和阈值
inputWeights=net.IW{1,1}
inputbias=net.b{1}
%当前网络层权值和阈值
layerWeights=net.LW{2,1}
layerbias=net.b{2}
pause;
%网络初始化
net=init(net)
%设置训练参数
net.trainParam.show=50;
net.trainParam.lr=0.35;
net.trainParam.mc=0.75;
net.trainParam.epochs=10000;
net.trainParam.goal=0.001;
pause
clc
%调用TRAINRP算法训练BP网络
[net,tr]=train(net,P,T)
pause
%对BP网络进行仿真
A=sim(net,P)
%计算仿真误差
E=T-A
MSE=mse(E)
pause
echo off
figure
%以运行时间为横坐标,画出目标矢量和仿真输出的变化曲线
h=[0:12:564];
plot(h,T,'b<',h,A,'r*')
title('最小二乘支持向量机的烧结矿碱度预测');
xlabel('时间(单位:小时)');
ylabel('烧结矿碱度(倍数)');
legend('化验实际值','预测值')
figure
plot(h,E,'r*')
title('最小二乘支持向量机烧结矿碱度误差信号');
xlabel('时间(单位:小时)');
ylabel('绝对误差')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -