Essays/Gauss-Bonnet/Bonnet01

From J Wiki
Jump to: navigation, search


1 References

1. 'Applications of the Absolute Differential Calculus' by A. J. McCONNELL.
2. 'Tensor Analysis' by I. S. Sokolnikoff (Second Edition, 1964).


2 Software

NB. ... execute (ijx) ...

   9!:14 ''
j602/beta/2007-09-19/23:00


3 Verbs

NB. ... script (ijs) ...

NB. ... from 'numeric' ...
steps=:{.+(1&{-{.)*(i.@>:%])@{:

NB. ... identify coordinates ...
v1=:0{]
v2=:1{]

NB. ... open boxed elements ...
b0=:>@(0{])
b1=:>@(1{])
b2=:>@(2{])
b3=:>@(3{])

NB. ... tolerant 'set zero' (see 'Essays/Tolerant Comparison') ...
tsz=:$@]$[0:`(I.@([>!.0|@]))`]},@]
ts0=:(2^_44)&tsz
tz =:ts0@:

NB. ... tolerant 'equal' (see 'Essays/Tolerant Comparison') ...
teq=:*./@,@((b0|@:-b1)<:!.0[*b0>.&:|b1)

NB. ... verbs useful for tolerant comparison ...
nzmin  =:<./@:|@((0<!.0|)#])@,
nzmax  =:>./@:|@((0<!.0|)#])@,
nzcount=:+/@(0<!.0|)@,

NB. ... trig verbs ...
sin=:1&o.
cos=:2&o.

NB. ... axes sum ...
axs=:(b0|:b1)+/@(*"1)"1 _ b2|:b3

NB. ... see Vocabulary 'Determinant' ...
det=:-/ . *

NB. ... see Vocabulary 'Outfix' ...
minors=:1&(|:\.)"2^:2

NB. ... cofactors ...
Mcf=:(*/~@({.@$$1,_1:)*det@minors)"2

NB. ... derivative of determinant ...
detdv=:(Mcf@[+/@(+/)@:*])"2

NB. ... derivatives of cofactors ...
Mcfdv=:(*/~@({.@$@[$1,_1:)*detdv&minors)"2


4 A Surface

4.1 Surface Coordinates
GGB0100C.jpg


NB. ... script (ijs) ...

NB. ... for v1 ...
s1=:1.43"_
f1=:2.10"_
i1=:10"_

NB. ... for v2 ...
s2=:0"_
f2=:2p1"_
i2=:56"_

vpgen=:steps@(s1,f1,i1)([,"0/])steps@(s2,f2,i2)


4.2 Auxiliary Verbs
GGB0101C.jpg


NB. ... script (ijs) ...

p=:1.50"_
q=:1.65"_


GGB0102C.jpg


NB. ... script (ijs) ...

ga=:(v1*cos@v2)"1
gb=:(v1*sin@v2)"1
gc=:(-@(v1^p)+q*ga)"1
gx=:^@gc"1


4.3 Cartesian Coordinates
GGB0103C.jpg


NB. ... script (ijs) ...

y1=:ga
y2=:gb
y3=:(ga*gx)"1


4.4 Surface Plot
NB. ... plot (ijs) ...

load 'plot'

pd 'viewpoint _3 _5 0.7'
pd 'viewsize 1 1 0.5'

pd 'type surface'
pd (y1;y2;y3) vpgen''
pd 'pdf'
pd 'show'


GBplot01.jpg
Figure 1: Surface


5 Derivatives

These derivatives can be used to calculate the intrinsic properties of the surface they describe.


5.1 Auxiliary Verbs
GGB0104C.jpg


NB. ... script (ijs) ...

gav1=:cos@v2"1
gav2=:-@(v1*sin@v2)"1

gadv=:(gav1,gav2)"1


NB. ... execute (ijx) ...

   *./@(*./)@:(((2^_20)&tsz@gadv((2^_18)teq[;])(2^_20)&tsz@(ga D.1))"1) vpgen''
1


GGB0106C.jpg


NB. ... script (ijs) ...

gav1v1=:0:"1
gav1v2=:-@sin@v2"1
gav2v1=:-@sin@v2"1
gav2v2=:-@(v1*cos@v2)"1

gadvdv=:((gav1v1,gav1v2),:gav2v1,gav2v2)"1


NB. ... execute (ijx) ...

   *./@(*./)@:(((2^_20)&tsz@gadvdv((2^_18)teq[;])(2^_20)&tsz@(0|:gadv D.1))"1) vpgen''
1


GGB0108C.jpg


NB. ... script (ijs) ...

gav1v1v1=:0:"1
gav1v1v2=:0:"1
gav1v2v1=:0:"1
gav1v2v2=:-@cos@v2"1

gav2v1v1=:0:"1
gav2v1v2=:-@cos@v2"1
gav2v2v1=:-@cos@v2"1
gav2v2v2=:(v1*sin@v2)"1

gadvdvdv=:(((gav1v1v1,gav1v1v2),:gav1v2v1,gav1v2v2),:(gav2v1v1,gav2v1v2),:gav2v2v1,gav2v2v2)"1


NB. ... execute (ijx) ...

   *./@(*./)@:(((2^_20)&tsz@gadvdvdv((2^_18)teq[;])(2^_20)&tsz@(0|:gadvdv D.1))"1) vpgen''
1


GGB0110C.jpg


NB. ... script (ijs) ...

gbv1=:sin@v2"1
gbv2=:(v1*cos@v2)"1

gbdv=:(gbv1,gbv2)"1


NB. ... execute (ijx) ...

   *./@(*./)@:(((2^_20)&tsz@gbdv((2^_18)teq[;])(2^_20)&tsz@(gb D.1))"1) vpgen''
1


GGB0112C.jpg


NB. ... script (ijs) ...

gbv1v1=:0:"1
gbv1v2=:cos@v2"1
gbv2v1=:cos@v2"1
gbv2v2=:-@(v1*sin@v2)"1

gbdvdv=:((gbv1v1,gbv1v2),:gbv2v1,gbv2v2)"1


NB. ... execute (ijx) ...

   *./@(*./)@:(((2^_20)&tsz@gbdvdv((2^_18)teq[;])(2^_20)&tsz@(0|:gbdv D.1))"1) vpgen''
1


GGB0114C.jpg


NB. ... script (ijs) ...

gbv1v1v1=:0:"1
gbv1v1v2=:0:"1
gbv1v2v1=:0:"1
gbv1v2v2=:-@sin@v2"1

gbv2v1v1=:0:"1
gbv2v1v2=:-@sin@v2"1
gbv2v2v1=:-@sin@v2"1
gbv2v2v2=:-@(v1*cos@v2)"1

gbdvdvdv=:(((gbv1v1v1,gbv1v1v2),:gbv1v2v1,gbv1v2v2),:(gbv2v1v1,gbv2v1v2),:gbv2v2v1,gbv2v2v2)"1


NB. ... execute (ijx) ...

   *./@(*./)@:(((2^_20)&tsz@gbdvdvdv((2^_18)teq[;])(2^_20)&tsz@(0|:gbdvdv D.1))"1) vpgen''
1


GGB0116C.jpg


NB. ... script (ijs) ...

gcv1=:(-@(p*v1^p-1:)+q*gav1)"1
gcv2=:(q*gav2)"1

gcdv=:(gcv1,gcv2)"1


NB. ... execute (ijx) ...

   *./@(*./)@:(((2^_19)&tsz@gcdv((2^_18)teq[;])(2^_19)&tsz@(gc D.1))"1) vpgen''
1


GGB0118C.jpg


NB. ... script (ijs) ...

gcv1v1=:((-@(p*p-1:)*v1^p-2:)+q*gav1v1)"1
gcv1v2=:(q*gav1v2)"1
gcv2v1=:(q*gav2v1)"1
gcv2v2=:(q*gav2v2)"1

gcdvdv=:((gcv1v1,gcv1v2),:gcv2v1,gcv2v2)"1


NB. ... execute (ijx) ...

   *./@(*./)@:(((2^_20)&tsz@gcdvdv((2^_18)teq[;])(2^_20)&tsz@(0|:gcdv D.1))"1) vpgen''
1


GGB0120C.jpg


NB. ... script (ijs) ...

gcv1v1v1=:((-@(p*(p-1:)*p-2:)*v1^p-3:)+q*gav1v1v1)"1
gcv1v1v2=:(q*gav1v1v2)"1
gcv1v2v1=:(q*gav1v2v1)"1
gcv1v2v2=:(q*gav1v2v2)"1

gcv2v1v1=:(q*gav2v1v1)"1
gcv2v1v2=:(q*gav2v1v2)"1
gcv2v2v1=:(q*gav2v2v1)"1
gcv2v2v2=:(q*gav2v2v2)"1

gcdvdvdv=:(((gcv1v1v1,gcv1v1v2),:gcv1v2v1,gcv1v2v2),:(gcv2v1v1,gcv2v1v2),:gcv2v2v1,gcv2v2v2)"1


NB. ... execute (ijx) ...

   *./@(*./)@:(((2^_19)&tsz@gcdvdvdv((2^_18)teq[;])(2^_19)&tsz@(0|:gcdvdv D.1))"1) vpgen''
1


GGB0122C.jpg


NB. ... script (ijs) ...

gxdv=:((gcv1,gcv2)*^@gc)"1


NB. ... execute (ijx) ...

   *./@(*./)@:(((2^_19)&tsz@gxdv((2^_18)teq[;])(2^_19)&tsz@(gx D.1))"1) vpgen''
1


GGB0124C.jpg


NB. ... script (ijs) ...

gxt11=:(gcv1*gcv1)+gcv1v1
gxt12=:(gcv1*gcv2)+gcv1v2
gxt21=:(gcv2*gcv1)+gcv2v1
gxt22=:(gcv2*gcv2)+gcv2v2

gxdvdv=:(((gxt11,gxt12),:gxt21,gxt22)*^@gc)"1


NB. ... execute (ijx) ...

   *./@(*./)@:(((2^_20)&tsz@gxdvdv((2^_10)teq[;])(2^_20)&tsz@(0|:gxdv D.1))"1) vpgen''
1


GGB0126C.jpg


NB. ... script (ijs) ...

gxt111=:(gcv1*gcv1*gcv1)+(gcv1v1*gcv1)+(gcv1*gcv1v1)+(gcv1v1*gcv1)+gcv1v1v1
gxt112=:(gcv1*gcv1*gcv2)+(gcv1v1*gcv2)+(gcv1*gcv1v2)+(gcv1v2*gcv1)+gcv1v1v2
gxt121=:(gcv1*gcv2*gcv1)+(gcv1v2*gcv1)+(gcv1*gcv2v1)+(gcv1v1*gcv2)+gcv1v2v1
gxt122=:(gcv1*gcv2*gcv2)+(gcv1v2*gcv2)+(gcv1*gcv2v2)+(gcv1v2*gcv2)+gcv1v2v2

gxt211=:(gcv2*gcv1*gcv1)+(gcv2v1*gcv1)+(gcv2*gcv1v1)+(gcv2v1*gcv1)+gcv2v1v1
gxt212=:(gcv2*gcv1*gcv2)+(gcv2v1*gcv2)+(gcv2*gcv1v2)+(gcv2v2*gcv1)+gcv2v1v2
gxt221=:(gcv2*gcv2*gcv1)+(gcv2v2*gcv1)+(gcv2*gcv2v1)+(gcv2v1*gcv2)+gcv2v2v1
gxt222=:(gcv2*gcv2*gcv2)+(gcv2v2*gcv2)+(gcv2*gcv2v2)+(gcv2v2*gcv2)+gcv2v2v2

gxdvdvdv=:((((gxt111,gxt112),:gxt121,gxt122),:(gxt211,gxt212),:gxt221,gxt222)*^@gc)"1


NB. ... execute (ijx) ...

   *./@(*./)@:(((2^_15)&tsz@gxdvdvdv((2^_09)teq[;])(2^_15)&tsz@(0|:gxdvdv D.1))"1) vpgen''
1



Download: File:LGB0100C.txt
Download: File:LGB0101C.txt
Download: File:LGB0102C.txt
Download: File:LGB0103C.txt
Download: File:LGB0104C.txt
Download: File:LGB0106C.txt
Download: File:LGB0108C.txt
Download: File:LGB0110C.txt
Download: File:LGB0112C.txt
Download: File:LGB0114C.txt
Download: File:LGB0116C.txt
Download: File:LGB0118C.txt
Download: File:LGB0120C.txt
Download: File:LGB0122C.txt
Download: File:LGB0124C.txt
Download: File:LGB0126C.txt




Download MoinMoin source: File:Bonnet01.ijs




Next Page: Essays/Gauss-Bonnet/Bonnet02
Prev Page: Essays/Gauss-Bonnet




Contributed by Tom Allen