Commit Graph

146 Commits (6adf1c26392d737dc31844aa3add0441e040f4a8)

Author SHA1 Message Date
Sébastien Villemot cbb59fe6f8
Merge remote-tracking branch 'community/master' into enterprise 2019-09-26 16:54:27 +02:00
Stéphane Adjemian (Charybdis) 99edfc52ed Removed unused routine. 2019-04-26 15:55:48 +02:00
Sébastien Villemot 89a3e94cbf
Use true/false instead of 1/0 for boolean options
This is more elegant, and makes it easier to distinguish them from integer
options.

Also simplify test expressions for these boolean options.
2019-03-19 15:21:16 +01:00
Stéphane Adjemian (Scylla) 2d717dbd3e Fixed returned fvec and fjac with solve_algo=3. 2017-09-29 10:29:20 +02:00
Stéphane Adjemian (Scylla) 6a2736d498 Fixed returned fvec and fjac with solve_algo=3. 2017-09-29 10:23:58 +02:00
Stéphane Adjemian (Scylla) b429a23852 Added trap for complex residuals and jacobian in nonlinear solver. 2017-09-29 10:19:54 +02:00
Stéphane Adjemian (Charybdis) 57cab69530 Try random initial guess for dynare_solve...
... If for the default initial guess we obtain NaNs or Infs in the residuals
and/or the Jacobian matrix.

(cherry picked from commit d282226100)
2017-06-14 00:01:10 +02:00
Stéphane Adjemian (Charybdis) 7d373f0d7e Merge branch 'master' into ecb-master 2017-06-03 14:51:28 +02:00
Stéphane Adjemian (Charybdis) 99cb731112 Fixed indentation of matlab files. 2017-06-01 19:43:18 +02:00
Stéphane Adjemian (Charybdis) 5417b27ac7 Fixed indentation of matlab files. 2017-05-16 15:10:20 +02:00
Stéphane Adjemian (Charybdis) a53636e24e Fixed copyright notices. 2017-05-16 14:11:15 +02:00
Stéphane Adjemian (Charybdis) 88e1701289 Removed useless commas and semicolons. 2017-05-16 13:24:46 +02:00
Stéphane Adjemian (Charybdis) d282226100 Try random initial guess for dynare_solve...
... If for the default initial guess we obtain NaNs or Infs in the residuals
and/or the Jacobian matrix.
2017-05-10 23:45:07 +02:00
Johannes Pfeifer fdbb44fec6 Account for Octave's dbstack providing full path, not just filename 2016-11-10 17:58:47 +01:00
Johannes Pfeifer 29d1e80eda Decrease verbosity of solve_algo=0
Shuts off display unless debugging is requested. Otherwise, estimation will clutter the screen
2016-10-09 22:15:48 +02:00
Houtan Bastani 919647477e replace isstring with ischar as isstring is not supported in Octave. Bug introduced in 80049a6d09 2016-09-13 17:34:23 +02:00
Johannes Pfeifer 01f1abb19a Provide dedicated maxit option for Ramsey 2016-08-24 13:32:11 +02:00
Johannes Pfeifer b4d958d706 dynare_solve.m: account for second mcp-solver in solution check 2016-08-23 17:28:41 +02:00
Johannes Pfeifer 2751ab08bb Provide interface to original PATH files and document how to obtain them 2016-08-23 17:28:41 +02:00
Johannes Pfeifer 3fc011a1b2 Adjust unit test for stack_solve_algo=7 to actually trigger different algorithms 2016-08-23 17:28:41 +02:00
Johannes Pfeifer 077917b1f4 dynare_solve: use correct termination criterion with stack_solve_algo=7 2016-08-23 17:28:41 +02:00
Johannes Pfeifer e7b8222144 Updated header of dynare_solve.m 2016-08-21 11:47:52 +02:00
Johannes Pfeifer 335ce74acb Remove error-display from dynare_solve.m
Prevents estimation crashing when invalid starting values for steady state computation arise during e.g. mode-finding
2016-08-21 11:44:18 +02:00
Johannes Pfeifer 80049a6d09 dynare_solve.m: make sure str2func is only used on strings
Otherwise, code crashes
2016-08-12 11:59:57 +02:00
Michel Juillard 22f49971bc fixing bug in mcp model setup
makes perfect_foresight_problem more efficient
added test case for stack_solve_algo == 7
2016-07-03 10:56:44 +02:00
Michel Juillard 76f008e4e4 PATH: remove calls to lcppath that doesn't work with perfect foresight models 2016-05-31 12:10:12 +02:00
Michel Juillard ddb9c0657c fixing linear complementarity problem 2016-05-31 12:10:12 +02:00
Michel Juillard 450d7b099a fixing error status for PATH hook 2016-05-31 12:10:12 +02:00
Michel Juillard c159dff19c adding hook for PATH solver 2016-05-31 12:10:12 +02:00
Johannes Pfeifer 465f55bb0e Correct evaluation of residuals in dynare_solve.m when exitflag does not clearly indicate solution
Otherwise, it crashes with bytecode
2016-05-05 10:46:39 +02:00
Johannes Pfeifer 1457666221 Only accept steady state when fsolve retuns with normal return code 1
Otherwise, termination due to tolerance criteria will be accepted as correct steady state
2016-03-22 21:55:51 +01:00
Michel Juillard c3c72192ac small bug corrections 2015-07-27 16:52:36 +02:00
Michel Juillard 2207b51aaa correcting typo 2015-07-27 15:51:48 +02:00
Michel Juillard 9b8077fc28 Merge branch 'master' into new_ep 2015-07-21 09:30:58 +02:00
Stéphane Adjemian (Charybdis) 27922a349c Fixed typo.
The value of jacobian_flag was not passed to fsolve.
2015-07-07 17:55:41 +02:00
Stéphane Adjemian (Hermes) c97aaad62d Fixed bug.
Rename options as options4fsolve, otherwise original options structure is lost.
2015-05-29 15:19:20 +02:00
Michel Juillard d81dda5044 fixing bug in last commit 2015-05-25 18:52:46 +02:00
Michel Juillard 3ef5bc2989 Merge branch 'master' into new_ep 2015-05-25 17:20:23 +02:00
Michel Juillard f03839cf12 removed "global options_" in dynare_solve.m and made it an
argument. Modified all calling functions.
2015-05-25 17:15:09 +02:00
Michel Juillard a53385ea28 dynare_solve: fix initial check for models with complementarity conditions 2015-03-07 10:10:35 +01:00
Stéphane Adjemian (Charybdis) 0851d277c4 Use correct tolerance parameter when solving perfect foresight model
with stack_solve_algo=7.
2015-02-18 23:52:17 +01:00
Michel Juillard 9fa92b0d02 fixing error message 2014-11-14 07:15:24 +01:00
Stéphane Adjemian (Charybdis) ce97a27c9d Cosmetic changes. 2014-09-10 17:49:33 +02:00
Johannes Pfeifer 308ce25031 Make sure that solve_algo=0 inherits options from options_.steady
Otherwise, MaxIter is hard-coded

