导航:首页 > 源码编译 > bp算法matlab程序

bp算法matlab程序

发布时间:2022-04-23 18:32:34

1. 如何用matlab编写BP神经网络程序

matlab编写BP神经网络很方便的,这个工作不用像编程序的C什么的那样还要编写算法。这个算法早已经在软件的库里提供了。你只要用一条语句就出来了。把参数,深度和节点固定的往里一代数就可以了。还有一点,注意最后结果的收敛性,神经网络发展一直是曲折前进的,为什么这样,现在不太给力,因为面临着一个收敛的问题,实现起来效果不好。这些程序网上有很多,你借一本基本的神经网络的书里面也有。望采纳。

2. 下图用matlab怎么编bp算法代码

%读取训练数据
[f1,f2,f3,f4,class] = textread('trainData.txt' , '%f%f%f%f%f',150);
%特征值归一化
[input,minI,maxI] = premnmx( [f1 , f2 , f3 , f4 ]') ;
%构造输出矩阵
s = length( class) ;
output = zeros( s , 3 ) ;
for i = 1 : s
output( i , class( i ) ) = 1 ;
end
%创建神经网络
net = newff( minmax(input) , [10 3] , { 'logsig' 'purelin' } , 'traingdx' ) ;
%设置训练参数
net.trainparam.show = 50 ;
net.trainparam.epochs = 500 ;
net.trainparam.goal = 0.01 ;
net.trainParam.lr = 0.01 ;
%开始训练
net = train( net, input , output' ) ;
%读取测试数据
[t1 t2 t3 t4 c] = textread('testData.txt' , '%f%f%f%f%f',150);
%测试数据归一化
testInput = tramnmx ( [t1,t2,t3,t4]' , minI, maxI ) ;
%仿真
Y = sim( net , testInput )
%统计识别正确率
[s1 , s2] = size( Y ) ;
hitNum = 0 ;
for i = 1 : s2
[m , Index] = max( Y( : , i ) ) ;
if( Index == c(i) )
hitNum = hitNum + 1 ;
end
end
sprintf('识别率是 %3.3f%%',100 * hitNum / s2 )

看了你的数据,你至少要有的类标号吧,不知道你哪里是输入向量,哪里是输出向量

3. matlab BP神经网络训练程序求解释

楼主解决没?这是我知道的

[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); %归一化数据,方便后面的预测

net.trainParam. show = 100; %这里的show是显示步数,每100步显示一次
net.trainParam.goal=0.0001; %目标误差,训练得到的数据和原始输入
net.trainParam.lr = 0.01; %lr是学习动量,一般越小越好
y1=sim(net,pn); %sim用来预测的

xlswrite('testdata6',tnew1); ?这里的testdata6是excel表格的名称

你可以看看书的,书上都有介绍

4. matlab程序 BP神经网络预测 程序如下:

P=[。。。];输入T=[。。。];输出

% 创建一个新的前向神经网络
net_1=newff(minmax(P),[10,1],,'traingdm')

% 当前输入层权值和阈值
inputWeights=net_1.IW
inputbias=net_1.b
% 当前网络层权值和阈值
layerWeights=net_1.LW
layerbias=net_1.b

应该没问题吧。

5. BP算法在一个matlab程序中可以区分几类数据

在BP分类中,输出神经元的个数理论上是没有限制的,就是说你分几类都是可以的。

6. 用Matlab算BP神经网络的具体算法

BP神经网络的传递函数一般采用sigmiod函数,学习算法一般采用最小梯度下降法;下面是具体的程序例子:
例1 采用动量梯度下降算法训练 BP 网络。
训练样本定义如下:
输入矢量为
p =[-1 -2 3 1
-1 1 5 -3]
目标矢量为 t = [-1 -1 1 1]
解:本例的 MATLAB 程序如下:

close all
clear
echo on
clc
% NEWFF——生成一个新的前向神经网络
% TRAIN——对 BP 神经网络进行训练
% SIM——对 BP 神经网络进行仿真
pause
% 敲任意键开始
clc
% 定义训练样本
% P 为输入矢量
P=[-1, -2, 3, 1; -1, 1, 5, -3];
% T 为目标矢量
T=[-1, -1, 1, 1];
pause;
clc
% 创建一个新的前向神经网络
net=newff(minmax(P),[3,1],{'tansig','purelin'},'traingdm')
% 当前输入层权值和阈值
inputWeights=net.IW{1,1}
inputbias=net.b{1}
% 当前网络层权值和阈值
layerWeights=net.LW{2,1}
layerbias=net.b{2}
pause
clc
% 设置训练参数
net.trainParam.show = 50;
net.trainParam.lr = 0.05; 学习速率
net.trainParam.mc = 0.9; 动量系数
net.trainParam.epochs = 1000;
net.trainParam.goal = 1e-3;
pause
clc
% 调用TRAINGDM 算法训练 BP 网络
[net,tr]=train(net,P,T);
pause
clc
% 对 BP 网络进行仿真
A = sim(net,P)
% 计算仿真误差
E = T - A
MSE=mse(E)
pause
clc
echo off

7. 求一个用matlab实际的bp算法

首先对于数据进行归一化,我就不用matlab里面的代码了
maxP = max(max(p));
p = p';
Input = p(:, 1:4)./maxP;
Target = p(:, 2:5)./maxP;

netP = newff(Input, Target, 10);
netP = train(netP, Input, Target);

上面这个神经网络预测下一年的P值

P09_13 = zeros(6, 5)
for i = 1:5
if i == 1
P09_13(:, i) = sim(net, p(:, 5));
else
P09_13(:, i) = sim(net, P09_13(:, i-1));
end
end

以上得到09-13年预测出来的p值

下面求p-t之间的关系
Input = p./maxP;
Target =t./maxP;

net = newff(Input, Target, 10);
net = train(net, Input, Target);
以上代码求出了p-t对应关系
preliminaryResult = zeros(1, 5);
for i = 1:5
preliminaryResult = sim(net, P09_13(:, i));
end

result = preliminaryResult.*maxP;

result里面是09-13年预测出来的房价。

我没给你实际跑这个程序,明天就交论文你这个点求助我就不说你什么了。我估计应该没错误。
听天由命吧,少年。

8. bp神经网络算法 在matlab中的实现

BP神经网络是最基本、最常用的神经网络,Matlab有专用函数来建立、训练它,主要就是newff()、train()、sim()这三个函数,当然其他如归一化函数mapminmax()、其他net的参数设定(lr、goal等)设置好,就可以通过对历史数据的学习进行预测。附件是一个最基本的预测实例,本来是电力负荷预测的实例,但具有通用性,你仔细看看就明白了。

9. matlab编程关于BP算法的问题

clear
P=[...]%输入
T=[...]%输出
% 创建一个新的前向神经网络
net_1=newff(minmax(P),[10,1],{'tansig','purelin'},'traingdm');
% 当前输入层权值和阈值
inputWeights=net_1.IW{1,1};
inputbias=net_1.b{1};
% 当前网络层权值和阈值
layerWeights=net_1.LW{2,1};
layerbias=net_1.b{2};
% 设置训练参数
net_1.trainParam.show = 50;
net_1.trainParam.lr = 0.05;
net_1.trainParam.mc = 0.9;
net_1.trainParam.epochs = 1000;
net_1.trainParam.goal = 1e-3;
% 调用 TRAINGDM 算法训练 BP 网络
[net_1,tr]=train(net_1,P,T);
% 对 BP 网络进行仿真
A = sim(net_1,P);
% 计算仿真误差
E = T - A;
MSE=mse(E)

x=[1 2 3]'
sim(net_1,x)

10. 用matlab实现bp算法,对样本进行训练

P=[5.700 3.800 0.3175 2.33;
4.550 3.050 0.3175 2.33;
2.950 1.950 0.3175 2.33;
1.950 1.300 0.3175 2.33;
1.400 0.900 0.3175 2.33;
1.200 0.800 0.3175 2.33;
1.050 0.700 0.3175 2.33;
1.700 1.100 0.9525 2.33;
1.700 1.100 0.1524 2.33;
4.100 4.140 0.1524 2.50;
10.80 4.140 0.1524 2.50;
0.850 1.290 0.0170 2.22;
2.000 2.500 0.0790 2.22;
1.063 1.183 0.0790 2.55;
0.910 1.000 0.1270 10.2;
1.720 1.860 0.1570 2.33;
1.270 1.350 0.1630 2.55;
1.500 1.621 0.1630 2.55;
1.120 1.200 0.2420 2.55;
1.403 1.485 0.2520 2.55;
1.530 1.630 0.3000 2.50;
0.905 1.018 0.3000 2.50;
1.170 1.280 0.3000 2.50;
0.776 1.080 0.3300 2.55;
0.790 1.255 0.4000 2.55;
0.987 1.450 0.4500 2.55;
0.814 1.440 0.4760 2.55;
0.970 1.620 0.5500 2.55;
1.200 1.970 0.6260 2.55;
0.783 2.300 0.8540 2.55;
0.974 2.620 0.9520 2.55;
1.020 2.640 0.9520 2.55;
0.883 2.676 1.0000 2.55;
0.777 2.835 1.1000 2.55;
0.920 3.130 1.2000 2.55;
1.265 3.500 1.2810 2.55;
1.080 3.400 1.2810 2.55];
%输入
T=[ 2310;
2890;
4240;
5840;
7700;
8270;
9140;
4730;
7870;
2228;
2181;
7740;
3970;
7730;
4600;
5060;
6560;
5600;
7050;
5800;
5270;
7990;
6570;
8000;
7134;
6070;
6380;
5990;
4660
4600;
3980;
3900;
3980;
3900;
3470;
2980;
3150];
%输出
P=P';
T=T';
% 创建一个新的前向神经网络
net_1=newff(minmax(P),[10,1],{'tansig','purelin'},'traingdm');

% 当前输入层权值和阈值
inputWeights=net_1.IW{1,1}
inputbias=net_1.b{1}
% 当前网络层权值和阈值
layerWeights=net_1.LW{2,1}
layerbias=net_1.b{2}

% 设置训练参数
net_1.trainParam.show = NaN;
net_1.trainParam.lr = 0.05;
net_1.trainParam.mc = 0.9;
net_1.trainParam.epochs = 10000;
net_1.trainParam.goal = 1e-6;

% 调用 TRAINGDM 算法训练 BP 网络
[net_1,tr]=train(net_1,P,T)

阅读全文

与bp算法matlab程序相关的资料

热点内容
hp服务器上的ip地址 浏览:560
c语言编程计算100以内的所有素数 浏览:622
命令输入框 浏览:890
冰箱压缩机发烫噪音 浏览:85
单片机栈溢出符号 浏览:330
命令与征服修改器怎么用 浏览:485
什么app比较费钱 浏览:832
为什么同一个app的功能不一样 浏览:232
小型工作室用什么服务器好 浏览:995
程序员的兴趣 浏览:413
华为服务器有什么好 浏览:701
程序员和测试之间的关系 浏览:945
加密蚊帐什么意思 浏览:151
javalistclear 浏览:607
哪个app上民宿多靠谱 浏览:828
重庆服务器租用哪里有云服务器 浏览:453
土星模拟器文件夹 浏览:902
文件夹文件袋文件盒 浏览:695
云服务器打开f8指令 浏览:243
盈透证券加密币 浏览:72