为什么我用遗传算法处理这个函数,去寻找他的最大/最小值的时候,结果是这样呢

@遗传算法gaot箱的问题

#如题,为什么我用遗传算法处理这个函数,去寻找他的最大/最小值的时候,结果是这样呢?应该不是陷入局部最小值把?
这个是main文件

y = -4:0.2:4;
x = -4:0.1:4;
[x,y]=meshgrid(x,y);  % meshgrid函数的作用就在于把行向量变成矩阵,从而能够在后面计算中把z变成矩阵
z = y.*exp(-x.^2-y.^2); 
figure
mesh(x,y,z)
xlabel('自变量')
ylabel('自变量')
zlabel('因变量')
title('z = y.*exp(-x.^2-y.^2)')


initPop = initializega(50,[-4 4;-4 4],'fitness2');  % 上下界用矩阵来写[-4 4  ;-4 4]
[x endPop bpop trace] = ga([-4 4;-4 4],'fitness2',[],initPop,[1e-6 1 1],'maxGenTerm',250,...
                           'normGeomSelect',0.08,'arithXover',2,'nonUnifMutation',[2 25 3]);

x 
hold on
plot (endPop(:,1),endPop(:,2),'ro'

下面是适应度函数,写在另一个文件
function [sol,so2, fitnessVal] = fitness2(sol,so2, options)
  x = sol(1);
  y = so2(1);
  fitnessVal = 1/y.*exp(-x.^2-y.^2); 
end 

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值