Using the function fmincon
    2 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Auryn_
      
 el 2 de Sept. de 2019
  
    
    
    
    
    Comentada: Auryn_
      
 el 2 de Sept. de 2019
            Hi,
I want to optimise a function that I called FUNCTION where 
function [Err]=FUNCTION(coef)
        data1=...
        data2=...
        [x1]=Function1(coef, data1, data2); %Function1 is an additional function
        % % return the error 
         Err=1-x1;
end
I have this function FUNCTION and try to minimize Err using fmincon:
Aeq=[1 1 1 1 1 1 1 1 1 1;1 -1 1 -1 1 -1 1 -1 1 -1];
beq=[0;1];
[x] = fmincon (FUNCTION(coef),coef,[],[],Aeq,beq);
I don't know why is not working and gives me an error : 
"Error using optimfcnchk (line 101)
FUN must be a function, a valid character vector
expression, or an inline function object.
Error in fmincon (line 409)
   funfcn =optimfcnchk(FUN,'fmincon',length(varargin),funValCheck,flags.grad,flags.hess,false,Algorithm); "
I appreciate in advance any help you could provide me!
0 comentarios
Respuesta aceptada
  Torsten
      
      
 el 2 de Sept. de 2019
        [x] = fmincon (@FUNCTION,coef,[],[],Aeq,beq);
3 comentarios
  Walter Roberson
      
      
 el 2 de Sept. de 2019
				[x] = fmincon (@(coef)FUNCTION(coef),coef,[],[],Aeq,beq);
Más respuestas (1)
  Adam
      
      
 el 2 de Sept. de 2019
        The first argument needs to be a function handle, not a call to the function, although your function is FUNCTION so I'm not sure what FUN is, but you certainly shouldn't be passing the argument to it.
@FUNCTION
would seem like what you should be passing in.
4 comentarios
  Torsten
      
      
 el 2 de Sept. de 2019
				Use an output function.
An example to stop fmincon if a certain condition holds is given under
https://de.mathworks.com/help/optim/ug/output-functions.html
Ver también
Categorías
				Más información sobre Function Creation 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!



