v4 dynare_solve.m solve1.m: bug corrections
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@812 ac1d8469-bf42-47a9-8791-bf33cf982152time-shift
parent
5edb7d1d00
commit
b6e1fef911
|
@ -14,7 +14,7 @@ function [x,cheik] = dynare_solve(func,x,jacobian_flag,varargin)
|
||||||
if jacobian_flag
|
if jacobian_flag
|
||||||
options.Jacobian = 'on';
|
options.Jacobian = 'on';
|
||||||
else
|
else
|
||||||
options.Jacobian = 'on';
|
options.Jacobian = 'off';
|
||||||
end
|
end
|
||||||
[x,fval,exitval,output] = fsolve(func,x,options,varargin{:});
|
[x,fval,exitval,output] = fsolve(func,x,options,varargin{:});
|
||||||
if exitval > 0
|
if exitval > 0
|
||||||
|
|
|
@ -39,8 +39,9 @@ function [x,check] = solve1(func,x,j1,j2,jacobian_flag,varargin)
|
||||||
for its = 1:maxit
|
for its = 1:maxit
|
||||||
if jacobian_flag
|
if jacobian_flag
|
||||||
[fvec,fjac] = feval(func,x,varargin{:});
|
[fvec,fjac] = feval(func,x,varargin{:});
|
||||||
|
fvec = fvec(j1);
|
||||||
|
fjac = fjac(j1,j2);
|
||||||
else
|
else
|
||||||
fvec = feval(func,x,varargin{:});
|
|
||||||
dh = max(abs(x(j2)),options_.gstep*ones(nn,1))*eps^(1/3);
|
dh = max(abs(x(j2)),options_.gstep*ones(nn,1))*eps^(1/3);
|
||||||
|
|
||||||
for j = 1:nn
|
for j = 1:nn
|
||||||
|
@ -51,8 +52,7 @@ function [x,check] = solve1(func,x,j1,j2,jacobian_flag,varargin)
|
||||||
g(j) = fvec'*fjac(:,j) ;
|
g(j) = fvec'*fjac(:,j) ;
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
fvec = fvec(j1);
|
|
||||||
fjac = fjac(j1,j2);
|
|
||||||
g = (fvec'*fjac)';
|
g = (fvec'*fjac)';
|
||||||
if options_.debug
|
if options_.debug
|
||||||
disp(['cond(fjac) ' num2str(cond(fjac))])
|
disp(['cond(fjac) ' num2str(cond(fjac))])
|
||||||
|
|
Loading…
Reference in New Issue