Opened 5 years ago

Closed 22 months ago

#3945 closed enhancement (fixed)

Improve Brent solver bracketing implementation in FMU run-time

Reported by: Iakov Nakhimovski Owned by: efredriksson
Priority: major Milestone: Pending
Component: FMU/JMU runtime Version: trunk
Keywords: #3944. Cc:

Description

This is a part of #3944.

Instead of directly starting doubling the range when bracketing we could run a few steps of the secant algorithm. If we start near the solution this should actually converge really fast. We could do secant steps to bracket/solve and then after, e.g., 4 iterations we switch to the current strategy but use the last step from the secant solver (and not nominal/10) as the starting step length.

Attachments (1)

brent_update.patch (8.4 KB) - added by Christian Andersson 5 years ago.
Brent with Newton

Download all attachments as: .zip

Change History (21)

comment:1 Changed 5 years ago by Iakov Nakhimovski

Milestone: Pending
Type: defectenhancement

comment:2 Changed 5 years ago by Christian Andersson

changeset:7361

Improved Brent by first taken a few Newton steps to improve the initial Bracketing, related to ticket:3945. This commit will be reverted directly to allow for investigation of the impact of the commit.

comment:3 Changed 5 years ago by Christian Andersson

changeset:7363

Reverted changes made in changeset:7361 . Related to ticket:3945

Changed 5 years ago by Christian Andersson

Attachment: brent_update.patch added

Brent with Newton

comment:4 Changed 5 years ago by Christian Andersson

changeset:7400

New test with updated Newton in Brent from changeset:7361. Related to ticket:3945

comment:5 Changed 5 years ago by Christian Andersson

changeset:7402

Revert changes from changeset:7400. Related to ticket:3945

comment:6 Changed 5 years ago by Christian Andersson

changeset:7413

Reapplied Newton in Brent under the option block_solver_experimental_mode 16. Related to ticket:3945

comment:7 Changed 5 years ago by Christian Andersson

changeset:7517

Added an option for turning on / off newton before brent. Related to ticket:3945

comment:8 Changed 5 years ago by Christian Andersson

changeset:7548

Changed default value of using Newton before Brent to True. Related to ticket:3945

comment:9 Changed 5 years ago by Christian Andersson

changeset:7571

Updated Newton before Brent to only be successfull if there was a significant decrease of the residual. Related to ticket:3945

comment:10 Changed 5 years ago by Iakov Nakhimovski

r7613:

Temporarily reverting r7548 to check on failing tests. See ticket:3945

comment:11 Changed 5 years ago by efredriksson

Note: Changing the default value of using Newton before Brent to True causes the verification of InvertingSchmittTrigger to fail. This will have to be investigated further.

comment:12 Changed 5 years ago by Christian Andersson

changeset:7633

Removed limitation on the step length in Newton before brent. It has been seen that even very small step length are necessary. Related to ticket:3945

comment:13 Changed 5 years ago by Christian Andersson

changeset:7634

Recommit of step limitation, due to failed model verification, although slightly modified. Related to ticket:3945

comment:14 Changed 5 years ago by Christian Andersson

changeset:7636

Minor doc commit. Related to ticket:3945

comment:15 Changed 4 years ago by Iakov Nakhimovski

r7692:

Reactivated use_newton_for_brent as default-
Putting changes from r7548 back after tests. See ticket:3945

comment:16 Changed 4 years ago by Christian Andersson

changeset:7725

Merged changes made in the release branch to trunk. Related to ticket:3945

comment:17 Changed 4 years ago by aramle

r7833 Fixed bug with x not matching with f(x) in jmi_brent_newton and added finite difference in other direction in case of failure in function evaluation.

comment:18 Changed 4 years ago by aramle

r8051 Added experimental mode with nominals in active bounds criteria plus fixed Brent bug with finite differences in other direction (#3945).

comment:19 Changed 4 years ago by toivo

Owner: changed from toivo to efredriksson
Status: newassigned

comment:20 Changed 22 months ago by Jesper Mattsson

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.