(cherry picked from commit 2499f641ac2fab7ddf938263d0ee34f73765c4c8)
2014-09-10 17:49:33 +02:00
Sébastien Villemot 1a4df2fedf Merge pull request #659 from JohannesPfeifer/steady_fix
Fix size of NaN vector returned so that resid.m does not crash
2014-06-04 16:59:14 +02:00
Michel Juillard 979c1af53b perfect foresight with lmmcp: removed display of iterations 2014-05-28 09:23:10 +02:00
Johannes Pfeifer 616dad634a Fix size of NaN vector returned so that resid.m does not crash 2014-05-26 16:16:22 +02:00
Michel Juillard 5425245ec1 adding lmmcp 2014-05-18 21:49:52 +02:00
Sébastien Villemot e8ac5da9ea Fix trust region on entire model. 2014-05-09 15:33:26 +02:00
Michel Juillard 57ae7d7fd9 adding solve_algo=9: using trust_region algorithm on the entire model 2014-05-07 21:25:10 +02:00
Johannes Pfeifer d9d4fef251 Move check of Jacobian matrices for NaN and Inf to dedicated function for reuse in model_diagnostics.m 2014-03-28 14:52:06 +01:00
Sébastien Villemot a5be9dd845 Add trust-region nonlinear solver.
Closes #260
2014-02-04 17:56:27 +01:00
Sébastien Villemot 3fe5a728c6 Remove bad_cond_flag argument from solve1.
This flag was not grounded on any solid theoretical foundation.

