ZKX's LAB

遗传算法球极小值区间如何用 怎么用遗传算法求一函数的极小值,编写matlab程序。

2020-10-14知识13

matlab遗传算法求函数极小值!!!急!! 如果没有其他约束条件,直接用ga求解:fi=inline('-2.113-0.1326*x(1)+10.49*x(2)+0.1505*x(1)^2-2.924*x(1)*x(2)+10.11*x(2)^2','x');ga(fi,2,[],[],[],[],[0 18],[0.1 36])Optimization terminated:average change in the fitness value less than options.TolFun.ans=0.1000 18.0000即最小值在x=0.1、y=18处。直接画出函数的图像来,可以验证结论的正确性:ezmesh('-2.113-0.1326*x+10.49*y+0.1505*x^2-2.924*x*y+10.11*y^2',[0 0.1],[18 36])另外,从图中注意到,x 对f(x,y)的影响不大,但如果我们取y=18,画出f(x,18)的函数图像来:syms x yf=-2.113-0.1326*x+10.49*y+0.1505*x^2-2.924*x*y+10.11*y^2;y=18;ezplot(subs(f),[0 0.1])可见,尽管x对f的影响比较小,但函数值还是随着x增大而减小的。综上分析,ga的计算结果是正确的。至于你之前说到的约束条件y=31.1688*exp(-0.755*x)如果画去曲线来:ezplot('31.1688*exp(-0.755*x)',[0 0.1])可以看到,y在18-36的范围内,倒是和你给的范围不矛盾(但应该更小一些才对)。

遗传算法球极小值区间如何用 怎么用遗传算法求一函数的极小值,编写matlab程序。

遗传算法解决多元函数的问题,目标函数:一个含有30个变量的函数求极小值问题约束条件:每个变量均为0~100之间的自然数编码方式:我采用的是二进制编码,8位表示一个变量,那么每个可行解(染色体)即为240位的二进制数.遗传代数:200种群大小:100交叉概率:0.6变异概率:0.4运行结果很不理想,本人GA初学者,怎么样改进?编码设计是否合理?参数应该选择多少?或者提供一种您认为针对该问题适用的编码

遗传算法球极小值区间如何用 怎么用遗传算法求一函数的极小值,编写matlab程序。

关于MATLAB实现遗传算法的问题? 我是一个制造专业学僧,但是最近的一个课题却与之前接触的CATIA、AUTOCAD、ABAQUS等软件与应用迥异。是有…

遗传算法球极小值区间如何用 怎么用遗传算法求一函数的极小值,编写matlab程序。

用MATLAB的遗传算法求极小值已知r,a两个未知量,经过中间复杂的过程得到目标y,y不连续、非线性,r=1:0.1:3,a=0:0.1:1.5,a

#编码转换#matlab函数#格雷码#二进制编码#遗传算法

随机阅读

qrcode
访问手机版