Commit Graph

8534 Commits (16eabbbc4e9691518f4bf46d68d75fa35cc2a6ca)

Author SHA1 Message Date
Stéphane Adjemian (Ryûk) cd76bdff9e
Fix and update unit tests for local_state_space_iteration_2.
Add mat file with git lfs.
2022-05-13 12:13:46 +02:00
Stéphane Adjemian (Ryûk) c17728da83
Make sure matlab routine is used in first unit test. 2022-05-12 13:02:41 +02:00
Stéphane Adjemian (Ryûk) 49727cf7a0
Remove %$ in unit tests. 2022-05-12 13:00:44 +02:00
Stéphane Adjemian (Ryûk) 68887b36e6
Cosmetic change. 2022-05-12 13:00:02 +02:00
Stéphane Adjemian (Ryûk) 8edc6538bf
Rewrite header doc. 2022-05-12 12:58:32 +02:00
Stéphane Adjemian (Ryûk) c492ce7b73
Remove unused routines. 2022-05-12 10:33:48 +02:00
Stéphane Adjemian (Ryûk) 4e90a47521
Throw an error if some parameters are not initialised. 2022-05-12 10:33:48 +02:00
Johannes Pfeifer 0bc9a163b2 mom.standard_errors.m: provide more informative error message when hitting bounds during finite difference step 2022-05-12 09:51:21 +02:00
Sébastien Villemot a2a90c7e37
Merge branch 'model_diag' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2023
2022-05-05 18:41:34 +02:00
Johannes Pfeifer 737524d182 model_diagnostics.m: add check for potential naming conflict 2022-05-04 13:05:27 +02:00
Sébastien Villemot 63a116fb28
New += and *= syntaxes in “endval(learnt_in=…)” blocks 2022-05-03 17:46:59 +02:00
Sébastien Villemot 0b32ad5b51
Merge branch 'ramsey_steady' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2022
2022-04-29 17:44:28 +02:00
Sébastien Villemot b084c2e931
Perfect foresight with expectation errors: move computation of terminal steady states to the setup command
This is more logical, since those values are constraints from the point of view
of the solver.

Also, this allows to have maxit and tolf options for the steady state solver,
at the level of the setup command, without a clash with the same option names
for the deterministic solver at the level of the solver command.
2022-04-29 15:56:11 +02:00
Sébastien Villemot 418a8ebb5f
Drop steady_.m which is only a thin wrapper around evaluate_steady_state
As a consequence, move the sanity checks inside evaluate_steady_state, where
they make more sense.
2022-04-29 15:14:43 +02:00
Johannes Pfeifer 21004adf03 evaluate_steady_state.m: correctly account for presence of auxiliary variables potentially depending on Lagrange multipliers
Otherwise error message due to NaN may be thrown out due to them non having been set. Closes https://git.dynare.org/Dynare/preprocessor/-/issues/94
2022-04-28 21:49:05 +02:00
Sébastien Villemot e58552d914 Merge branch 'occbin_error' into 'master'
Occbin: filter out problems in solving the baseline model

See merge request Dynare/dynare!2021
2022-04-28 13:04:53 +00:00
Johannes Pfeifer 6536e135cb Occbin: filter out problems in solving the baseline model 2022-04-28 13:33:48 +02:00
Stéphane Adjemian (Charybdis) 8b197bf71c
Remove duplicate assignments for parameters. 2022-04-28 12:58:22 +02:00
Stéphane Adjemian (Charybdis) 1d22285043
Throw a warning if a parameter has no value. 2022-04-28 12:58:22 +02:00
Sébastien Villemot a600336c92
New “add” and “multiply” keywords in “shocks(learnt_in=…)” block 2022-04-26 15:22:15 +02:00
Sébastien Villemot 7dda3c7985
Preprocessor update
— Reject exogenous deterministic variables in a few places where they were
  erroneously accepted
– Use booleans for “exo_det” and “multiplicative” fields of M_.det_shocks
— Add checks on the value of the “learnt_in” option of “shocks” and “endval”
2022-04-26 14:52:31 +02:00
Sébastien Villemot b6dc32621f Merge branch 'simult' into 'master'
simult.m: fix saving of binary file

See merge request Dynare/dynare!2020
2022-04-25 12:52:22 +00:00
Johannes Pfeifer 6805cad636 simult.m: fix saving of binary file 2022-04-23 19:41:51 +02:00
Sébastien Villemot 8488674ce4
New shocks(learnt_in=…) and endval(learnt_in=…) blocks
For use with perfect_foresight_with_expectation_errors_setup.
2022-04-21 17:10:52 +02:00
Sébastien Villemot c06be7fefd
Octave 7 fixes bug in mkdir which now creates parent directory 2022-04-20 10:36:56 +02:00
Stéphane Adjemian (Charybdis) 931a9ba336
Use residuals and jacobian matrix returned by fsolve routine. 2022-04-19 19:20:20 +02:00
Stéphane Adjemian (Charybdis) 4d646ba30b
Fix evaluation of the dynamic model.
Call the wrapper instead of the dynamic routine.
2022-04-19 19:15:21 +02:00
Sébastien Villemot ce7540747b
dynare_solve: fix bug introduced in ef2bb4e669
The feval(f, x, args{:}) call would fail under Octave because the contents of
args{:} would be appended twice (hence too many input arguments error).

