Commit Graph

55 Commits (3a115d4fcc1e88a37b22c9ae5ea257004c68dfe4)

Author SHA1 Message Date
Sébastien Villemot 6747f2130e
Perfect foresight: fix illegal memory read with bytecode + endval_steady
The exogenous steady state vector was passed as a row-vector to
evaluate_steady_state, thus leading to an incorrectly-sized matrix passed to
bytecode when checking the steady state on the dynamic model (when different
from the static model).
2023-09-01 14:52:57 +02:00
Sébastien Villemot d5a3a8e16a
Various improvements to perfect foresight homotopy
– new option “endval_steady” to pf_setup command to recompute terminal
  steady state in the homotopy loop

– new options “homotopy_linearization_fallback” and
  “homotopy_marginal_linearization_fallback” to pf_solver and pfwee_solver
  commands, to get an approximate solution when homotopy fails to go to 100%

– new options “homotopy_initial_step_size”, “homotopy_min_step_size”,
  “homotopy_step_size_increase_success_count” and “homotopy_max_completion_share”
  to pf_solver and pfwee_solver commands to fine tune the homotopy behaviour

– removed option “homotopy_alt_starting_point” to pf_solver command, not really
  useful

– new options “steady_solve_algo”, “steady_tolf”, “steady_tolx”,
  “steady_maxit”, “steady_markowitz” to pf_solver and pfwee_solver commands, to
  control the computation of the terminal steady state (and remove the
  equivalent options which previously had different names in pfwee_solver command)
2023-06-21 15:58:23 +02:00
Sébastien Villemot 7722e8e36b
Perfect foresight: inner functions no longer return a modified oo_
They now only return what’s really their output (simulated paths, maximum
residual error…). This is a move towards a more functional programming style.
2023-06-06 18:13:10 +02:00
Sébastien Villemot fe142b663e
Perfect foresight: allow homotopy for purely backward/forward/static models
This was previously disabled, but the code seems to work.
2023-06-06 17:26:07 +02:00
Sébastien Villemot 1cf83dc278
perfect_foresight_solver: always use perfect_foresight_problem MEX for computing residuals
The MEX no works on models without leads or lags.

This is essentially a revert of 74dc4f81f0.

Ref. #1850
2023-06-06 17:06:10 +02:00
Sébastien Villemot 80a6967827
Remove unused options_.scalv 2023-04-14 16:38:14 +02:00
Sébastien Villemot 65053667cf
New “homotopy_alt_starting_point” option to “perfect_foresight_solver” command 2023-02-07 14:49:00 -05:00
Sébastien Villemot be698d5f98
Perfect foresight + homotopy: add missing newline 2023-02-06 15:14:02 -05:00
Johannes Pfeifer 74dc4f81f0 perfect_foresight_solver.m: loop over dynamic file when mex cannot be used
Closes https://git.dynare.org/Dynare/dynare/-/issues/1850
2022-05-18 08:59:39 +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 bef8d80ba8
More conversions to logical values 2022-03-23 16:52:40 +01:00
Stéphane Adjemian (Ryûk) f5f47cd834
Add new option last_simulation_period to initval_file command.
Also adjust the periods in Simulated_time_series (output of the perfect
foresight solver in the workspace). Note that this dseries object contains the
observations for the initial condition (M_.orig_maximum_lag observations) and
for the terminal condition (M_.orig_maximum_lead observations).

See #1838.

Fix testsuite (wrong file name)
2022-01-21 17:39:47 +01:00
Stéphane Adjemian (Charybdis) 38e1cd5d4e
Do not include auxiliaries in Simulated_time_series...
And add paths for the exogenous variables.
2022-01-21 16:50:42 +01:00
Sébastien Villemot 766fff88f6
Use secure URL for link to GNU licenses 2021-06-09 17:35:05 +02:00
Stéphane Adjemian (Charybdis) 27ee801a67
Add specialized version of sim1 for static models.
Also add an integration test and fix homotopy error message.
2021-05-28 14:11:34 +02:00
Michel Juillard fd09b98150 fix bug when no convergence and backward model 2020-03-31 15:40:49 +02:00
Houtan Bastani eb6ab0696a
gui: added fields to `oo_` to indicate which commands have been run 2020-03-03 11:45:46 +01:00
Houtan Bastani 7712a02f02
add print and noprint option to perfect_foresight_solver. closes #1647 2019-09-12 14:50:14 +02:00
Houtan Bastani e043c60903
pass M_, options_, oo_ as arguments to stoch_simul, simult_, discretionary_policy. closes dynare#1197 2019-09-12 11:57:01 +02:00
Sébastien Villemot f8af21819e
Simplify the interface to perfect_foresight_problem MEX 2019-07-09 14:33:17 +02:00
Sébastien Villemot 7d9b2a557b
perfect_foresight_problem MEX: number of threads is now configurable 2019-06-27 17:00:12 +02:00
Sébastien Villemot 5b591fac42
New perfect_foresight_problem MEX file
It constructs the stacked residuals and jacobian of the perfect foresight
problem.

