Problem with optimization using fminunc
9 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Christos Papadimitriou
le 10 Août 2016
Commenté : John BG
le 11 Août 2016
Using fminunc for optimization matlab show me the message
"Computing finite-difference Hessian using user-supplied objective function."
The options I use in fminunc are:
options=optimset('Display','notify','MaxIter',10^6,'MaxFunEvals',10^6,'TolX',10^-30,'TolFun',10^-30, 'GradObj','off','Hessian','off','LargeScale','off','LinesearchType','cubicpoly','InitialHessType','user-supplied','InitialHessMatrix',1,'HessUpdate','steepdesc')
The objective function is:
function val = custom_pdf(A,data);
n=3; m=2;
sigma=A(m+2);esi=exp(sigma); lamda=A(m+3);ela=exp(lamda);
dep=data(1:n,1); regs=data(1:n,2:m+2); beta=A(1:m+1)'; ee=dep-regs*beta; fact=ee./esi;
val=(2./esi).*(normpdf(fact)).*(normcdf(-ela.*fact));
What I must to do to solve this problem?
0 commentaires
Réponse acceptée
John BG
le 10 Août 2016
If you remove the 'LinesearchType' option, the error disappears, just a warning
options=optimset('Display','notify','MaxIter',10^6,'MaxFunEvals',10^6,'TolX',10^-30,'TolFun',10^-30, 'GradObj','off','Hessian','off','LargeScale','off','LinesearchType','cubicpoly','InitialHessType','user-supplied','InitialHessMatrix',1,'HessUpdate','steepdesc')
Error using optimset (line 209)
The LineSearchType option is no longer valid. It was only used by the
Gauss-Newton algorithm, which is no longer used in Optimization toolbox
solvers.
but you still have to define the variable 'data' to avoid further errors.
I tried random data values, but again, A and the function custom_pdf() are not defined either which makes any further answering difficult.
If you find this answer of any help solving your question,
please click on the thumbs-up vote link,
thanks in advance
John BG
Plus de réponses (1)
Alan Weiss
le 11 Août 2016
Your options make no sense to me. Remove all your options and I suspect that your problems will vanish.
Alan Weiss
MATLAB mathematical toolbox documentation
3 commentaires
Alan Weiss
le 11 Août 2016
Yes, you have an old version of MATLAB, but you should still be able to use it to minimize. Take a look at the documentation sections about what to do when the solver fails and what to do when the solver might have succeeded or when the solver takes too long.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation
John BG
le 11 Août 2016
Herr Weiss MATLAB does not get old, Christos just has an outdated version, he only needs to drive test R2016a
Voir également
Catégories
En savoir plus sur Solver Outputs and Iterative Display dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!