JavaView と Mathematica による曲面の研究

数学ソフトウェアとフリードキュメント IV
藤森 祥一 (九州大学)
2007年3月26日

1. JavaViewとは

Konrad Polthier氏によって開発された3次元の可視化ソフト。
http://www.javaview.de/
からフリーでダウンロードできる。

2. Mathematicaと組み合わせて使う

曲面を描く。

crosscap=ParametricPlot3D[{(u^2), v, u v},{u, -1, 1},{v, -1, 1},Boxed -> False,Axes -> False,PlotPoints -> {21, 21},PlotRange -> All];

JavaViewを起動する。

Needs["JLink`"];
JLink`Information`$Version;
"J/Link Version 3.1.0";
InstallJava[];
LinkObject["C:\\Program Files\\Wolfram Research\
\\Mathematica\\5.2\\SystemFiles\\Java\\Windows\\bin\\javaw", 2, 
        2];
<< JavaView`JLink`;
viewer = 
        InstallJavaView[];
"JavaView CodeBase = C:/Program \
Files/Wolfram Research/Mathematica/5.2/AddOns/Applications/JavaView/";
« 
           JavaObject[jv . viewer . PvViewer] »;
JavaView[crosscap];
« 
           JavaObject[jv . geom . PgElementSet] »;

3. 極小曲面

3-1   Weierstrass-Enneperの表現公式

Mを単連結Riemann面、(Subscript[z, 0]) ∈  M、gをM上の有理型関数、fを正則関数で、gがk位の極をもつ点でfは2k位の零点をもち、fは他に零点をもたないとする。このとき
		ψ(z) = 
        Re (∫_((Subscript[z, 0]))^z)(1 - ((g(z))^2),  
                i(1 + ((g(z))^2)),  2  g(z) ) f(z) dz
