Matlab @fminunc objective function optimization -
i practicing simple function optimization in matlab , hope provide little assistance / explanation on following error:
%quadramin.m function z=quadramin(param,data); z=data.*(param(1).^2 - param(2).^3)+3; %quadramin_lik.m function quadlik = quadramin_lik(param,data); %pseudo/ad-hoc log-likelihood function quadlik = quadramin(param,data)- 10; %script.m data=trnd(5,6,1); param0=[2,3]; [param_eq,exitflag,output,grad,hessian] = ... fminunc(@(param) quadramin_lik(param,data),param0)
output after executing %script.m: error using fminunc (line 333) user supplied objective function must return scalar value.
ps: looks paradoxical user-defined functions quadramin && quadramin_lik return values.
thanks
both functions return vector of values whereas fminunc
requires function returns scalar / single value. error pretty clear. function fminunc
trying find best solution minimizes cost function, need supply cost function.
therefore, perhaps try summing results in each function before returning them.... doing doesn't guarantee global minimum because fminunc assumes cost function convex. however, judging comments computing log likelihoods, summing should doing way!
Comments
Post a Comment