Why does my objective function return complex?
    4 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
I have a likelihood function that I need to minimize. I use fmincon to search for the minimum. Iterations of fmincon sometimes show "Objective function returned complex; trying a new point…" But in my code I do not take square root of any variable. Why am I then getting this error? A second question is whether there is a counterpart of 
dbstop if naninf
for "complex" like the 
dbstop if complex
command? Or would 
dbstop if error
do?
2 Commenti
Risposta accettata
  Matt J
      
      
 il 28 Feb 2022
        
      Modificato: Matt J
      
      
 il 28 Feb 2022
  
      There is no "dbstop if complex", but you can set a conditional breakpoints in your objective function to detect when theany particular value is complex.Or, insert a keyboard() command.
function fval=myobjective(x)
fval=....
    if ~isreal(fval)
        keyboard
    end
end
4 Commenti
  Walter Roberson
      
      
 il 2 Mar 2022
				suggest you add a conditional breakpoint to trigger if any(imag(VALUE))
Più risposte (0)
Vedere anche
Categorie
				Scopri di più su Debugging and Analysis in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




