① matlab优化工具箱中遗传算法的问题
ga就是在穷举不可能完成时,用一种方式找到最优解
ga工具的完整形式如下表示
[X,FVAL,EXITFLAG,OUTPUT,POPULATION,SCORES] =
GA(FITNESSFCN,NVARS,A,b,Aeq,beq,lb,ub,NONLCON,options)
X是最优自变量
FVAL是求得的最优值
其他以此是推出标志,结构体,终止时的总群,终止时种群函数值
后半部分以此是目标函数,目标函数自变量个数
A和b是线性约束不等式AX〈b
Aeq和beq是一对线性等式约束,AeqX=beq
lb是X值下限,ub是X值下限
NONLCON是非线性约束函数 options是运行方式。这两个可以写函数自己完成,也可默认
函数默认计算最小值,计算最大值要加负号
非线性约束条件的写法
function [c,ceq]=nonlcon(x) 定义函数自变量是x,x可以是一列矩阵
c=[]; c表示非线性等式约束,以为没有,所以为空
ceq=[x(1)-2*(x(2))^2;
x(1)+X(2) ] ceq是非线性不等式约束,默认ceq<=0,ceq可以为一列矩阵.
>>
② 求解:怎样使用MATLAB中的遗传算法计算器Optimization Tool中的GA——Genetic Algorithm,如图,重谢
比如通过MATLAB遗传算法的思想求解f(x)=x*sin(10pi*x)+2.0,-1<=x<=2的最大值问题,结果精确版到3位小数。
首先在matlab命令权窗口输入f=@(x)-(x*sin(10*pi*x)+2) 输出结果为
>> f=@(x)-(x*sin(10*pi*x)+2)
f =
@(x)-(x*sin(10*pi*x)+2)
接着输入gatool会打开遗传算法工具箱
显示51代之后算法终止,最小结果为-3.85027334719567,对应的x为1.851,由于自定义函数加了负号,所以原式的最大值为3.85027334719567,对应的x为1.851。
不过这是遗传算法得到的结果,每次运行的结果可能会有所不同,而且不一定是确切的最大值。
遗传算法适合应用在一些求最优解比较复杂的问题(常规的算法运算时间过长,甚至无法解决)。
③ 请教一下,用遗传算法工具箱怎么求下面函数的最小值
题主给出函数用遗传算法工具箱求其最小值,可以这样来做:
1、自定义函数,并保存专为leijia.m文件。
2、在当前属目录下,执行 optimtool,打开最优化工具箱,再选择遗传算法工具箱
3、按表中格式,输入相关内容,最后执行可以得到
④ matlab工具箱中的神经网络和遗传算法要怎么调用
都是有两种调用抄方法,一种图形界面的,这个从开始菜单,然后工具,然后从里面找神经网络 neural network,遗传算法工具是 全局优化工具箱里面的,global optimization。
另外 一种通过命令行调用,这个需要你理解你都要做什么,我用神经网络举例。第一步需要先整理出输入变量和输出变量,第二步设计并初始化神经网络,第三部训练,第四部获得结果。
如果你想结合这两者,就会更加复杂,详细的你可以再问。我曾经做过用遗传算法优化神经网络的工具。