FMINUNC cannot continue help?

I am trying to learn how to use fminunc, but it gives the error "Failure in initial objective function evaluation. FMINUNC cannot continue."
Help please?
Note: Updated
for i = 1:modes
params.x0 = [y0 dy0];
params.xp = xspan;
fobj = @(beta)myobj(beta, params);
for j = 1:1000 % begin convergence loop for beta
beta = fminunc(fobj, beta0); % run optimization
end % end convergence loop
end
%%
function [err, T, Y] = myobj(beta)
x0 = params.x0;
xspan = params.xp;
[T,Y] = ode45('ffunc', xspan, x0);
err = abs(Y(end,2) + sqrt(K*L.^2 - beta)*Y(end,1)); % error
end

 采纳的回答

Matt J
Matt J 2019-10-25
编辑:Matt J 2019-10-25
You forgot to pass your params,
fobj = @(beta)myobj(beta,params);
function [err, T, Y] = myobj(beta,params)
x0 = params.x0;
xspan = params.xp;
[T,Y] = ode('ffunc', xspan, x0);
err = abs(Y(end,2) + sqrt(K*L.^2 - beta)*Y(end,1)); % error
end

4 个评论

Oh, how rookie of me.
However, I still get the same error when I try to use the fminunc function.
Well, you should use
>>dbstop if caught error
to trap it.
It just says fobj used twice, but that is correct because I need to state my fobj, then use it for the next part.
Still the same error.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Optimization 的更多信息

产品

标签

提问:

EB
2019-10-25

编辑:

EB
2019-10-26

Community Treasure Hunt

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

Start Hunting!

Translated by