The same bug would materialize under MATLAB for errorcode>1.
2022-04-19 17:52:37 +02:00
Stéphane Adjemian (Charybdis) 63224ed45d
Bug fix (display of problematic equations). 2022-04-19 16:33:29 +02:00
Stéphane Adjemian (Charybdis) b9f7733c6b
Fix cherrypick routine.
Was failing when model contain variable and parameter names ending with the name
of a built-in function.

Closes #1813
2022-04-17 10:14:15 +02:00
Sébastien Villemot eb6a801bca
CI: bump to Octave 7.1.0 2022-04-15 14:33:02 +02:00
Sébastien Villemot 715aff891a
Octave 7 fixes bug related to generated files in +package folder 2022-04-15 14:33:02 +02:00
Sébastien Villemot 971a89fb73
Octave 7 now has ordqz (and ordeig was implemented in Octave 5) 2022-04-15 14:33:02 +02:00
Sébastien Villemot b7c74f8e9a
Octave 7 now has jsondecode 2022-04-15 14:33:01 +02:00
Sébastien Villemot ec5468c431
Octave 7 compatibility fix: suppress spurious warnings
In this version of Octave, “warning on” really enables all warnings (while this
was not the case in Octave 6, suprisingly; I think this used to be different
with even older Octave releases).

We therefore need to explicitly disable the Octave:array-as-logical warnings,
that is triggered by some internal Octave functions.

We also need to be careful to call “warning_config” instead of “warning on”
when restoring warnings to their default state.
2022-04-15 14:32:54 +02:00
Sébastien Villemot a0e78957da
Octave 7 compatibility fix: “arguments” is a reserved keyword
This confuses the Octave 7 parser in the context of anonymous functions.

Simply rename the variable to “args”.
2022-04-15 14:32:54 +02:00
Sébastien Villemot 10af04c6d8
Use Unicode copyright symbol (in UTF-8 encoding) in all source files
It is now supported by the MATLAB editor (as of R2022a).

The old ASCII notation is left in some files that we copy as-is from other
sources (e.g. in the contrib/ and m4/ subdirectories).

The particles submodule is not updated at this point, because it is in an
inconsistent state.

[skip ci]
2022-04-13 14:54:25 +02:00
Sébastien Villemot b70b864829
perfect_foresight_with_expectation_errors_setup: move terminal condition to last line of CSV file 2022-04-12 15:51:04 +02:00
Sébastien Villemot a8a9051b31
New option “constant_simulation_length” to “perfect_foresight_with_simulation_errors_solver” command 2022-04-12 15:45:50 +02:00
Johannes Pfeifer 23c007e716 IVF_core.m: directly use solver option fields 2022-04-11 08:33:28 +02:00
Stéphane Adjemian (Ryûk) ff9cf3814a
Remove useless copies of options_. 2022-04-10 22:17:45 +02:00
Stéphane Adjemian (Ryûk) b09e91ff55
Add routine description in headers. 2022-04-10 21:22:51 +02:00
Stéphane Adjemian (Ryûk) 87ecfa9ed1
Allow nonlinear solver to fail when simulating a static model.
Print a message instead of throwing an error if the nonlinear solver fails in a
period, since we do not need previous or future values of the endogenous
variables. If the nonlinear solver fails in period t, the endogenous variables
are set to nan in period t.
2022-04-10 20:57:34 +02:00
Stéphane Adjemian (Charybdis) f1aff2b370
Remove calls to dbstack in dynare_solve.
Adding three input parameters for maxit, tolf and tolx.

