"Introduction to Geometry of K3 Surfaces"

以前、K3曲面について調べた(ウォーミングアップをした)ので、今回はそれを踏まえてこちらをまとめる。

始めましょうか

 

  • トーラスが \mathbb{C}/\Gamma_\tauに位相的に同型。
    • 平行四辺形のブロックを(複素)平面に張り付けて、平行四辺形を取り出した時の位置が、同じ座標を全て同一視する。
  • ヴァイエルシュトラスのペー関数
    • 3つの定義
      • 複素数複素平面上の格子の函数
      • 複素数と2つの複素数(生成元)
      • 複素数と上半平面における母数
        • 上半平面、こちら
          • 虚部が正である複素数全体をなす複素数全体
          • リーマン球面
          • ポワンカレの上半平面モデル
            • 双曲幾何
              •  \frac{d(z \bar{z})}{|Jz|^2}
              • 実軸に近づくほど空間が歪む
              • 上半平面における測地線は、両端が実軸に直交する円周
          • SL(2)
        • 上半平面における母数
          • 母数とは、周期対の比( \tau = \omega_2/ \omega_1
          •  \tauのモジュラー函数
            • モジュラー群の作用に対して、不変なモジュラー形式
              • モジュラー群は、SL(2,Z)
              • 重さKのモジュラー形式
                • 3つの条件を満たす上半平面上の複素数函数
                  • 1.上半平面上の正則函数
                  • 2.上半平面上の全ての複素数zに対して、 f(\frac{az+b}{cz+d}) = (cz+d)^k f(z)
                    • ただし、a,b,c,dはモジュラー群の元の各成分
                  • 3.函数がzをi×∞に飛ばしても、正則
                    • どこにいっても正則。
    • ℘(z)は、2位の極を持ち、他では正則
  • 関数 \phion  \mathbb{C}/\Gamma_\tau \rightarrow \mathbb{C}^3; z \rightarrow (1, p(z), p^{'}(z)
  • n次元射影空間
    •  \mathbb{P}^n = \mathbb{C}^{n+1}/\{0\} / ~
      •  (x_0, x_1, \cdots ) ~ (y_0, y_1, \cdots ) \in \mathbb{C}/\{0\}
      • 2つ条件
        • 0以外の複素数の組
        • 比が一緒なら(何か掛ければ一緒なら)同一視
    • 商空間(quotinent space) こちら
        • Vが部分空間UとWの直和なら、V/UはWに自然同型
    • n次元射影空間は、n+1アフィン空間によって覆われる
      • n次元射影空間は、n+1個の変数がいる。
        • 比だから。
        • 1次元射影空間
          • 1:2は2
          • 2:5は2.5
      • 1つのアフィン空間は、一つの成分が1に固定したもの。
        • i個目が1になる場合の重ね合わせだと、n+1個必要
  • トーラスに乗った、函数φによる式で得られた式を、射影平面に乗せる
    •  F_\tau = Y^2Z -4X^3 + g_2XZ^2 + g_3 Z^3とする。
  • 定義1:滑らかな射影空間上の代数曲線で、cubicなものは、楕円曲線と呼ぶ
    • 種数1の滑らかな代数曲線を楕円曲線という
      • 種数はこちら
        • 向きつけ可能閉曲面の種数
          •  閉曲面による切断によってバラバラになるまでの切断回数の最大値
            • ドーナツが1つ切れ込み入れてもまだ1つ
            • 2回切ると2つ 
          • トーラスの種数は1
          • 球面は0
          • 切ったレンコンは(穴の数)
  • τは楕円曲線の周期と言われる
  • 楕円曲線のj不変量
    •  E : y^2  = x^3 - g_2 x - g_3
    •  j(E) = 1728g_2^3 /(g_2^3 - 27g_3^2)
  • 代数多様体
    • ザリスキー位相空間Xと、X上の正則函数の層 O_Xの組V
      • n次元非特異代数多様体に対して、line bundle with a sectionがV上のWeil Divisorを決める
      • あっちの空間に投げて、もう一回こっちに戻ったら、余りだけ残ってました、みたいなこと?
      • 2つのDivisorがLinearly に等価とは、V上の非ゼロ正則関数を足し引きすることで、Divisor同士入れ替われること。
      • 代数多様体上のCanonical Divisorとは、line bundleと関連の有るDivisorの線形等価なクラス
      • Divisorはゼロ要素のあるアーベル群をなす。
      • Divisorは素因数分解みたいに、バラバラのものの集まりとして表せる。
        • 今回は、線形重ね合わせ
  • 定義2:非零Divisorは、Effective( \D \geq 0)である
  • 定義3:Sがコンパクト、複素、連結2次元代数Varietyとする。Sがもし、滑らかで、Canonical DivisorがTrivialで、Irregularity が0( h^1 (O_s) = 0)なら、K3曲面という。
  • 定義4: F = (f,0)をgerm of singularityとする。
    •  A_n, D_n, E_6, E_7, E_8
    • これを可視化したいので、ガンバる
    • まず、 \mathbb{C}^3を考えるため、複素平面として、平面を3つ用意する。
    • その際、3つの平面は互いに60°で交わるようにする。
      • こうすることで、対称性を保持出来る。
      • なので、1つの座標は、この設定における三角形(3つ組)として、表せる。
      • 次に、その関係性として、関数fを入れる。
        • zをfと残り二変数で表せば良い
#%matplotlib inline
from matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
from math import *
from cmath import *

fig = plt.figure(figsize=(8,8))
ax = fig.add_subplot(111, projection='3d')
#theta = np.linspace(0,2*np.pi,100) 
#r = np.linspace(0, 2, 100) 

T = 1000
xr = np.random.randint(1000,size = T)-500
xc = np.random.randint(1000,size = T)-500
yr = np.random.randint(1000,size = T)-500
yc = np.random.randint(1000,size = T)-500

zr = np.zeros(T)
zc = np.zeros(T)

def csqrt2(x):
  if x==0:
    return [0,0]
  else:
    ang = phase(x)
    amp = abs(x)
    ans = (amp**0.5)*(cos(ang/2)+sin(ang/2)*1j)
    return [ans, -ans]
     
#n = 2+2j
#print(phase(n),n,cos(phase(n)/2))
def A2():
  r = np.array([1+1j]*T)
  c = np.array([1+1j]*T)
  x0 = np.zeros(T)
  for i in range(T):
    temp =  (xr[i]+xc[i]*1j)**2+(yr[i]+yc[i]*1j)**2
    tempr,tempc = csqrt2(-temp)
    r[i] = tempr
    c[i] = tempc
  return [r,c]

ax.set_xlabel('x axis',size = 10)
ax.set_ylabel('y axis',size = 10)
ax.set_zlabel('z axis', size = 10)
ax.set_title("A1", size = 20)
#ax.set_xlim(-100,100)
#ax.set_ylim(-100,100)
#ax.set_zlim(-100,100)

za2 = A2()
z1 = za2[0]
z2 = za2[1]
#print(x0[:3])
zr1 = np.zeros(T)
zc1 = np.zeros(T)
zr2 = np.zeros(T)
zc2 = np.zeros(T)

for i in range(T):
  zr1[i] = z1[i].real
  zc1[i] = z1[i].imag
  zr2[i] = z2[i].real
  zc2[i] = z2[i].imag

#print(yc.dtype)
ax.scatter(xr,xc,0, s= 1,c= "green")
ax.scatter(yr,-yc/2,yc/2*(3)**0.5, s=1,c="blue")
ax.scatter(zr1,-zc1/2,-zc1/2*(3)**0.5,s=1, c="orange")
ax.scatter(zr2,-zc2/2,-zc2/2*(3)**0.5,s=1, c="purple")
#print(zr1[:5],zc1[:5])
#ax.set_aspect('equal')
#ax.plot_surface(X, Y, Z,alpha=0.8, color="red")
#fig.savefig("Cone.png", dpi=100,transparent = False)
plt.show()

f:id:medical-science:20220204203311p:plain

A2もやってみる。

f:id:medical-science:20220204234922p:plain

ちなみに、A4はこちら。zの面だけ100倍拡大している。

f:id:medical-science:20220204204859p:plain

  • 今はまだ、K3曲面に対する知識も、(特にDivisorあたりの理解)、コーディングで理解する術がないので、暫くして、またまとめたいと思う。
  • 今回は、その前段階で、単語をさらった感じ

バイバイ!