This commit actually makes solve_algo=2 to be exactly the same than solve_algo=4.
2014-02-04 17:56:27 +01:00
Stéphane Adjemian (Charybdis) ddd95361ba Cosmetic changes. Added isoctave function to replace exist('OCTAVE_VERSION'). 2013-11-04 10:54:45 +01:00
Stéphane Adjemian (Charybdis) 969fe3c209 Renamed options_.solve_maxit as options_.steady.maxit. 2013-10-09 15:38:07 +02:00
Johannes Pfeifer aa59a4e173 Cosmetic fix to displaying steady state error
Gets rid of white space
2013-07-18 15:00:41 +02:00
Johannes Pfeifer ab1cb25ed3 Filter out cases where invalid starting value leads to NaN or Inf in Jacobian.
Replaces cryptic message "Some element of Newton direction isn't finite. Jacobian maybe singular or there is a problem with initial values" with more expressive message.
2013-06-21 10:37:16 +02:00
Michel Juillard 2e59409df4 corrected bug introduced in recent commit 48e00c5789 2012-11-01 09:26:05 +01:00
Michel Juillard 48e00c5789 corrected and clarified error messages when steady state computation fails 2012-10-31 11:09:25 +01:00
Michel Juillard 70e162c736 removed globals from solve1.m 2012-08-06 23:32:40 +02:00
Sébastien Villemot edbf3bd175 Remove useless calls to set_default_option 2012-04-20 17:08:11 +02:00
Stéphane Adjemian (Charybdis) 323e6fdf4f Added a second gstep option used as a parameter for the routine computing the hessian matrix.
In some cases, for instance for the non linear filters, it helps to reduce this new gstep parameter
to get a positive definite hessian matrix. options_.gstep is now a 2*1 vector. The first element is
the old gstep parameter, the second element is the new gstep parameter. The step defined for the
computation of the hessian matrix is now:

