packages feed

egison-3.7.8: sample/math/geometry/surface.egi

; We can bound f to a specific function.
; (define $f (lambda [$x $y] (+ (** x 2) (** y 2))))

(define $v1 [| 1 0 (∂/∂ (f x y) x) |])
(define $v2 [| 0 1 (∂/∂ (f x y) y) |])

v1;[| 1 0 (f|1 x y) |]
v2;[| 0 1 (f|2 x y) |]

(define $v3 (cross-product v1 v2))

v3;[| (* -1 (f|1 x y)) (* -1 (f|2 x y)) 1 |]

(define $e3 (/ v3 (sqrt '(V.* v3 v3))))

e3
;[|(/ (* -1 (f|1 x y))
;     (sqrt '(+ (f|1 x y)^2 (f|2 x y)^2 1)))
;  (/ (* -1 (f|2 x y))
;     (sqrt '(+ (f|1 x y)^2 (f|2 x y)^2 1)))
;  (/ 1
;     (sqrt '(+ (f|1 x y)^2 (f|2 x y)^2 1)))|]

(define $E (V.* v1 v1))
(define $F (V.* v1 v2))
(define $G (V.* v2 v2))

E;(+ 1 (f|1 x y)^2)
F;(* (f|1 x y) (f|2 x y)
G;(+ 1 (f|2 x y)^2)

(define $L (V.* (∂/∂ v1 x) e3))
(define $M (V.* (∂/∂ v1 y) e3))
;(define $M (V.* (∂/∂ v2 x) e3))
(define $N (V.* (∂/∂ v2 y) e3))

L;(/ (f|1|1 x y) (sqrt '(+ (f|1 x y)^2 (f|2 x y)^2 1)))
M;(/ (f|1|2 x y) (sqrt '(+ (f|1 x y)^2 (f|2 x y)^2 1)))
N;(/ (f|2|2 x y) (sqrt '(+ (f|1 x y)^2 (f|2 x y)^2 1)))

(define $K (/ (- (* L N) (** M 2))
              '(- (* E G) (** F 2))))
(define $H (/ (+ (* 'E N) (* 'G L) (* -2 F M))
              (* 2 '(- (* E G) (** F 2)))))

K
;(/ (+ (* (f|1|1 x y) (f|2|2 x y)) (* -1 (f|1|2 x y)^2))
;   '(+ (f|1 x y)^2 (f|2 x y)^2 1)^2)
H
;(/ (+ (* '(+ 1 (f|1 x y)^2) (f|2|2 x y))
;      (* '(+ 1 (f|2 x y)^2) (f|1|1 x y))
;      (* -2 (f|1 x y) (f|2 x y) (f|1|2 x y)))
;   (* 2
;      (sqrt '(+ (f|1 x y)^2 (f|2 x y)^2 1))
;      '(+ 1 (f|2 x y)^2 (f|1 x y)^2)))