Borrar filtros
Borrar filtros

[error] - Error "Your objective function must return a scalar value.''

5 visualizaciones (últimos 30 días)
viet le
viet le el 21 de Oct. de 2016
Editada: Torsten el 21 de Oct. de 2016
Hello everyone, I run my code and got this error " Failure in initial user-supplied objective function evaluation." I don't know how to solve it. Hope you can help me, Thank
function y=annealing(x,C,P,T,R)
y=log(x(1))+x(2)*log(C-0.15)+x(3)*log(P)-x(4)*log(T)-log(R/273);
>> a=xlsread('hydrogen.xlsx');
C=a(:,1);
P=a(:,2);
T=a(:,3);
R=a(:,4);
ObjectiveFunction = @(x) annealing(x,C,P,T,R);
x0 = [0.5 0.5 0.5 0.5]; % Starting point
[x,fval] = simulannealbnd(ObjectiveFunction,x0)
This is error: Error using samakedata (line 29) Your objective function must return a scalar value.
Error in simulannealcommon (line 118) solverData = samakedata(solverData,problem,options);
Error in simulanneal (line 44) simulannealcommon(FUN,x0,Aineq, bineq, Aeq, beq, lb, ub,options,defaultopt);
Error in simulannealbnd (line 137) [x, fval, exitflag, output] = simulanneal(FUN, x0, [], [], [], [], lb, ub, options);
  9 comentarios
viet le
viet le el 21 de Oct. de 2016
Hello Torsten , But if I keep the original, it could not run. Could you give me some solution? Thanks.
Torsten
Torsten el 21 de Oct. de 2016
Editada: Torsten el 21 de Oct. de 2016
I can't give advise since I don't know which value you are trying to minimize in your function "annealing". You can imagine that it doesn't make sense to minimize several values simultaneously (i.e. return a vector for y as you do).
Best wishes
Torsten.

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Simulated Annealing en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by