h1=max(abs(x),sqrt(gstep(1))*ones(n,1))*eps^(1/6)*gstep(2);
2012-03-09 16:36:26 +01:00
Houtan Bastani dcaed91f66 fix to license call (checkout only works for Matlab version >= 2011a) 2012-01-09 11:57:47 +01:00
Houtan Bastani 9be84bdf65 make check: fix bug in check for license 2011-12-23 18:22:41 +01:00
Marco Ratto dde9d2bfee license('test',' ... ') gives 1 even if the license exists but it is not active, implying a crash of the dynare matlab session. 2011-10-26 16:27:09 +02:00
Sébastien Villemot 0155b6832e Remove extra argument (in solve_algo=0 under Octave) 2011-09-19 16:41:53 +02:00
Sébastien Villemot c07a915d6e Improve the way we test for existence of toolboxes (more reliable in the case where the toolbox is installed but not activated) 2011-09-19 16:41:53 +02:00
Michel Juillard 6662aa9e26 expanded error message when initial values are incompatible with steady state equations 2011-07-14 12:20:36 +02:00
Sébastien Villemot 02652f6eb8 Updated copyright notices 2011-02-04 17:27:33 +01:00
Sébastien Villemot 757a9067c0 Global reindentation of MATLAB files 2011-02-04 17:17:48 +01:00
Ferhat Mihoubi ce07223628 - The Temporary terms management with bytecode when the model is block decomposed and solve_algo<5 is now compatible with octave
- Gets rid of warning message during the compilation of bytecode
2011-01-14 19:24:18 +01:00
Ferhat Mihoubi 708a062338 The Octave version of fsolve do not converge when it starts from the solution. Check if the initial guess is equal to the solution. 2011-01-14 19:24:17 +01:00
Sébastien Villemot 23ba760c3b Implement solve_algo=0 for Octave (closes #144) 2010-10-28 12:07:50 +02:00
sebastien 502e3e1df8 Beautified MATLAB code (Unix newline convention + Emacs indentation), except: AIM, swz, particle
git-svn-id: https://www.dynare.org/svn/dynare/trunk@3250 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-12-16 17:17:34 +00:00
sebastien fec9486fb9 Change to option solve_algo=4 of steady:
Even when the Jacobian is very badly conditioned, continue to use a Newton step


git-svn-id: https://www.dynare.org/svn/dynare/trunk@2862 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-08-21 12:05:34 +00:00
sebastien 6dc870727d trunk preprocessor:
* created a distinct expression tree for the static model (thus giving better sharing of sub-expressions and better computation of temporary terms for the static model)
* for that purpose, created StaticModel and DynamicModel classes (ModelTree still persists, but only contains code shared between StaticModel and DynamicModel)
* removed sparse static file (to be later replaced by new algorithm for steady state computation on large models)


git-svn-id: https://www.dynare.org/svn/dynare/trunk@2592 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-04-14 14:39:53 +00:00
ferhat ca974cdf48 The sparse option in model is now compatible with homotopy => matlab commit
git-svn-id: https://www.dynare.org/svn/dynare/trunk@2589 ac1d8469-bf42-47a9-8791-bf33cf982152
2009-04-10 16:57:37 +00:00
sebastien d4e2d6c27f trunk dynare_solve.m:
* fail if solve_algo=0 and we don't have the optimization toolbox (or under Octave); the previous behavior was to fallback on solve_algo=1
* fail if solve_algo is not between 0 and 4


git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@2090 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-09-22 13:13:04 +00:00
sebastien ae68da82ff trunk: added new solve_algo=4 in dynare_solve.m; this mode is the same than solve_algo=2, except that the solver behaves differently when the Jacobian is badly scaled or nearly singular (see header of solve2.m)
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@2089 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-09-22 12:52:17 +00:00
sebastien e9c7351aee trunk dynare_solve.m: for solve_algo = 2:
* when solve1() fails on a block, immediately return with info=1 instead of trying to solve subsequent blocks
* added debug messages


git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@2078 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-09-16 17:24:11 +00:00
sebastien db50368418 v4 matlab: fixed some existing copyright headers (and some other minor header issues)
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1974 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-08-01 12:40:33 +00:00
sebastien ddaaf9e1e3 v4 matlab:
* added a function matlab_ver_less_than() for testing Matlab version
* updated dynare_config.m and build_matlab.m accordingly
* removed tests to check whether we are older than Matlab 6.5 (R13), since we don't support those old versions anymore
* removed a few unnecessary uses of eval()


git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1936 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-07-07 17:08:55 +00:00
assia 9bc1ac138d header updated
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1534 ac1d8469-bf42-47a9-8791-bf33cf982152
2008-01-03 12:12:07 +00:00
michel 522e27e636 v4: csolve uses analytical Jacobian when possible
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1465 ac1d8469-bf42-47a9-8791-bf33cf982152
2007-11-27 14:16:13 +00:00
michel 77cdcce658 v4: adding Ramsey policy to parser;
changes to Ramsey policy Matlab code

git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1133 ac1d8469-bf42-47a9-8791-bf33cf982152
2007-01-04 14:42:27 +00:00
michel 4233d25da3 v4: added Chris Sims solver solve_algo=3
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1066 ac1d8469-bf42-47a9-8791-bf33cf982152
2006-11-12 16:02:29 +00:00
michel b5f602cc5b v4 dynare_solve.m: added debugging feature
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1010 ac1d8469-bf42-47a9-8791-bf33cf982152
2006-11-01 12:47:24 +00:00
michel 6c98c92782 v4: made options for solve tolerance criteria
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@925 ac1d8469-bf42-47a9-8791-bf33cf982152
2006-09-21 15:48:36 +00:00
adjemian 66722531f8 Added the steady state provided by the _steadystate file is checked in steady_
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@914 ac1d8469-bf42-47a9-8791-bf33cf982152
2006-09-15 14:16:34 +00:00
michel e2882021d4 v4: various updates to Matlab code
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@871 ac1d8469-bf42-47a9-8791-bf33cf982152
2006-08-24 13:07:26 +00:00
michel b6e1fef911 v4 dynare_solve.m solve1.m: bug corrections
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@812 ac1d8469-bf42-47a9-8791-bf33cf982152
2006-07-03 12:19:54 +00:00
michel 13ab8e03c5 v4 dynare_solve.m: corrected bug in one of the calls to solve1()
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@698 ac1d8469-bf42-47a9-8791-bf33cf982152
2006-03-29 11:33:20 +00:00
michel 6e23ddbf6d v4: global dr_ -> oo_.dr; corrected bug with dr_algo=1
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@608 ac1d8469-bf42-47a9-8791-bf33cf982152
2006-01-18 16:50:33 +00:00
michel 4a654eddae v4: corrected str2func bug in dynare_solve.m
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@541 ac1d8469-bf42-47a9-8791-bf33cf982152
2005-12-09 15:47:22 +00:00
michel c8812b552e changed computation of steady state for linear models
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@464 ac1d8469-bf42-47a9-8791-bf33cf982152
2005-09-27 20:22:40 +00:00
michel 9a9872fd33 dynare_v4 from CVS
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@8 ac1d8469-bf42-47a9-8791-bf33cf982152
2005-02-18 19:54:39 +00:00