以前、K3曲面について調べた(ウォーミングアップをした)ので、今回はそれを踏まえてこちらをまとめる。
始めましょうか
- トーラスがに位相的に同型。
- 平行四辺形のブロックを(複素)平面に張り付けて、平行四辺形を取り出した時の位置が、同じ座標を全て同一視する。
- ヴァイエルシュトラスのペー関数
- 関数on
- n次元射影空間
- トーラスに乗った、函数φによる式で得られた式を、射影平面に乗せる
- 定義1:滑らかな射影空間上の代数曲線で、cubicなものは、楕円曲線と呼ぶ
- τは楕円曲線の周期と言われる
- 楕円曲線のj不変量
- 代数多様体
- ザリスキー位相空間Xと、X上の正則函数の層の組V
- n次元非特異代数多様体に対して、line bundle with a sectionがV上のWeil Divisorを決める
- あっちの空間に投げて、もう一回こっちに戻ったら、余りだけ残ってました、みたいなこと?
- 2つのDivisorがLinearly に等価とは、V上の非ゼロ正則関数を足し引きすることで、Divisor同士入れ替われること。
- 代数多様体上のCanonical Divisorとは、line bundleと関連の有るDivisorの線形等価なクラス
- ?
- Divisorはゼロ要素のあるアーベル群をなす。
- Divisorは素因数分解みたいに、バラバラのものの集まりとして表せる。
- 今回は、線形重ね合わせ
- ザリスキー位相空間Xと、X上の正則函数の層の組V
- 定義2:非零Divisorは、Effective()である
- 定義3:Sがコンパクト、複素、連結2次元代数Varietyとする。Sがもし、滑らかで、Canonical DivisorがTrivialで、Irregularity が0()なら、K3曲面という。
- 定義4:をgerm of singularityとする。
- これを可視化したいので、ガンバる
- まず、を考えるため、複素平面として、平面を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()
A2もやってみる。
ちなみに、A4はこちら。zの面だけ100倍拡大している。
- 今はまだ、K3曲面に対する知識も、(特にDivisorあたりの理解)、コーディングで理解する術がないので、暫くして、またまとめたいと思う。
- 今回は、その前段階で、単語をさらった感じ
バイバイ!