Skip to content

Improving differentiation for algebraic solver #1257

@charlesm93

Description

@charlesm93

Description

There are two ways to improve the way in which we compute the Jacobian matrix of an algebraic solver:

  • compute the Jacobian of the system with respect to the parameters and the unknown simultaneously, to use their shared expression tree.
  • compute the Jacobian-adjoint vector product directly, and thence only do one sweep of reverse-mode AD.

The two options are competing but should be fairly straightforward to implement and compare.
Note the procedure here will work for any algebraic solver where the sensitivities are computed via the implicit function theorem.

Expected Output

Increased speed when solving algebraic equations and computing their sensitivities. Will test on classical PK steady state problem and find the mode of a Laplace approximation.

Discussion on forum

https://discourse.mc-stan.org/t/better-computation-of-the-jacobian-matrix-for-algebraic-solver/8593

Current Version:

v2.19.1

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions