[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

### D.9.4 Additional `kinsol` notes

When a user supplied Jacobian function j is specified, the solution is likely to be found faster and more accurately. The Jacobian should be given if an analytical form for f is known, from which the Jacobian can be obtained easily by partial differentiation. If the Jacobian is unavailable, a finite difference method implemented internally by `kinsol` is used as a substitute and will usually yield acceptable results.

Tolerances are not explicitly specified on the virtual side of the interface although the native `kinsol` API requires them. A range of tolerances over ten orders of magnitude is automatically tried before giving up.

Similarly to the `glpk` and `lpsolve` library interfaces (`glpk` and `lpsolve`), the only expressible constraint through the virtual code interface is that all variables are non-negative. Arbitrary upper and lower bounds can be simulated by appropriate variable substitutions in the formulation of the problem.

The `kinsol` library natively requires a system function f with equally many inputs as outputs, and will search only for the input associated with an output vector of all zeros, but the virtual code interface relaxes these requirements by allowing a function that transforms between lists of unequal lengths, and will search for the input of f causing it to match any given “optimal” output o. These effects are achieved by padding the shorter of the two vectors transparently and subtracting the specified optimum from the result.

The `kinsol` library can be configured to use single precision, double precision, or extended precision arithmetic, but only a double precision configuration is compatible with `avram`. This condition is checked when `avram` is configured and it will not interface with alternative `kinsol` configurations.

The `kinsol` library has some more advanced features to which this interface doesn’t do justice, such as preconditioning, scaling, solution of systems with band limited Jacobians, and concurrent computation.

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

This document was generated on November 8, 2012 using texi2html 1.82.