MATLAB中文论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1073|回复: 17|关注: 1

[已解决] 错误使用 ga,输入参数太多

[复制链接]

新手

9 麦片

财富积分


050


5

主题

19

帖子

0

最佳答案
错误使用 ga
输入参数太多。
出错 GABP (line 54)
[x,endPop,bPop,trace]=ga(aa,'gabpEval',[],initPpp,[1e-6 1 1],'maxGenTerm',gen,'normGeomSelect',[0.09],['arithXover'],[2],'nonUnifMutation',[2 gen 3]);

怎么解决啊,谢谢

MATLAB 基础讨论
版块优秀回答者

入门

187 麦片

财富积分


50500


1

主题

237

帖子

42

最佳答案
  • 关注者: 3
发表于 2017-5-31 17:14:34 | 显示全部楼层
正确调用格式
x = ga(fitnessfcn,nvars,A,b,[],[],LB,UB,nonlcon,IntCon,options)
有些参数设定要另外写在options中,而不是直接放进上面的表达式中。

新手

9 麦片

财富积分


050


5

主题

19

帖子

0

最佳答案
 楼主| 发表于 2017-6-1 00:06:52 | 显示全部楼层
不行啊!!!

我是用的2016a版的,代码如下:
%% 清除环境变量
tic;
close all;
clear;
clc;
warning off
nntwarn off
%% 声明全局变量
global p     % 训练集输入数据
global t     % 训练集输出数据
global R     % 输入神经元个数
global S2    % 输出神经元个数
global S1    % 隐层神经元个数
global S     % 编码长度
S1=19;
%% 导入数据
% 训练数据
p=xlsread('GABP.xlsx','sheet1','B3:H1002')';
t=xlsread('GABP.xlsx','sheet1','B4:H1003')';
% 数据归一化
[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);
% 输入和输出样本
% 测试数据
k=xlsread('GABP.xlsx','sheet1','B1003:H1003')';
% 数据归一化
kn=tramnmx(k,minp,maxp);
%% BP神经网络
% 网络创建
net=newff(minmax(pn),[S1,7],{'tansig','logsig'},'trainlm');
% 设置训练参数
net.trainParam.show=10;
net.trainParam.epochs=20000;
net.trainParam.goal=1.0e-3;
net.trainParam.lr=0.01;
%初始化网络
net=init(net);
% 网络训练
net=train(net,pn,tn);
% 仿真测试
Ybp=sim(net,kn);    % BP神经网络的仿真结果
[tn1]= postmnmx(Ybp,minp,maxp);
YBP=round(tn1')
%% GA-BP神经网络
R=size(p,1);
S2=size(t,1);
S=R*S1+S1*S2+S1+S2;
aa=ones(S,1)*[-1,1];
popu=64;  % 种群规模
initPpp=initializega(popu,aa,'gabpEval');  % 初始化种群
gen=20000;  % 遗传代数
% 调用GAOT工具箱,其中目标函数定义为gabpEval
[x,endPop,bPop,trace]=ga(aa,'gabpEval',[],initPpp,[1e-6 1 1],'maxGenTerm',gen,...
'normGeomSelect',[0.09],['arithXover'],[2],'nonUnifMutation',[2 gen 3]);
% 绘均方误差变化曲线
figure(1)
plot(trace(:,1),1./trace(:,3),'r-');
hold on
plot(trace(:,1),1./trace(:,2),'b-');
xlabel('遗传代数');
ylabel('均方误差');
% 绘制适应度函数变化
figure(2)
plot(trace(:,1),trace(:,3),'r-');
hold on
plot(trace(:,1),trace(:,2),'b-');
xlabel('遗传代数 ');
ylabel('适应度');
% 计算最优的权值和阈值
[W1,B1,W2,B2,val]=gadecod(x);
net.IW{1,1}=W1;
net.LW{2,1}=W2;
net.b{1}=B1;
net.b{2}=B2;
% 利用新的权值和阈值进行训练
net=train(net,pn,tn);
% 网络预测
Yga=sim(net,kn);     
[tn2]= postmnmx(Yga,minp,maxp);
YGA=round(tn2')
%% 存储结果
xlswrite('Gabp.xls',YGA,'sheet1','J104:P104');
%% 运算结束提示
disp('本次预测结束,祝君中取大奖!')
toc;


请指正

论坛优秀回答者

权威

5244 麦片

财富积分



5

主题

6626

帖子

1201

最佳答案
  • 关注者: 261
发表于 2017-6-1 07:50:02 | 显示全部楼层
pgxp 发表于 2017-6-1 00:06
不行啊!!!

我是用的2016a版的,代码如下:

'maxGenTerm',gen,'normGeomSelect',[0.09],['arithXover'],[2],'nonUnifMutation',[2 gen 3]
这些应该用options = optimoptions(@ga,...............)设置
或者用options = gaoptimset('param1',value1,'param2',value2,...)设置

新手

9 麦片

财富积分


050


5

主题

19

帖子

0

最佳答案
 楼主| 发表于 2017-6-1 14:12:34 | 显示全部楼层
能不能详细点,最好举个例,谢谢,我是新手,正在学习中

论坛优秀回答者

权威

5244 麦片

财富积分



5

主题

6626

帖子

1201

最佳答案
  • 关注者: 261
发表于 2017-6-1 15:49:39 | 显示全部楼层
pgxp 发表于 2017-6-1 14:12
能不能详细点,最好举个例,谢谢,我是新手,正在学习中

你这好多选项不是ga的,不知道怎么来的。你这个ga是第三方工具箱的?

新手

9 麦片

财富积分


050


5

主题

19

帖子

0

最佳答案
 楼主| 发表于 2017-6-1 16:18:12 | 显示全部楼层
上边那些源码是我从网上找的,想下来通过它学习,所以里边有些不是很清楚,但能打开运行,只是后边工具箱运行完了后才会报发的错误!!!

论坛优秀回答者

权威

5244 麦片

财富积分



5

主题

6626

帖子

1201

最佳答案
  • 关注者: 261
发表于 2017-6-1 16:46:35 | 显示全部楼层 |此回复为最佳答案
pgxp 发表于 2017-6-1 16:18
上边那些源码是我从网上找的,想下来通过它学习,所以里边有些不是很清楚,但能打开运行,只是后边工具箱运 ...

GAOT工具箱需要单独下载,不是matlab自带的。

新手

9 麦片

财富积分


050


5

主题

19

帖子

0

最佳答案
 楼主| 发表于 2017-6-1 16:48:09 | 显示全部楼层
哦,谢谢,我再试试

新手

9 麦片

财富积分


050


5

主题

19

帖子

0

最佳答案
 楼主| 发表于 2017-6-1 17:01:36 | 显示全部楼层
呵呵呵,谢谢jingzhaos 兄弟,在你的提示下我重装了ga工具箱,哈哈哈,能正常运行了,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

快速回复 返回顶部 返回列表