Difference between revisions of "Automatic Differentiation"

From HaskellWiki
Jump to navigation Jump to search
(darcs.haskell.org -> code.haskell.org)
Line 9: Line 9:
 
Implementations:
 
Implementations:
   
  +
* [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/ad ad]
 
* [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/fad fad]
 
* [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/fad fad]
  +
* [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/rad rad]
 
* [[Vector-space]]
 
* [[Vector-space]]
 
* http://comonad.com/haskell/monoids/dist/doc/html/monoids/Data-Ring-Module-AutomaticDifferentiation.html
 
* http://comonad.com/haskell/monoids/dist/doc/html/monoids/Data-Ring-Module-AutomaticDifferentiation.html

Revision as of 21:26, 12 May 2011

Automatic Differentiation roughly means that a numerical value is equipped with a derivative part, which is updated accordingly on every function application. Let the number be equipped with the derivative : . For example the sinus is defined as:

You see, that's just estimating errors as in physics. However, it becomes more interesting for vector functions.

Implementations:

Power Series

You may count arithmetic with power series also as Automatic Differentiation, since this means just working with all derivatives simultaneously.

Implementation with Haskell 98 type classes: http://code.haskell.org/~thielema/htam/src/PowerSeries/Taylor.hs

With advanced type classes in Numeric Prelude: http://hackage.haskell.org/packages/archive/numeric-prelude/0.0.5/doc/html/MathObj-PowerSeries.html

See also