FURUHATA Hitoshi
Department of Mathematics
Hokkaido University

アファイン曲面論の計算

アファイン球面を中心にして

下記の内容でテキストファイル dg1, dg2, dg3 を作成します:

pu[f_][u_, v_] := D[f[uu, v], uu] /. uu -> u
pv[f_][u_, v_] := D[f[u, vv], vv] /. vv -> v
puu[f_][u_, v_] := D[f[uu, vv], {uu, 2}] /. {uu -> u, vv -> v}
puv[f_][u_, v_] := D[D[f[uu, vv], uu] /. uu -> u, vv] /. vv -> v
pvv[f_][u_, v_] := D[f[uu, vv], {vv, 2}] /. {uu -> u, vv -> v}
ee[f_][u_, v_] := pu[f][u, v] . pu[f][u, v]
ff[f_][u_, v_] := pu[f][u, v] . pv[f][u, v]
gg[f_][u_, v_] := pv[f][u, v] . pv[f][u, v]
firstff[f_][u_, v_] := {{ee[f][u, v], ff[f][u, v]},{ff[f][u, v], gg[f][u, v]}}
n[f_][u_, v_] := Cross[pu[f][u, v], pv[f][u, v]] / Sqrt[Cross[pu[f][u, v], pv[f][u, v]] . Cross[pu[f][u, v], pv[f][u, v]]]
ll[f_][u_, v_] := puu[f][u, v] . n[f][u, v]
mm[f_][u_, v_] := puv[f][u, v] . n[f][u, v]
nn[f_][u_, v_] := pvv[f][u, v] . n[f][u, v]
secondff[f_][u_, v_] := {{ll[f][u, v], mm[f][u, v]}, {mm[f][u, v], nn[f][u, v]}}
shapeop[f_][u_, v_] := secondff[f][u, v] . Inverse[firstff[f][u, v]]
gausscurv[f_][u_, v_] := Det[shapeop[f][u, v]]
meancurv[f_][u_, v_] := (1/2)*(shapeop[f][u, v][[1,1]] + shapeop[f][u, v][[2,2]])

sphere[u_, v_]:= {u,v,Sqrt[1-(u^2+v^2)]}
ellipticparaboloid[u_, v_]:= {u,v,(1/2)(u^2+v^2)+1}
hyperbolicparaboloid[u_, v_]:= {u,v,(1/2)(u^2-v^2)+1}
hyperboloidtwo[u_ ,v_]:= {u, v, Sqrt[1+(u^2+v^2)]}
wang[a_, b_][u_,v_] :={ u, v, u^(-a) v^(-b)}

blaschkenormal[f_][u_, v_]:= Simplify[(gausscurv[f][u[1],u[2]])^(1/4)] n[f][u[1], u[2]] - Sum[ Inverse[secondff[f][u[1],u[2]]][[i,j]] D[ Simplify[(gausscurv[f][u[1],u[2]])^(1/4)], u[i] ] D[f[u[1], u[2]], u[j]], {i,1,2}, {j,1,2}] /. {u[1] -> u, u[2] -> v}
affsupportfct[f_][u_, v_]:= (gausscurv[f][u,v])^(-1/4) (f[u,v] . n[f][u,v] )
affcenter[f_][u_,v_]:= f[u,v] - affsupportfct[f][u, v] blaschkenormal[f][u, v]

<< dg1
<< dg2
<< dg3
マセマティカを起動させた後,ファイル dg1, dg2, dg3 にかかれた定義を読み込みます.
grhp=ParametricPlot3D[Evaluate[hyperboloidtwo[u,v]], {u,-5,5},{v,-5,5}]
Export["grhp.gif", grhp, ConversionOptions->{"Transparency"->GrayLevel[1]}]

MatrixForm[secondff[hyperboloidtwo][u, v]]
Simplify[Det[secondff[hyperboloidtwo][u, v]] >=0]
Simplify[secondff[hyperboloidtwo][u, v][[1,1]] >=0]
hyperboloidtwo の第2基本形式を計算し,正定値かどうか調べます.
Simplify[affsupportfct[hyperboloidtwo][u, v]]
hyperboloidtwo の affine support function を計算させます.
Simplify[affcenter[hyperboloidtwo][u,v]]
第2基本形式が正定値で,affine support function が定数1,中心は原点ですから, hyperboloidtwo は原点中心半径1の双曲的なアファイン球面です.

grwang11=ParametricPlot3D[Evaluate[wang[1,1][u,v]], {u,1/4,5},{v,1/4,5}]
MatrixForm[secondff[wang[1,1]][u, v]]
Simplify[Det[secondff[wang[1,1]][u, v]] >=0, {0 < u, 0 < v}]
Simplify[secondff[wang[1,1]][u, v][[1,1]] >=0, {0 < u, 0 < v}]
Simplify[affsupportfct[wang[1,1]][u, v], {0 < u, 0 < v}]
Simplify[affcenter[wang[1,1]][u,v], {0 < u, 0 < v}]
wang[1,1]は原点中心半径3^(3/4)の双曲的なアファイン球面です.

grwang12=ParametricPlot3D[Evaluate[wang[1,2][u,v]], {u,1/4,5},{v,1/4,5}]
MatrixForm[secondff[wang[1,2]][u, v]]
Simplify[Det[secondff[wang[1,2]][u, v]] >=0, {0 < u, 0 < v}]
Simplify[secondff[wang[1,2]][u, v][[1,1]] >=0, {0 < u, 0 < v}]
Simplify[affsupportfct[wang[1,2]][u, v], {0 < u, 0 < v}]
Simplify[affcenter[wang[1,2]][u,v], {0 < u, 0 < v}]
wang[1,2] はアファイン球面ではありません. affine support function は 2^(5/4) v^(-1/2) となります. affcenter[wang[1,2]] は wang[1,2] と中心アファイン合同です.


[Top] [Back]