極小曲面になる。逆に、単連結な極小曲面は全てこのように表現される。また、
	\(TraditionalForm\`ds\^2 = \((\(\(1\)\(+\)\) | g\( | \^2\))\)\^2\  | 
          f\( | \^2\)\  | dz\( | \^2\)\)	(第一基本形式)
	K=\(\(\(-\ 4\)\  | 
                  g'\( | \^2\)\)\/\(\(|\)\(f\)\( | \^2\)\(\ \)\(\((\(\(1\)\(+\)\) | g\( | \^2\))\)\^4\)\)\)		(Gauss曲率)
	Q=g' f (dz^2)			(Hopf微分)
(g, f)を極小曲面ψのWeierstrass dataという。
　(g, f) を極小曲面 ψ のWeierstrass dataとする。このとき、(g, (e^(i θ)) f) から構成される極小曲面 (Subscript[ψ, θ]) は ψ と等長的な極小曲面になる。 (Subscript[ψ, θ]) を ψ の随伴極小曲面という。特に(Subscript[ψ, π/2]) を ψ の共役極小曲面という。

3-2   Schwarzの鏡像原理と極小曲面の対称性

(1)  ψ : M -> (R^3)を極小曲面、c を M上の曲線とする。このとき、Q (c' ,  c' ) ϵ R ならば、c の ψ による像は (R^3) 内のある平面に含まれる。さらに ψ はこの平面に関して対称である。
(2) ψ : M -> (R^3)を極小曲面、c を M上の曲線とする。このとき、Q (c' ,  c' ) ϵ i R ならば、c の ψ による像は (R^3) 内の直線である。さらに ψ はこの直線に関して対称である。

4. 古典的な例

4-1   Riemannの極小曲面

M = { (z,w) ∈ ((( C  ⋃  { ∞  } ))^2) | (w^2)  =  
        z (z  -  λ) (z + (λ^(-1)))} \ { ( 0, 0 ), ( ∞, ∞ ) },
g = z,
f dz = (dz/zw).

λ = 
        1;   
g[ζ_] = ζ;
f[ζ_] = 
        (1/(ζ (Sqrt[ζ]) (Sqrt[ζ - λ]) (Sqrt[ζ + (λ^(-1))])));

曲面の基本領域を描画する。

z0 = I;
WERiem[
          z_] := {NIntegrate[(1 - g[ζ]^2) f[ζ], {ζ, 
              z0, z}], 
          NIntegrate[I (1 + 
                  g[ζ]^2) f[ζ], {ζ, z0, z}], 
          NIntegrate[
            2 g[ζ] f[ζ], {ζ, z0, 
              z}]};
ParametersRiem[x_, y_] := 
        WERiem[(E^(x + I y))];
RealWERiem[x_, y_] := 
        Re[ParametersRiem[x, y]];
Riem1 = 
        ParametricPlot3D[RealWERiem[x, y], {x, -4, 4}, {y, 0, π}, 
          PlotRange -> All, PlotPoints -> {17, 13}, 
          Axes -> False, Boxed -> False];

JavaViewを使ってreflectionをする。

Needs["JLink`"];
JLink`Information`$Version;
"J/Link Version 3.1.0";
InstallJava[];
LinkObject["C:\\Program Files\\Wolfram Research\
\\Mathematica\\5.2\\SystemFiles\\Java\\Windows\\bin\\javaw", 2, 
        2];
<< JavaView`JLink`;
viewer = 
        InstallJavaView[];
"JavaView CodeBase = C:/Program \
Files/Wolfram Research/Mathematica/5.2/AddOns/Applications/JavaView/";
« 
           JavaObject[jv . viewer . PvViewer] »;
JavaView[Riem1];
« 
           JavaObject[jv . geom . PgElementSet] »;

4-2   Schwarz P曲面

M = { (z,w) ∈ ((( C  ⋃  { ∞  } ))^2) | (w^2)  =  (z^8) - 14 (z^4) + 1},
g = z,
f dz = (dz/w).

g[ζ_] = ζ;
f[ζ_] = (I/(Sqrt[(ζ^8) - 14 (ζ^4) + 1]));

曲面の基本領域を描画する。

z0 = 0;
WESchwarzP[
          z_] := {NIntegrate[(1 - g[ζ]^2) f[ζ], {ζ, 
              z0, z}], 
          NIntegrate[I (1 + 
                  g[ζ]^2) f[ζ], {ζ, z0, z}], 
          NIntegrate[
            2 g[ζ] f[ζ], {ζ, z0, 
              z}]};
rad[θ_] = -Sin[θ + (π/4)] + (Sqrt[((Sin[2 θ] + 3)/2)]);
ParametersSchwarzP[r_, θ_] := 
        WESchwarzP[
          r rad[θ] (E^(I θ))];
RealWESchwarzP[r_, θ_] := 
        Re[ParametersSchwarzP[r, θ]];
SchwarzP1 = 
        ParametricPlot3D[
          RealWESchwarzP[r, θ], {r, 0, 1}, {θ, 0, π/4}, 
          PlotRange -> All, PlotPoints -> {6, 4}, 
          Axes -> False, Boxed -> False];

JavaViewを使ってreflectionをする。

Needs["JLink`"];
JLink`Information`$Version;
"J/Link Version 3.1.0";
InstallJava[];
LinkObject["C:\\Program Files\\Wolfram Research\
\\Mathematica\\5.2\\SystemFiles\\Java\\Windows\\bin\\javaw", 2, 
        2];
<< JavaView`JLink`;
viewer = 
        InstallJavaView[];
"JavaView CodeBase = C:/Program \
Files/Wolfram Research/Mathematica/5.2/AddOns/Applications/JavaView/";
« 
           JavaObject[jv . viewer . PvViewer] »;
JavaView[SchwarzP1];
« 
           JavaObject[jv . geom . PgElementSet] »;

5. 平坦トーラス内の極小曲面

5-1 庄田敏宏氏によって構成された例 (J. London Math. Soc. 70 (2004), 797-816)

M = { (z,w) ∈ ((( C  ⋃  { ∞  } ))^2) | (w^3)  =  (z^6)  - 1},
g = z,
f dz = (dz/(w^2)).

5-2 A. Schoen の I-Wp 曲面 (Technical Note D-5541, NASA, Cambridge, MA, 1970)

M = { (z,w) ∈ ((( C  ⋃  { ∞  } ))^2) | (w^3)  =  (z^12)  - 1},
g = (z^3),
f dz = (dz/(w^2)).

6. EG-Models

JavaViewで作成した曲面を EG-Models (Electronic Geometry Models) という電子ジャーナルに投稿することができる：
http://www.eg-models.de/
[1] S. Fujimori and T. Shoda, Triply periodic minimal surface of genus 4 (2005.10.001).
[2] S.-P. Kobayashi, Bubbletons and their parallel surfaces in Euclidean 3-space (2002.03.001). 
[3] S.-P. Kobayashi, Bubbletons in hyperbolic 3-space and spherical 3-space (2002.03.002).