bgp-tests: Octave compatibility fixes
parent
68f60bc411
commit
904296738d
|
@ -62,10 +62,19 @@ end;
|
||||||
verbatim;
|
verbatim;
|
||||||
|
|
||||||
bgp.write(M_);
|
bgp.write(M_);
|
||||||
options = optimoptions('fsolve','Display','iter','Algorithm','levenberg-marquardt','MaxFunctionEvaluations',1000000,'MaxIterations',100000,'SpecifyObjectiveGradient',true,'FunctionTolerance',1e-6,'StepTolerance',1e-6);
|
y = 1+(rand(M_.endo_nbr,1)-.5)*.25;
|
||||||
y = 1+(rand(M_.endo_nbr,1)-.5)*.5;
|
|
||||||
g = ones(M_.endo_nbr,1);% 1+(rand(M_.endo_nbr,1)-.5)*.1;
|
g = ones(M_.endo_nbr,1);% 1+(rand(M_.endo_nbr,1)-.5)*.1;
|
||||||
[y, fval, exitflag] = fsolve(@fs2000.bgpfun, [y;g], options);
|
if ~isoctave
|
||||||
|
options = optimoptions('fsolve','Display','iter','Algorithm','levenberg-marquardt','MaxFunctionEvaluations',1000000,'MaxIterations',100000,'SpecifyObjectiveGradient',true,'FunctionTolerance',1e-6,'StepTolerance',1e-6);
|
||||||
|
[y, fval, exitflag] = fsolve(@fs2000.bgpfun, [y;g], options);
|
||||||
|
else
|
||||||
|
options = optimset('Display','iter','Algorithm','levenberg-marquardt','MaxFunEvals',1000000,'MaxIter',100000,'GradObj','on','TolFun',1e-6,'TolX',1e-6);
|
||||||
|
h=str2func('fs2000.bgpfun'); %workaround for https://savannah.gnu.org/bugs/?46659 still present in Octave 5
|
||||||
|
[y, fval, exitflag] = fsolve(h, [y;g], options);
|
||||||
|
end
|
||||||
|
if exitflag<1
|
||||||
|
error('Solution not found')
|
||||||
|
end
|
||||||
y(1:M_.orig_endo_nbr)
|
y(1:M_.orig_endo_nbr)
|
||||||
y(M_.endo_nbr+(1:M_.orig_endo_nbr))
|
y(M_.endo_nbr+(1:M_.orig_endo_nbr))
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ verbatim;
|
||||||
|
|
||||||
bgp.write(M_);
|
bgp.write(M_);
|
||||||
if isoctave
|
if isoctave
|
||||||
options = optimset('Display', 'iter', 'MaxFunEvals', 1000000,'MaxIter',100000,'Jacobian','on','TolFun',1e-6,'TolX',1e-6);
|
options = optimset('Display', 'iter', 'MaxFunEvals', 1000000,'MaxIter',100000,'Jacobian','on','TolFun',1e-7,'TolX',1e-7);
|
||||||
else
|
else
|
||||||
options = optimoptions('fsolve','Display','iter','Algorithm','levenberg-marquardt','MaxFunctionEvaluations',1000000,'MaxIterations',100000,'SpecifyObjectiveGradient',true,'FunctionTolerance',1e-6,'StepTolerance',1e-6);
|
options = optimoptions('fsolve','Display','iter','Algorithm','levenberg-marquardt','MaxFunctionEvaluations',1000000,'MaxIterations',100000,'SpecifyObjectiveGradient',true,'FunctionTolerance',1e-6,'StepTolerance',1e-6);
|
||||||
end
|
end
|
||||||
|
@ -28,7 +28,7 @@ verbatim;
|
||||||
else
|
else
|
||||||
fun = @ramsey.bgpfun;
|
fun = @ramsey.bgpfun;
|
||||||
end
|
end
|
||||||
y = 1+(rand(M_.endo_nbr,1)-.5)*.5;
|
y = 1+(rand(M_.endo_nbr,1)-.5)*.25;
|
||||||
g = ones(M_.endo_nbr,1);% 1+(rand(M_.endo_nbr,1)-.5)*.1;
|
g = ones(M_.endo_nbr,1);% 1+(rand(M_.endo_nbr,1)-.5)*.1;
|
||||||
[y, fval, exitflag] = fsolve(fun, [y;g], options);
|
[y, fval, exitflag] = fsolve(fun, [y;g], options);
|
||||||
assert(max(abs(y(M_.endo_nbr+(1:M_.orig_endo_nbr))-1.02))<1e-6)
|
assert(max(abs(y(M_.endo_nbr+(1:M_.orig_endo_nbr))-1.02))<1e-6)
|
||||||
|
|
Loading…
Reference in New Issue