Structure and Interpretation of Classical Mechanics

.

(define (((delta eta) f) q) (define (g epsilon) (f (+ q (* epsilon eta)))) ((D g) 0)) (define eta (literal-function 'eta)) (define q (literal-function 'q))

— Patrick Eli Catach

.

Code

(define (f q) (compose (literal-function 'f (-> (UP Real) Real)) q))

and

(define (f q) (compose (literal-function 'f) q))

have the same effect. If you execute

(show-expression ((((delta eta) f) q) 't))

you will get

.

It seems not to make sense, because is functional. Its input is a path function, not a real number. We cannot differentiate it with respect to its argument, which is a path.

It actually make sense in this special case because now

(define (f q) (compose (literal-function 'f (-> (UP Real) Real)) q))

In other words, is a function of one argument only. And variation itself can be expressed in terms of differentiation:

So

No. This explanation is not correct. Even if is a function of one argument only, it is still a path function. Its input argument is a path, not a number. Different path inputs will give different outputs.

The correct explanation should be the following.

(define (f q) (compose (literal-function 'f) q)) (define eta (literal-function 'eta)) (define q (literal-function 'q))

These lines actually imply that is just a path-independent function.

If the function is just a path-independent,

For the time that ,

So the above lines of code are not correct, because they do not represent a path-dependent function. The correct code (for one-dimensional path ) should be

(define (((delta eta) f) q) (define (g epsilon) (f (+ q (* epsilon eta)))) ((D g) 0)) (define (f q) (compose (literal-function 'f (-> (UP Real (UP* Real) (UP* Real)) Real)) (Gamma q))) (define q (literal-function 'q (-> Real (UP Real)))) (define eta (literal-function 'eta (-> Real (UP Real)))) (print-expression ((((delta eta) f) q) 't)) (show-expression ((((delta eta) f) q) 't))

The result is

But this has a problem. It seems that is still not a function with a path as input. It is just a function with 3 real numbers as inputs.

Note that the path-dependent function is not really a general functional. A general functional can depend on an input function in any ways. For example,

A functional that defines the arc length of a curve:

– The Calculus of Variations

– Brian Keng

The function is not an ordinary function because its input is not a real number, but a path-function . In other words, it does not depend on individual values of at different individual times. Instead, its output depends on the whole path . However, the function is not a general functional either.

It is not a general functional in the sense that its input is not a general mathematical function, but a (function that represents a) path . Also, depends on in a specific way:

(define (f q) (compose (literal-function 'f (-> (UP Real (UP* Real) (UP* Real)) Real)) (Gamma q)))

So, besides being a (non-general) functional, , with a path, , as input, can also be regarded as an ordinary function that has 3 real number inputs: , , and .

We can vary with respect to a path (the itself), but we cannot differentiate with respect to a path. We can only differentiate with respect to the values of the path .

For simplicity, we consider the case that the path is one-dimensional. Only in the sense that can also be regarded as an ordinary function that has 3 real number inputs, it can use the chain rule of ordinary differentiation:

— Me@2020-06-20 01:17:39 PM

.

.

2020.06.24 Wednesday (c) All rights reserved by ACHK