matlab上的遗传算法函数优化
1个回答
展开全部
用ga函数,ga函数就是遗传算法的函数,它的调用格式为:
x
=
ga(fitnessfcn,nvars,a,b,aeq,beq,lb,ub,nonlcon,options)
fitnessfcn就是待优化函数,nvars为变量个数,然后后面的lb是下界,ub是上界,你这个问题就需要这4个位置的参数,其他位置的参数用[]代替就行,由于ga函数默认是求待优化函数的最小值,所以要想求最大值需要把待优化函数取负,即编写为
function
y=myfun(x)
y=-x.*sin(10*pi.*x)-2;
把这个函数存为myfun.m,然后在命令行里敲
x=ga(@myfun,1,[],[],[],[],[1],[2])
会返回
optimization
terminated:
average
change
in
the
fitness
value
less
than
options.tolfun.
x
=
1.8506
由于遗传算法的原理其实是在取值范围内随机选择初值然后进行遗传,所以可能每次运行给出的值都不一样,比如再运行一次会返回
optimization
terminated:
average
change
in
the
fitness
value
less
than
options.tolfun.
x
=
1.6507
这个具体原因需要参考遗传算法的有关资料
x
=
ga(fitnessfcn,nvars,a,b,aeq,beq,lb,ub,nonlcon,options)
fitnessfcn就是待优化函数,nvars为变量个数,然后后面的lb是下界,ub是上界,你这个问题就需要这4个位置的参数,其他位置的参数用[]代替就行,由于ga函数默认是求待优化函数的最小值,所以要想求最大值需要把待优化函数取负,即编写为
function
y=myfun(x)
y=-x.*sin(10*pi.*x)-2;
把这个函数存为myfun.m,然后在命令行里敲
x=ga(@myfun,1,[],[],[],[],[1],[2])
会返回
optimization
terminated:
average
change
in
the
fitness
value
less
than
options.tolfun.
x
=
1.8506
由于遗传算法的原理其实是在取值范围内随机选择初值然后进行遗传,所以可能每次运行给出的值都不一样,比如再运行一次会返回
optimization
terminated:
average
change
in
the
fitness
value
less
than
options.tolfun.
x
=
1.6507
这个具体原因需要参考遗传算法的有关资料
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询