Essays/Gauss-Bonnet/Bonnet01
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
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
NB. ... script (ijs) ... p=:1.50"_ q=:1.65"_
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
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'
5 Derivatives
These derivatives can be used to calculate the intrinsic properties of the surface they describe.
5.1 Auxiliary Verbs
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
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
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
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
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
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
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
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
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
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
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
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