It is an almost perfect replacement for the perfect_foresight_problem.m
routine, while being much more efficient.

Note however that the DLL never return complex numbers (it instead puts NaNs at
the place where there would have been complex). This may create problems for
some MOD files; the algorithms will need to be adapted to use a more
line-search method.
2019-06-24 17:53:59 +02:00
Sébastien Villemot 5a36d57b90
Perfect foresight: remove unused nnzJ argument in several stacked problem functions 2019-05-13 18:33:26 +02:00
Stéphane Adjemian (Charybdis) 24cc67e585 Ensure that all perfect foresight solvers work with periods=1.
See #1205 and #1176.
2019-04-26 15:55:48 +02:00
Sébastien Villemot 7a75872f72
Modernization: use tilde (~) syntax for ignored output arguments 2018-11-13 18:02:09 +01:00
Sébastien Villemot a1b8bd39b2 Move the location of various generated files on the filesystem
- M and MEX files are now under +${MODELNAME}/
- bytecode, C source and JSON now under ${MODELNAME}/model/
2018-06-27 17:03:39 +02:00
Stéphane Adjemian (Scylla) 7be8f10e0e Use cells of strings instead of char arrays. 2018-01-09 22:30:01 +01:00
Stéphane Adjemian (Charybdis) 1bf81c9f5a Fixed copyright notices. 2017-05-18 18:36:38 +02:00
Stéphane Adjemian (Charybdis) 5417b27ac7 Fixed indentation of matlab files. 2017-05-16 15:10:20 +02:00
MichelJuillard 62efd9930e Merge pull request #1148 from JohannesPfeifer/foresight_imaginary
Add check whether real part of complex solution solves the model
2016-04-12 13:06:26 +02:00
Johannes Pfeifer 0669ac4c1c Adjust verbosity of solvers 2016-03-25 20:14:25 +01:00
Stéphane Adjemian(Charybdis) e714dc1a9f Fixed bug in homotopy.
Convex combination for initial/terminal endogenous variables paths was wrong.
2016-03-24 22:42:44 +01:00
Johannes Pfeifer 6bca322809 Add check whether real part of complex solution solves the model
Fixes #896
2016-03-23 21:25:58 +01:00
Michel Juillard e8f318ff50 fixed problems in extended path 2015-07-23 14:27:55 +02:00
Michel Juillard 9b8077fc28 Merge branch 'master' into new_ep 2015-07-21 09:30:58 +02:00
Stéphane Adjemian (Hermes) ccad2848db Homotopy not implemented for purely backward or forward perfect foresight
models.
2015-06-04 12:28:58 +02:00
Michel Juillard 127730d731 solve bugs when there are lags of exogenous variables on more than one
period in deterministic models.
2015-05-27 12:22:32 +02:00
Michel Juillard b3047c9742 Merge branch 'master' into new_ep 2015-05-23 18:26:07 +02:00
Sébastien Villemot f86b91d3d6 Perfect foresight solver: inform the user when we switch to a homotopy method. 2015-04-22 14:44:39 +02:00
Sébastien Villemot 8ab1239d79 Fix handling of warnings in perfect foresight solver with homotopy. 2015-04-22 12:23:20 +02:00
Michel Juillard 2ca7be4e5e Merging changes in master 2015-02-23 18:02:20 +01:00
Stéphane Adjemian (Charybdis) 43f2ec1d9d Fixed display of the homotopy steps when the residuals are complex. 2015-02-21 13:58:52 +01:00
Stéphane Adjemian (Charybdis) ff7c1f5cda Cosmetic change. 2015-02-21 13:57:48 +01:00
Stéphane Adjemian (Charybdis) 9bdf75a52c Fixed bug in the initialization of the homotopy for perfect foresight models. 2015-02-21 13:56:11 +01:00
Michel Juillard 55ea2100c6 Merge branch 'master' into new_ep 2015-02-19 10:27:15 +01:00
Stéphane Adjemian (Charybdis) 5768acf17e Fixed the verbosity of perfect foresight models solvers.
With stack_solve_algo={0, 6} the verbosity is controlled with
options_.verbosity instead of options_.no_homotopy.

Also harmonized the printed informations across these two algorithms.
2015-02-18 23:58:37 +01:00
Houtan Bastani ca83397d95 update copyright dates for files changed in 2015 2015-02-16 09:08:02 +01:00
Michel Juillard 21f009a531 Merge branch 'master' into new_ep 2015-02-14 11:54:57 +01:00
Stéphane Adjemian (Charybdis) b3ed7901cf Fixed bug in homotopy for perfect foresight models.
Homotopy was not working if nans or complex numbers were present in oo_.endo_simul.
2015-02-13 16:04:25 +01:00
Stéphane Adjemian (Charybdis) 3b41aa0e60 Fixed bug related to the type of initial_period. 2015-02-13 15:59:49 +01:00