Emmy, the Algebra System: Differential Geometry Chapter Three
Functional Differential Geometry: Chapter 3
3 Vector Fields and One-Form Fields
We want a way to think about how a function varies on a manifold.
3.1 Vector Fields
(define v
(components->vector-field
(up (literal-function 'b0 R2->R)
(literal-function 'b1 R2->R))
R2-rect))(print-expression
((v (literal-manifold-function 'f-rect R2-rect)) R2-rect-point))(+ (* (((partial 0) f-rect) (up x0 y0)) (b0 (up x0 y0))) (* (((partial 1) f-rect) (up x0 y0)) (b1 (up x0 y0))))(print-expression
((v (chart R2-rect)) R2-rect-point))(up (b0 (up x0 y0)) (b1 (up x0 y0)))Coordinate Representation
need to check the form below, fortunately coordinatize is also standard
(comment
(define (coordinatize v coordsys)
(define ((coordinatized-v f) x)
(let ((b (compose (v (chart coordsys)) (point coordsys))))
(* ((D f) x) (b x))))
(make-operator coordinatized-v)))(print-expression
(((e/coordinatize v R2-rect) (literal-function 'f-rect R2->R))
(up 'x0 'y0)))(+ (* (((partial 0) f-rect) (up x0 y0)) (b0 (up x0 y0))) (* (((partial 1) f-rect) (up x0 y0)) (b1 (up x0 y0))))3.2 Coordinate-Basis Vector Fields
(define-coordinates (up x y) R2-rect)
NoteERR
WARNING: R2-rect already refers to: #'emmy.env/R2-rect in namespace: mentat-collective.emmy.fdg-ch03, being replaced by: #'mentat-collective.emmy.fdg-ch03/R2-rect
(define-coordinates (up r theta) R2-polar)
NoteERR
WARNING: R2-polar already refers to: #'emmy.env/R2-polar in namespace: mentat-collective.emmy.fdg-ch03, being replaced by: #'mentat-collective.emmy.fdg-ch03/R2-polar
(print-expression
((d:dx (square r)) R2-rect-point))(* 2 (sqrt (+ (expt x0 2) (expt y0 2))) (/ 1 (* (sqrt (+ (expt x0 2) (expt y0 2))) 2)) 2 x0)(print-expression
(((+ d:dx (* 2 d:dy)) (+ (square r) (* 3 x))) R2-rect-point))(+ (* 2 (sqrt (+ (expt x0 2) (expt y0 2))) (/ 1 (* (sqrt (+ (expt x0 2) (expt y0 2))) 2)) 2 x0) 3 (* 2 2 (sqrt (+ (expt x0 2) (expt y0 2))) (/ 1 (* (sqrt (+ (expt x0 2) (expt y0 2))) 2)) 2 y0))3.3 Integral Curves
(define circular (- (* x d:dy) (* y d:dx)))(print-expression
(take 6
(seq
(((exp (* 't circular)) (chart R2-rect))
((point R2-rect) (up 1 0))))))((up 1 0)
(up 0 t)
(up (* 1/2 t t -1) 0)
(up 0 (* 1/6 t t -1 t))
(up (* 1/24 t t -1 t t -1) 0)
(up 0 (* 1/120 t t -1 t t -1 t)))(print-expression
((((e/evolution 6) 'delta-t circular) (chart R2-rect))
((point R2-rect) (up 1 0))))(up (+ 1 (* 1/2 delta-t delta-t -1) (* 1/24 delta-t delta-t -1 delta-t delta-t -1) (* 1/720 delta-t delta-t -1 delta-t delta-t -1 delta-t delta-t -1)) (+ delta-t (* 1/6 delta-t delta-t -1 delta-t) (* 1/120 delta-t delta-t -1 delta-t delta-t -1 delta-t)))3.5 Coordinate-Basis One-Form Fields
(define omega
(e/components->oneform-field
(down (literal-function 'a_0 R2->R)
(literal-function 'a_1 R2->R))
R2-rect))(print-expression
((omega (down d:dx d:dy)) R2-rect-point))(down (a_0 (up x0 y0)) (a_1 (up x0 y0)))(define omega-alt (e/literal-oneform-field 'a R2-rect))(print-expression
(((d (literal-manifold-function 'f-rect R2-rect))
(coordinate-system->vector-basis R2-rect))
R2-rect-point))(down (((partial 0) f-rect) (up x0 y0)) (((partial 1) f-rect) (up x0 y0)))(print-expression
(((d (literal-manifold-function 'f-polar R2-polar))
(coordinate-system->vector-basis R2-rect))
((point R2-polar) (up 'r 'theta))))(down (+ (* (((partial 0) f-polar) (up (sqrt (+ (expt (* r (cos theta)) 2) (expt (* r (sin theta)) 2))) (atan (* r (sin theta)) (* r (cos theta))))) (/ 1 (* (sqrt (+ (expt (* r (cos theta)) 2) (expt (* r (sin theta)) 2))) 2)) 2 r (cos theta)) (* (((partial 1) f-polar) (up (sqrt (+ (expt (* r (cos theta)) 2) (expt (* r (sin theta)) 2))) (atan (* r (sin theta)) (* r (cos theta))))) (/ (- (* r (sin theta))) (+ (expt (* r (cos theta)) 2) (expt (* r (sin theta)) 2))))) (+ (* (((partial 0) f-polar) (up (sqrt (+ (expt (* r (cos theta)) 2) (expt (* r (sin theta)) 2))) (atan (* r (sin theta)) (* r (cos theta))))) (/ 1 (* (sqrt (+ (expt (* r (cos theta)) 2) (expt (* r (sin theta)) 2))) 2)) 2 r (sin theta)) (* (((partial 1) f-polar) (up (sqrt (+ (expt (* r (cos theta)) 2) (expt (* r (sin theta)) 2))) (atan (* r (sin theta)) (* r (cos theta))))) (/ (* r (cos theta)) (+ (expt (* r (cos theta)) 2) (expt (* r (sin theta)) 2))))))(define-coordinates (up x y) R2-rect)(print-expression
((dx d:dy) R2-rect-point))0(print-expression
((dx d:dx) R2-rect-point))1(print-expression
((dx circular) R2-rect-point))(- y0)(print-expression
((dy circular) R2-rect-point))x0(print-expression
((dr circular) R2-rect-point))(- (* x0 (/ 1 (* (sqrt (+ (expt x0 2) (expt y0 2))) 2)) 2 y0) (* y0 (/ 1 (* (sqrt (+ (expt x0 2) (expt y0 2))) 2)) 2 x0))(print-expression
((dtheta circular) R2-rect-point))(- (* x0 (/ x0 (+ (expt x0 2) (expt y0 2)))) (* y0 (/ (- y0) (+ (expt x0 2) (expt y0 2)))))(define f (literal-manifold-function 'f-rect R2-rect))(print-expression
(((- circular d:dtheta) f) R2-rect-point))(- (- (* x0 (((partial 1) f-rect) (up x0 y0))) (* y0 (((partial 0) f-rect) (up x0 y0)))) (+ (* (((partial 0) f-rect) (up (* (sqrt (+ (expt x0 2) (expt y0 2))) (cos (atan y0 x0))) (* (sqrt (+ (expt x0 2) (expt y0 2))) (sin (atan y0 x0))))) (sqrt (+ (expt x0 2) (expt y0 2))) (- (sin (atan y0 x0)))) (* (((partial 1) f-rect) (up (* (sqrt (+ (expt x0 2) (expt y0 2))) (cos (atan y0 x0))) (* (sqrt (+ (expt x0 2) (expt y0 2))) (sin (atan y0 x0))))) (sqrt (+ (expt x0 2) (expt y0 2))) (cos (atan y0 x0)))))Coordinate Transformations
(define omega (literal-oneform-field 'a R2-rect))(define v (literal-vector-field 'b R2-rect))(print-expression
((omega v) R2-rect-point))(+ (* (a_0 (up x0 y0)) (b↑0 (up x0 y0))) (* (a_1 (up x0 y0)) (b↑1 (up x0 y0))))(repl/scittle-sidebar)
[Comment MAK concerning components->vector-field]
The function
procedure->vector-fieldseems to be missing in ScittleClojure interns has
procedure->vector-fieldClojureScript interns lack
procedure->vector-fieldThe function
components->vector-fieldexists as a standard, so we can leave it here as merely a comment