minor fixes
parent
a44097af93
commit
6df077805d
|
@ -21,16 +21,6 @@ HELP: derivative ( x function -- m )
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
HELP: fast-derivative ( x function -- m )
|
|
||||||
{ $values { "x" "a x-position on the function" } { "function" "a differentiable function" } }
|
|
||||||
{ $description
|
|
||||||
"Approximates the slope of the tangent line of the provided function "
|
|
||||||
"by using a secant line with very near points. This implementation is "
|
|
||||||
"naive and is only provided because it is used in the much more "
|
|
||||||
"accurate " { $link derivative } " word. Use this word if accuracy "
|
|
||||||
"is of no importance."
|
|
||||||
} ;
|
|
||||||
|
|
||||||
HELP: derivative-func ( function -- der )
|
HELP: derivative-func ( function -- der )
|
||||||
{ $values { "func" "a differentiable function" } { "der" "the derivative" } }
|
{ $values { "func" "a differentiable function" } { "der" "the derivative" } }
|
||||||
{ $description
|
{ $description
|
||||||
|
@ -48,6 +38,5 @@ HELP: derivative-func ( function -- der )
|
||||||
ARTICLE: "derivatives" "The Derivative Toolkit"
|
ARTICLE: "derivatives" "The Derivative Toolkit"
|
||||||
"A toolkit for computing the derivative of functions."
|
"A toolkit for computing the derivative of functions."
|
||||||
{ $subsection derivative }
|
{ $subsection derivative }
|
||||||
{ $subsection derivative-func }
|
{ $subsection derivative-func } ;
|
||||||
{ $subsection fast-derivative } ;
|
|
||||||
ABOUT: "derivatives"
|
ABOUT: "derivatives"
|
||||||
|
|
|
@ -1,15 +1,9 @@
|
||||||
! Copyright (c) 2008 Reginald Ford
|
|
||||||
! Tools for approximating derivatives
|
! Tools for approximating derivatives
|
||||||
|
|
||||||
USING: kernel math math.functions locals generalizations float-arrays sequences
|
USING: kernel math math.functions locals generalizations float-arrays sequences
|
||||||
math.constants namespaces math.function-tools math.points math.ranges math.order ;
|
math.constants namespaces math.function-tools math.points math.ranges math.order ;
|
||||||
IN: math.derivatives
|
IN: math.derivatives
|
||||||
|
|
||||||
! Ridders' method of a derivative, from the chapter
|
|
||||||
! "Accurate computation of F'(x) and F'(x)F''(x)",
|
|
||||||
! From "Advances in Engineering Software, Vol. 4, pp. 75-76
|
|
||||||
! \ fast-derivative has been factored out for use by children
|
|
||||||
|
|
||||||
: largest-float ( -- x ) HEX: 7fefffffffffffff bits>double ; foldable
|
: largest-float ( -- x ) HEX: 7fefffffffffffff bits>double ; foldable
|
||||||
: ntab 10 ; ! max size of tableau (main accuracy setting)
|
: ntab 10 ; ! max size of tableau (main accuracy setting)
|
||||||
: con 1.41 ; ! stepsize is decreased by this per-iteration
|
: con 1.41 ; ! stepsize is decreased by this per-iteration
|
||||||
|
@ -30,9 +24,6 @@ SYMBOL: matrix
|
||||||
[ [ h get + ] dip eval ]
|
[ [ h get + ] dip eval ]
|
||||||
[ [ h get - ] dip eval ]
|
[ [ h get - ] dip eval ]
|
||||||
2bi slope ; inline
|
2bi slope ; inline
|
||||||
: fast-derivative ( x function -- m )
|
|
||||||
over epsilon sqrt * h set
|
|
||||||
(derivative) ; inline
|
|
||||||
: init-matrix ( -- )
|
: init-matrix ( -- )
|
||||||
ntab [ ntab <float-array> ] replicate
|
ntab [ ntab <float-array> ] replicate
|
||||||
matrix set ;
|
matrix set ;
|
||||||
|
@ -70,5 +61,4 @@ SYMBOL: matrix
|
||||||
] all? drop
|
] all? drop
|
||||||
ans get ; inline
|
ans get ; inline
|
||||||
: derivative-func ( function -- function ) [ derivative ] curry ; inline
|
: derivative-func ( function -- function ) [ derivative ] curry ; inline
|
||||||
: fast-derivative-func ( function -- function ) [ fast-derivative ] curry ; inline
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue