symdiff(3)



math::calculus::symdiffSymbolic differentiation fmath::calculus::symdiff(3tcl)

______________________________________________________________________________

NAME
       math::calculus::symdiff - Symbolic differentiation for Tcl

SYNOPSIS
       package require Tcl  8.5

       package require grammar::aycock  1.0

       package require math::calculus::symdiff  1.0.1

       math::calculus::symdiff::symdiff expression variable

       math::calculus::jacobian variableDict

______________________________________________________________________________

DESCRIPTION
       The math::calculus::symdiff package provides a symbolic differentiation
       facility for Tcl math expressions. It is useful for  providing  deriva-
       tives  to  packages  that either require the Jacobian of a set of func-
       tions or else are more efficient or stable when the  Jacobian  is  pro-
       vided.

PROCEDURES
       The math::calculus::symdiff package exports the two procedures:

       math::calculus::symdiff::symdiff expression variable
              Differentiates  the  given expression with respect to the speci-
              fied variable. (See Expressions below for a  discussion  of  the
              subset of Tcl math expressions that are acceptable to math::cal-
              culus::symdiff.)  The result is a Tcl expression that  evaluates
              the  derivative.  Returns  an error if expression is not a well-
              formed expression or is not differentiable.

       math::calculus::jacobian variableDict
              Computes the Jacobian of a system of equations.  The  system  is
              given  by  the dictionary variableDict, whose keys are the names
              of variables in the system, and whose values are Tcl expressions
              giving the values of those variables. (See Expressions below for
              a discussion of the subset of Tcl math expressions that are  ac-
              ceptable  to  math::calculus::symdiff.  The  result is a list of
              lists: the i'th element of the j'th sublist is the  partial  de-
              rivative of the i'th variable with respect to the j'th variable.
              Returns an error if any of the expressions cannot be differenti-
              ated, or if variableDict is not a well-formed dictionary.

EXPRESSIONS
       The  math::calculus::symdiff package accepts only a small subset of the
       expressions that are acceptable to Tcl commands such  as  expr  or  if.
       Specifically, the only constructs accepted are:

       o      Floating-point constants such as 5 or 3.14159e+00.

       o      References  to  Tcl  variable using $-substitution. The variable
              names must consist of alphanumerics and underscores: the  ${...}
              notation is not accepted.

       o      Parentheses.

       o      The +, -, *, /. and ** operators.

       o      Calls  to the functions acos, asin, atan, atan2, cos, cosh, exp,
              hypot, log, log10, pow, sin, sinh. sqrt, tan, and tanh.

       Command substitution, backslash substitution,  and  argument  expansion
       are not accepted.

EXAMPLES
              math::calculus::symdiff::symdiff {($a*$x+$b)*($c*$x+$d)} x
              ==> (($c * (($a * $x) + $b)) + ($a * (($c * $x) + $d)))
              math::calculus::symdiff::jacobian {x {$a * $x + $b * $y}
                                       y {$c * $x + $d * $y}}
              ==> {{$a} {$b}} {{$c} {$d}}

BUGS, IDEAS, FEEDBACK
       This  document,  and the package it describes, will undoubtedly contain
       bugs and other problems.  Please report such in the  category  math  ::
       calculus of the Tcllib Trackers [http://core.tcl.tk/tcllib/reportlist].
       Please also report any ideas for enhancements you may have  for  either
       package and/or documentation.

       When proposing code changes, please provide unified diffs, i.e the out-
       put of diff -u.

       Note further that  attachments  are  strongly  preferred  over  inlined
       patches.  Attachments  can  be  made  by  going to the Edit form of the
       ticket immediately after its creation, and  then  using  the  left-most
       button in the secondary navigation bar.

SEE ALSO
       math::calculus, math::interpolate

COPYRIGHT
       Copyright (c) 2010 by Kevin B. Kenny <kennykb@acm.org>
       Redistribution permitted under the terms of the Open Publication License <http://www.opencontent.org/openpub/>

tcllib                               1.0.1       math::calculus::symdiff(3tcl)

Man(1) output converted with man2html
list of all man pages