Closes #1841.
2022-04-10 20:29:57 +02:00
Stéphane Adjemian (Ryûk) 01203f7e39
Stop deterministic simulation if nonlinear solver failure.
Only for purely backward/forward models. In the case of purely static models the
solution for the previous or following period is not required.
2022-04-10 10:55:40 +02:00
Stéphane Adjemian (Ryûk) 23a72d7aaa
Use dynare_solve to simulate purely forward deterministic models. 2022-04-10 09:39:28 +02:00
Stéphane Adjemian (Ryûk) ef2bb4e669
Return and use errorcode from dynare_solve.
Note that the interpretation of the error code depends on the nonlinear solver.
2022-04-09 16:06:24 +02:00
Stéphane Adjemian (Ryûk) fe7d05f46a
Remove unnecessary condition (Octave/fsolve).
Since we already have checked that the initial guess is not a solution.
2022-04-09 16:06:24 +02:00
Stéphane Adjemian (Ryûk) 33b1827ea5
Bug fix (mixed complementarity problems). 2022-04-09 16:06:24 +02:00
Stéphane Adjemian (Ryûk) 48c41e6b0d
Return the initial guess if nonlinear system is ill-behaved...
At the initial guess, and we were not able to find another guess (randomizing).
2022-04-09 16:06:24 +02:00
Stéphane Adjemian (Ryûk) 56863d6e2f
Exit if initial guess is a solution...
Without entering in the nonlinear solvers.
2022-04-09 16:06:24 +02:00
Sébastien Villemot 0779816457 Merge branch 'resid' into 'master'
resid: Fix display of name tags with Ramsey equations

See merge request Dynare/dynare!2017
2022-04-05 06:16:39 +00:00
Johannes Pfeifer a5fe22bd1c resid: Fix display of name tags with Ramsey equations 2022-04-04 22:50:16 +02:00
Johannes Pfeifer c5557b5418 chol_SE.m: fix logical condition and assure symmetry instead of erroring out 2022-04-04 13:52:54 +02:00
Sébastien Villemot b4ce69db3a
Remove options_.slowc field
There was no user interface, and the feature that it provides has lost
relevance over time.

Note that algorithms for block and/or bytecode still internally use some
equivalent of this parameter, but its initial value will no longer be
modifiable (which could lead to bugs, see commit
e49e7e906f).
2022-03-31 17:39:43 +02:00
Sébastien Villemot 82070e4048 Merge branch 'mom_xls2' into 'master'
MoM: fix reading of XLS-files by assigning sheet info to base workspace

Closes #1840

See merge request Dynare/dynare!2014
2022-03-31 06:49:59 +00:00
Sébastien Villemot 3b4ef0df49
Add new “log” option to “var” statement
Ref. #349
2022-03-30 18:01:22 +02:00
Johannes Pfeifer 176baa2215 MoM: fix reading of XLS-files by assigning sheet info to base workspace
Closes https://git.dynare.org/Dynare/dynare/-/issues/1840
2022-03-30 09:59:36 +02:00
Johannes Pfeifer 35c30dc037 Occbin: use data instead of rawdata and gracefully exit if prefilter option is specified
Closes #1842
2022-03-29 12:16:48 +02:00
Stéphane Adjemian (Ryûk) 53324aad69
Return initial guess if trust_region fails. 2022-03-26 09:21:25 +01:00
Stéphane Adjemian (Ryûk) 4cccdd9074
Bug fix. Revert to previous Jacobian matrix if updated one is ill-behaved. 2022-03-25 19:42:40 +01:00
Stéphane Adjemian (Ryûk) f2bf98ee76
Return the value of info as a third argument (block_trust_region). 2022-03-25 19:42:40 +01:00
Stéphane Adjemian (Ryûk) aa8439d4cc
New implementation of the trust region algorithm.
Main difference is the presence of traps for NaN/Inf/Complex numbers in
residuals or the Jacobian matrix. Also added new unit tests.
2022-03-25 19:42:40 +01:00
Johannes Pfeifer 1ed765b8c4 perfect_foresight_solver_core.m: fix Fortran not 2022-03-25 14:23:11 +01:00
Sébastien Villemot facab0f81b
Merge branch 'mom' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2008
2022-03-25 12:51:40 +01:00
Sébastien Villemot e49e7e906f
Forbid changing the value of “slowc” if “block” or “bytecode” is used
The code is buggy and leads to wrong results, so forbid this combination.
2022-03-25 12:36:36 +01:00
Sébastien Villemot 014a3c3f2e
Merge branch 'sensitivity' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2009
2022-03-24 17:53:34 +01:00
Sébastien Villemot 9a4e08fe15
CI: bump to MATLAB R2022a 2022-03-24 17:44:51 +01:00
Sébastien Villemot b31fe76dfd
Provisions for MATLAB R2022a 2022-03-24 17:43:40 +01:00
Johannes Pfeifer f3bf8fb814 MOM: add missing debug option 2022-03-24 15:28:03 +01:00
Johannes Pfeifer a1ebd20a88 dynare_sensitivity.m: provide warning if order is reset 2022-03-24 13:02:25 +01:00
Sébastien Villemot 4da9d1e718
Block (without bytecode): avoid silent failures in some corner cases
Either ensure that oo_.determinstic_simulation.status is set, or really error out.
2022-03-23 17:33:37 +01:00
Sébastien Villemot dd1ec10ec8
Block (without bytecode): use dynatol.f as convergence criterion for perfect foresight
Was incorrectly using solve_tolf.
2022-03-23 17:25:32 +01:00
Sébastien Villemot e5f4d96c71
Fix typo 2022-03-23 16:58:59 +01:00
Sébastien Villemot bef8d80ba8
More conversions to logical values 2022-03-23 16:52:40 +01:00
Sébastien Villemot d5472d2338
Tighten input sanity checks of various MEX files
Note that the unitary test in lyapunov_solver.m that checks sparse matrix input
had to be removed. Previously, this test was passing by chance (because the
sparse test matrices had actually no zero element, hence the internal double
float storage was the same as in the dense case). Now it consistently fails
with the additional checks in disclyap_fast MEX.
2022-03-18 22:49:46 +01:00
Sébastien Villemot 07978affa5
Block decomposition: simplify MATLAB implementation of stack_solve_algo=3 (BiCGStab)
This commit makes it closer to the implementation in bytecode. In practice,
this change fixes convergence problems on some models.
2022-03-16 15:00:09 +01:00
Sébastien Villemot db5e04107f
solve_one_boundary.m: fix crash in verbose mode 2022-03-16 15:00:09 +01:00
Johannes Pfeifer 28536314c0 posterior moments: fix bugs that cause crashes
- Delete non-existing output argument
- prevent info from being overwritten
2022-03-14 14:50:49 +01:00
Stéphane Adjemian (Ryûk) 882091cc97
Return more info about nonlinear solver failures (solve1). 2022-03-03 22:30:38 +01:00
Stéphane Adjemian (Ryûk) 7072359241
Fix fifth output introduced in e815fb2 (exitflag was not updated). 2022-03-03 21:56:44 +01:00
Stéphane Adjemian (Ryûk) afd8359dbf
Do not compute g twice in solve1.
When jacobian is evaluated numerically.
2022-03-03 20:26:06 +01:00
Stéphane Adjemian (Ryûk) 9be328aeda
Cosmetic changes. 2022-03-03 20:24:18 +01:00
Stéphane Adjemian (Ryûk) f2193e8ec8
Add more checks on the initial evaluation. 2022-03-03 18:33:34 +01:00
Stéphane Adjemian (Ryûk) 3c85695b99
Use isinf() instead of isfinite() in solve1 routine. 2022-03-03 18:30:36 +01:00
Stéphane Adjemian (Ryûk) e815fb2901
Display exitflag returned by fsolve.
When the Newton fails in the simulation of backward models.
2022-03-03 18:19:33 +01:00
Stéphane Adjemian (Ryûk) e6592b3943
Display more info if Newton fails in backward model simulations. 2022-03-03 16:57:59 +01:00
Stéphane Adjemian (Ryûk) 7ee124bbba
Fix bug.
Return the paths for the endogenous only before the nonlinear solver crash.
2022-03-03 10:57:40 +01:00
Stéphane Adjemian (Charybdis) 90ae54a6ff
Translate to English. 2022-03-03 09:35:30 +01:00
Stéphane Adjemian (Charybdis) 9d1e07a2e4
Fix headers. 2022-03-03 09:35:30 +01:00
Sébastien Villemot ae1e31b7e0
Restore the possibility of calling the “resid” function without argument
Can be useful when writing “z = resid;” in a .mod file (i.e. not using the
preprocessor syntax).
2022-03-01 16:40:51 +01:00
Sébastien Villemot 3d7299c1e4
New option “non_zero” to the “resid” command
When this option is given, the “resid” command only displays non-zero residuals
2022-03-01 14:26:16 +01:00
Sébastien Villemot 0147faad5f
Fix stack_solve_algo=1 without bytecode, on solve two boundaries simple/complete blocks
The result for the last simulation period was wrong.
2022-02-25 16:32:16 +01:00
Stéphane Adjemian (Charybdis) c9825c803a
Fix description of the conditional_forecast command.
Closes #1844
2022-02-24 20:33:47 +01:00
Sébastien Villemot 4d39c6fab5 Merge branch 'error_message' into 'master'
get_error_message.m: condition on index being non-zero

See merge request Dynare/dynare!2003
2022-02-24 16:23:16 +00:00
Johannes Pfeifer a60ce435bd get_error_message.m: condition on index being non-zero
dsge_likelihood will expand the vector due to entry four of info containing the penalty, creating a 0 for entry 2
2022-02-22 12:22:51 +01:00
Sébastien Villemot a4f4d4462c
Merge branch 'disp_dr' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2002
2022-02-21 16:19:36 +01:00
Johannes Pfeifer d79895b66a Display of decision rules: deal with overflow of fields 2022-02-20 11:00:34 +01:00
Sébastien Villemot 1a9abc247f
Merge branch 'mom' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2001
2022-02-18 14:22:53 +01:00
Stéphane Adjemian (Charybdis) e7d11dd7b1
Remove aux variables from target definition (PAC). 2022-02-18 09:13:17 +01:00