0
Customize intermediate outputs for optimization in Matlab
Posted by Derek Jing
on
10:43 AM
in
Matlab
% Calibration by optimization
x0=[1e-5,1e-5]; % Initial guess
lb=[0,0];
ub=[1,1];
options = optimset('Algorithm','interior-point'...
,'LargeScale','on'...
,'Display','iter'...
,'OutputFcn',{@monitorXvalues,@optimplotfval}...
,'PlotFcns',{@optimplotx,@optimplotfval}...
,'MaxFunEvals',500....
,'MaxIter',250....
,'TolFun',1e-6...
,'TolX',1e-6);
fobject=@(x)optimfunc(x,YieldCurveUSD,T,S,Price);
[x,fval]=fmincon(fobject,x0,[],[],[],[],lb,ub,[],options);
%-------------------------------
function stop = monitorXvalues(x,optimValues,state)
stop = false;
fprintf('sigma*=%10.7f, delta*=%12.8f\n',x(1),x(2));
fprintf('Stepsize of estimate=%12.8f\n',optimValues.stepsize);
fprintf('Value of object function=%12.8f\n\n',optimValues.fval);
x0=[1e-5,1e-5]; % Initial guess
lb=[0,0];
ub=[1,1];
options = optimset('Algorithm','interior-point'...
,'LargeScale','on'...
,'Display','iter'...
,'OutputFcn',{@monitorXvalues,@optimplotfval}...
,'PlotFcns',{@optimplotx,@optimplotfval}...
,'MaxFunEvals',500....
,'MaxIter',250....
,'TolFun',1e-6...
,'TolX',1e-6);
fobject=@(x)optimfunc(x,YieldCurveUSD,T,S,Price);
[x,fval]=fmincon(fobject,x0,[],[],[],[],lb,ub,[],options);
%-------------------------------
function stop = monitorXvalues(x,optimValues,state)
stop = false;
fprintf('sigma*=%10.7f, delta*=%12.8f\n',x(1),x(2));
fprintf('Stepsize of estimate=%12.8f\n',optimValues.stepsize);
fprintf('Value of object function=%12.8f\n\n',optimValues.fval);
Post a Comment