全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
2520 4
2014-12-05
悬赏 500 个论坛币 未解决
  给了一个pdf是论文  txt有代码 但是报错 数据都弄好了  大师来试试   能在matlab7   运行就行  谢谢了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-1-5 07:37:55
meiyou
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-25 11:17:53
matlab7.5 运行不了 说有个函数过时。这是6.5的代码。试试matlab6.5
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-28 16:26:14
yisongtang 发表于 2015-3-25 11:17
matlab7.5 运行不了 说有个函数过时。这是6.5的代码。试试matlab6.5
6.5也运行不了  你能把7.5以上的代码给出吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-4-24 12:13:31
% BP 神经网络用于函数拟合 
% 使用平台 - Matlab6.5
%---------------------------------------------------

clc
clear
close all

%---------------------------------------------------
% 产生训练样本与测试样本

P1 = [4885.8        8157        43529.3        708.6        347.57
5523.4        904.7        44265.8        784        376.02
5237.2        10995.5        45648.8        921.6        440.45
6603.5        15750.5        44510.1        1221        532.98
8243.3        20340.9        46661.8        1577.7        574.93
9822.9        22353.7        50453.5        1926.1        700.43
10648.5        23788.4        49417.1        2090.1        766.39
11327.3        24541.9        51229.5        2162        1154.76
12043.1        24519.1        50838.6        2210.3        1085.76
13042.3        24915.8        46217.5        2253.4        1231.54
14051.8        26179.6        45263.7        2366.4        1456.73
15041        27390        45705.8        2475.6        1580.76
16065        29691        43069.5        2622.2        1754.45
]     % 训练样本,每一列为一个样本
T1 = [3252
3335
4281
6104
7951
8618
8996
9160
9138
9634
10291
10986
11261
]
% 训练目标

P2 = [19805        36239        46946.9        2936.4        2337.63
22082        39450.9        48402.2        3254.9        2450.31
]    % 测试样本,每一列为一个样本
T2 = [11970
12748
]    % 测试目标

%---------------------------------------------------
% 归一化

[PN1,minp,maxp,TN1,mint,maxt] = premnmx(P1',T1');
PN2 = tramnmx(P2',minp,maxp);
TN2 = tramnmx(T2',mint,maxt);

%---------------------------------------------------
% 设置网络参数

NodeNum = 20;                   % 隐层节点数
TypeNum = 1;                    % 输出维数

TF1 = 'tansig';TF2 = 'purelin'; % 判别函数(缺省值)
%TF1 = 'tansig';TF2 = 'logsig';
%TF1 = 'logsig';TF2 = 'purelin';
%TF1 = 'tansig';TF2 = 'tansig';
%TF1 = 'logsig';TF2 = 'logsig';
%TF1 = 'purelin';TF2 = 'purelin';

net = newff(minmax(PN1),[NodeNum TypeNum],{TF1 TF2});

%---------------------------------------------------
% 指定训练参数

% net.trainFcn = 'traingd';  % 梯度下降算法
% net.trainFcn = 'traingdm'; % 动量梯度下降算法
%
% net.trainFcn = 'traingda'; % 变学习率梯度下降算法
% net.trainFcn = 'traingdx'; % 变学习率动量梯度下降算法
%
% (大型网络的首选算法)
% net.trainFcn = 'trainrp';  % RPROP(弹性BP)算法,内存需求最小
%
% 共轭梯度算法
% net.trainFcn = 'traincgf'; % Fletcher-Reeves修正算法
% net.trainFcn = 'traincgp'; % Polak-Ribiere修正算法,内存需求比Fletcher-Reeves修正算法略大
% net.trainFcn = 'traincgb'; % Powell-Beal复位算法,内存需求比Polak-Ribiere修正算法略大
% (大型网络的首选算法)
%net.trainFcn = 'trainscg'; % Scaled Conjugate Gradient算法,内存需求与Fletcher-Reeves修正算法相同,计算量比上面三种算法都小很多
%
% net.trainFcn = 'trainbfg'; % Quasi-Newton Algorithms - BFGS Algorithm,计算量和内存需求均比共轭梯度算法大,但收敛比较快
% net.trainFcn = 'trainoss'; % One Step Secant Algorithm,计算量和内存需求均比BFGS算法小,比共轭梯度算法略大
%
% (中型网络的首选算法)
net.trainFcn = 'trainlm';  % Levenberg-Marquardt算法,内存需求最大,收敛速度最快
%
% net.trainFcn = 'trainbr';  % 贝叶斯正则化算法
%
% 有代表性的五种算法为:'traingdx','trainrp','trainscg','trainoss', 'trainlm'

%---------------------%

net.trainParam.show = 20;          % 训练显示间隔
net.trainParam.lr = 0.3;            % 学习步长 - traingd,traingdm
net.trainParam.mc = 0.95;           % 动量项系数 - traingdm,traingdx
net.trainParam.mem_reduc = 1;      % 分块计算Hessian矩阵(仅对Levenberg-Marquardt算法有效)
net.trainParam.epochs = 1000;       % 最大训练次数
net.trainParam.goal = 1e-8;         % 最小均方误差
net.trainParam.min_grad = 1e-20;    % 最小梯度
net.trainParam.time = inf;          % 最大训练时间

%---------------------------------------------------
% 训练

net = train(net,PN1,TN1);     % 训练

%---------------------------------------------------
% 测试

YN1 = sim(net,PN1);             % 训练样本实际输出
YN2 = sim(net,PN2);             % 测试样本实际输出

MSE1 = mean((TN1-YN1).^2)       % 训练均方误差
MSE2 = mean((TN2-YN2).^2)       % 测试均方误差

%---------------------------------------------------
% 反归一化

Y2 = postmnmx(YN2,mint,maxt);

%---------------------------------------------------
% 结果作图

plot(1:length(T2),T2,'r+:',1:length(Y2),Y2,'bo:')
title('+为真实值,o为预测值')
结果1 结果2
由于对神经网络不甚了解, 我是单从程序能运行的角度调整的代码(只是添加了几个转置). 上述代码在Matlab R2014a中运行通过.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群