The idea: modern functional notation for derivatives is a nice alternative to the commonly used classical notation. I find it is easier to understand, less ambiguous, lends itself to execution, and has less tendency to motivate little deceits.
classical: | functional: | meaning: |
a function, f, of one variable | ||
or | the value of f when it is evaluated at a | |
the derivative of f, which is itself a function! It takes the same arguments as f does. |
||
the value of the derivative of f, when it is evaluated at 3 | ||
another function | ||
a function, the sum of two functions which take the same arguments | ||
the value of when it is evaluated at 3 (namely the sum of the values of f and g when both are evaluated at 3) | ||
a function, the product of two functions which take the same arguments | ||
the value of when it is evaluated at 3 (namely the product of the values of f and g when both are evaluated at 3) | ||
a function, the composition of f and g (ie, f is called on the result of g called on the argument to the new function). It thus takes the same arguments as g. | ||
another function, the composition of f and the derivative of g (ie, f is called on the result of Dg called on the argument to the new function) | ||
another function | ||
the partial derivative of h with respect to its 1st argument |
||
the value of when evaluated at (4,5) (namely, the partial derivative of h, in the neighborhood of (4,5), with respect to its first argument) | ||
the composition of f and h | ||
the partial derivative of with respect to its 1st argument. | ||
a function (of course), which gives the derivative of f at values given by h | ||
the derivative of f at the value of h evaluated at (4,5) | hmm... what do you think? |
Lets dissect an classical example, and then compare the functional equivalent.
where f(u,v) is a function of u=g(x,y) and v=h(x,y).
means the partial derivative of f with respect to its first argument u | |
means | |
means |
In contrast, here is the functional version.
is a function. It takes the same
arguments as g and h take (thus g and h
must both be taking the same kind of arguments). f itself
takes two arguments, one from g and one from h.
The function gives the values f gives, when f is given
the values g and h give, when both given same
arguments.
Expressed differently: there are some arguments. g and
h independently chew on them. Their two results are given to
f, which then provides the final result.
is a function. It is the derivative of with respect to one of its arguments, x. The function's arguments are the same as those of , and . In english, it is the rate of change in the values f gives (f's arguments having been provided by g and h from their arguments), in the neighborhood specified by those same arguments, as one of those arguments (x) varies.
Perhaps expressed more clearly... g and h take
identical arguments. Those arguments define a point in space.
g and h each provide some value for that point.
f computes its own value for that point, computing it from the
values given by g and h. As one of those arguments,
x, varies, jiggling the point, the value of f also
jiggles. How fast f jiggles relative to the argument's
jiggling is the subject of this equation.
is just a way of saying this.
As for the right hand side...
is a function. It takes the same
arguments as f does. Its the partial derivatives of f
with respect to its first argument. This is how fast f
jiggles, in general, compared to its first argument's jiggling.
is a function. It takes the same arguments as g and h do. Its values are the values the function gives, when given the values that g and h give, when given those arguments. This is how fast f jiggles compared to g's jiggling, at the specific point described by the arguments. (The specific point matters because, for instance, the value of h might affect f's jiggling, and h could give different values for different arguments.)
is a function. It takes the same
arguments as g does. Its the partial derivatives of g
with respect to its argument x. It is how fast g
jiggles with respect to jiggles in x.
is a function. It takes the same arguments
as g and h do. Its values are the product of the values
given by and
when these are given those same arguments. It is how fast f
jiggles given g's jiggling, times how fast g jiggles
given x's jiggles. All for some particular bunch of arguments.
is a function. Its derivation and meaning
are similar. It is how fast f jiggles given h's
jiggling, times how fast h jiggles given x's jiggles.
All for some particular bunch of arguments.
Finally,
is a function. It takes the same arguments
as g and h do. Its values are the sum of the values
given by and when
these are given those same arguments. It is the sum of f's
jiggling induced by g's jiggling, plus f's jiggling
induced by h's jiggling.
In summary, the right hand side of the equation, , tells how to calculate this jiggling in f,
caused via g and h, by the jiggles of their argument
x. It is the sum of two contributors. The first is how fast
f jiggles when g is jiggled by x, and the second
is how fast f jiggles when h is jiggled. The
Aha! neatness of this equation is that the contributions via
g and via h are independent of each other. One could
imagine this not being the case - there could have been some weird
interrelationship between the two contributions. The insight is that
the contribution of g's jiggling to f's jiggling is not
affected by h's jiggling, and visa versa. They are
independent, and thus can be computed separately and then simply added
together.
Now you can perhaps go back, look at the classical notation, and see the meaning there. This ability to more or less understand the classical notation once you know what you are looking for, are what allow it to be used at all. The necessity, to you know what you are looking for, is what makes the classical notation such a bane for students, and trap for professional users.
(define (indirect-jiggling-function f g h x) (+ (* ((partial x) g) (((partial 1) f) g h)) (* ((partial x) h) (((partial 2) f) g h))))
Doables: Add comment `This will become a non-issue given existence of developing standards for electronic interchange of mathematics'. History: 2001.Apr.20 Added link to SICM. 1999.Apr.06 Corrected a spelling error ("wierd") pointed out by a reader. 1996.Dec.05 A quick cleanup pass. 1996.Nov.23 Cleaned up a bit more. 1996.Nov.22 Cleaned up a bit. 1996.Nov.18 Created really crufty initial draft.