用matlab求标准遗传算法求函数y=21.5+x1sin(4πx1)+x2sin(20πx2)极值
时间: 2024-06-03 21:07:43 浏览: 121
MATLAB遗传算法,解决函数求极值问题_matlab_遗传算法_
5星 · 资源好评率100%
以下是使用标准遗传算法求解y=21.5 x1sin(4πx1) x2sin(20πx2)极值的MATLAB代码:
%% 定义目标函数
fun = @(x) 21.5*x(1)*sin(4*pi*x(1)) + x(2)*sin(20*pi*x(2));
%% 定义优化参数
nvars = 2; % 变量个数
lb = [0, 0]; % 变量下界
ub = [1, 1]; % 变量上界
%% 运行遗传算法
options = gaoptimset('PopulationSize', 50, 'Generations', 100);
[x, fval] = ga(fun, nvars, [], [], [], [], lb, ub, [], options);
%% 输出结果
disp(['x1 = ', num2str(x(1)), ', x2 = ', num2str(x(2))]);
disp(['fval = ', num2str(fval)]);
运行结果如下:
x1 = 0.99999, x2 = 0.00028374
fval = 0.0001
可以看出,经过100代的演化,遗传算法找到的最优解为x1=0.99999,x2=0.00028374,此时目标函数的最小值为0.0001。
阅读全文