|
|
Automatic generation of Jacobian matrices
Is there an existing FORTRAN library for automatically generating
Jacobian matrices of a function?
I'm thinking about a subroutine like
generate_jacobian(f, n, m, point, jac)
where f: R^n -> R^m is the (external) function, point is the vector of
length n at which the Jacobian is to be evaluated and jac is the
resulting matrix.
Differentiation method I don't care about, any method with reasonable
accuracy will suffice. Requiring third-party differentiators is OK.
This is such a common problem, with all the FORTRAN diff stuff my gut
tells me there has got to be something, but I just couldn't find it by
myself.
Any help is appreciated.
--
-- Philipp Emanuel Weidmann
|
|
0
|
|
|
|
Reply
|
Philipp
|
7/9/2010 3:33:31 PM |
|
Philipp E. Weidmann <philipp.weidmann@gmx.de> wrote:
> Is there an existing FORTRAN library for automatically generating
> Jacobian matrices of a function?
....
> Differentiation method I don't care about, any method with reasonable
> accuracy will suffice. Requiring third-party differentiators is OK.
Maybe I'm missing the point, but if you don't care about differentiation
method and can accept using a third party differentiator, then there is
nothing really left to do. The Jacobian is nothing but derivatives.
Numerical differentiation of a completely arbitrary function with
"reasonable" accuracy is a non-trivial problem. That's where all the
"fun" would be.
--
Richard Maine | Good judgment comes from experience;
email: last name at domain . net | experience comes from bad judgment.
domain: summertriangle | -- Mark Twain
|
|
0
|
|
|
|
Reply
|
nospam
|
7/9/2010 3:52:18 PM
|
|
You can use an adjoint compiler to generate the Jacobian function from the original
function routine. Then you just call the adjoint (or tangent-linear) routine so as to
build up the matrix you require.
The one I used to use for development purposes was "TAMC" (Tangent linear and Adjoint
Model Compiler). See
http://autodiff.com/tamc/
cheers,
paulv
Philipp E. Weidmann wrote:
> Is there an existing FORTRAN library for automatically generating
> Jacobian matrices of a function?
>
> I'm thinking about a subroutine like
>
> generate_jacobian(f, n, m, point, jac)
>
> where f: R^n -> R^m is the (external) function, point is the vector of
> length n at which the Jacobian is to be evaluated and jac is the
> resulting matrix.
>
> Differentiation method I don't care about, any method with reasonable
> accuracy will suffice. Requiring third-party differentiators is OK.
>
>
> This is such a common problem, with all the FORTRAN diff stuff my gut
> tells me there has got to be something, but I just couldn't find it by
> myself.
>
>
> Any help is appreciated.
>
|
|
0
|
|
|
|
Reply
|
Paul
|
7/9/2010 3:55:52 PM
|
|
Richard Maine wrote:
> Maybe I'm missing the point, but if you don't care about differentiation
> method and can accept using a third party differentiator, then there is
> nothing really left to do. The Jacobian is nothing but derivatives.
Of course it is, but what I'm looking for is a routine that assembles
all the neccessary derivatives into a matrix, and evaluates them at the
point given.
--
-- Philipp Emanuel Weidmann
|
|
0
|
|
|
|
Reply
|
Philipp
|
7/9/2010 4:12:07 PM
|
|
Paul van Delst wrote:
> You can use an adjoint compiler to generate the Jacobian function from the original
> function routine. Then you just call the adjoint (or tangent-linear) routine so as to
> build up the matrix you require.
>
> The one I used to use for development purposes was "TAMC" (Tangent linear and Adjoint
> Model Compiler). See
> http://autodiff.com/tamc/
>
That looks interesting, I'll look into it.
Thank you kindly.
--
-- Philipp Emanuel Weidmann
|
|
0
|
|
|
|
Reply
|
Philipp
|
7/9/2010 4:13:59 PM
|
|
|
4 Replies
588 Views
(page loaded in 0.022 seconds)
|
|
|
|
|
|
|
|
|