I try to write simple analytical function Gomez and Levy with ga in optimization toolbox but it cannot run
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
sogol bandekian
el 7 de Mayo de 2022
Comentada: Walter Roberson
el 24 de Mayo de 2022
%fitness function Gomez and Levy
function y=fitnessfunctiongl(x)
x1=x(1);
x2=x(2);
y=(4*x1.^2)-2.1*x1.^4+1/3*x1.^6+(x1*x2)-4*x2.^2+4*x2.^4;
end
¬¬¬¬¬%constraints
function [c ,ceq]=constraintgl(x)
x1=x(1);
x2=x(2);
c=-sin(4*pi*x1)+2*sin(2*pi*x2)^2-1.5;
ceq=[];
end
%main script to pass function and constraints to ga for optimization
ObjFcn=@fitnessfunctiongl;
nvars=2;
lb=[-1, -1];
ub=[0.75, 1];
nonlcon=@constraintgl;
options = optimoptions('ga','ConstraintTolerance',1e-6,'Display','iter','PlotFcn',{@gaplotrange,@gaplotbestf,@gaplotselection,@gaplotmaxconstr}); %plotting the process of finding the solution
%solution and function value
[x , fval,exitFlag,output,population,scores]= ga(ObjFcn,nvars,[],[],[],[],lb,ub,nonlcon,options);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%errors
Error in gadsplot (line 141)
[state,optimvalues] = callOnePlotFcn(fname,plotNames{i},state,options.OutputPlotFcnOptions,optimvalues,'init',args{i}{:});
Error in gacon (line 55)
state = gadsplot(options,state,'init','Genetic Algorithm');
Error in ga (line 406)
[x,fval,exitFlag,output,population,scores] = gacon(FitnessFcn,nvars, ...
Error in maingl (line 11)
[x , fval,exitFlag,output,population,scores]= ga(ObjFcn,nvars,[],[],[],[],lb,ub,nonlcon,options);
2 comentarios
Respuesta aceptada
Walter Roberson
el 10 de Mayo de 2022
y=(4*x1.^2)-2.1*x1.^4+1/3*x1.^6+(x1*x2)-4*x.^2+4*x2.^4;
Notice that you have 4*x.^2 . But x is a vector so that would return a vector.
6 comentarios
Walter Roberson
el 24 de Mayo de 2022
The plots are not empty. The optimization is configured for a maximum number of generations and that is the x axis used so that it does not get continually redrawn as more generations are processed. The optimization either succeeded or failed in a small number of generations, on the order of 5 generations.
Más respuestas (1)
Bhavana Ravirala
el 10 de Mayo de 2022
Hi Sogol,
When I try to reproduce the issue at my end I encountered the error as Function definition not supported in this context. Create functions in a code file. If you are facing the same error refer to the below link to eliminate the error.
If not, can you send us the exact error message that you are getting.
Hope this helps!!
Ver también
Categorías
Más información sobre Get Started with Optimization Toolbox en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!