Commit Graph

27 Commits (6adf1c26392d737dc31844aa3add0441e040f4a8)

Author SHA1 Message Date
Sébastien Villemot 7f58e819c6
Bump minimal required version of MATLAB to R2018b
Ref. #1907
2023-11-22 16:00:04 +01:00
Johannes Pfeifer c91e1f895b trust_region.m: trap case where linear combination with weight 0 on infinite value returns NaN 2022-05-25 14:21:16 +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) 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
Stéphane Adjemian (Ryûk) 0d092a36a0
Acknowledge option trust_region_initial_step_bound_factor in matlab based trust_region routine. 2021-07-23 19:44:16 +02:00
Sébastien Villemot 766fff88f6
Use secure URL for link to GNU licenses 2021-06-09 17:35:05 +02:00
Sébastien Villemot 547969df45
Trust region: compatibility fix for Octave and MATLAB < R2017b
When merging the enterprise code, the dogleg subfunction was modified to
incorporate a call to decomposition(), which does not exist under Octave and
MATLAB < R2017b.

For those cases, we reinstate the old code (which uses a plain matrix right
divide).
2021-01-15 17:30:17 +01:00
Stéphane Adjemian (Charybdis) 2bc7944286
Removed warning. 2020-03-11 12:47:23 +01:00
Stéphane Adjemian (Charybdis) 776f50b124
Changed rescaling strategy in trust region algorithm.
Reverts to the original MINPACK's behaviour.
2020-02-20 09:34:13 +01:00
Sébastien Villemot caf0c8e1f8
Trust region solver: recompute Jacobian only when necessary
Previously, the solver would recompute the Jacobian at every iteration. But, if
an iteration fails, the current point is not moved (only the radius of the
trust region changes), hence it is not necessary to recompute the Jacobian in
that case. This commit implements this optimization.
2019-11-14 16:03:50 +01: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 (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
Stéphane Adjemian (Charybdis) 88e1701289 Removed useless commas and semicolons. 2017-05-16 13:24:46 +02:00
Houtan Bastani bebcfffe04 fix license, file copyright errors 2016-05-04 16:30:16 +02:00
Johannes Pfeifer 5d8bc7188c Allow detailed exitcode as output of trust_region.m 2016-03-22 21:55:55 +01:00
Johannes Pfeifer 9c8da869f7 Delete redundant computation from trust_region.m 2016-03-22 21:55:54 +01:00
Johannes Pfeifer 934901036b Test for solution before breaking with error code -3 in trust_region.m
Fixes #1067
2015-10-06 13:59:59 +02:00
Houtan Bastani 07e29125a2 Revert "Merge pull request #1064 from JohannesPfeifer/trust_region"
This reverts commit 9cc96b93c0, reversing
changes made to 1bc965625c.
2015-10-06 09:52:16 +02:00
Johannes Pfeifer c01352ea3b Fix exit criterion in trust_region.m
Otherwise, error code -3 (Trust region became uselessly small) was accepted as a solved steady state
2015-09-25 09:11:47 +02:00
Sébastien Villemot 6ceecd1cf6 Tighten convergence criterion of trust region.
Closes #666
2014-07-01 18:43:16 +02:00
Michel Juillard b5ca118bfb trust_region: replace a loop with a matrix expression 2014-05-11 14:44:44 +02:00
Michel Juillard fad9aa6846 removing debugging printing 2014-05-07 14:23:31 +02:00
Michel Juillard 58ba964bb7 trust_region/dogleg: fixing sign error 2014-05-07 13:34:59 +02:00
Sébastien Villemot c58183b552 Fix typo in trust_region code. 2014-02-21 14:47:41 +01:00
Sébastien Villemot a5be9dd845 Add trust-region nonlinear solver.
Closes #260
2014-02-04 17:56:27 +01:00