Toggle navigation
Egison
Documentations
Try It Out
Online Tools
Online Egison Interpreter
Online Egison Tutorial
Online Demonstrations
Poker Hands
Mahjong
Prime Numbers
Trees
Graph (Bellman-Ford Algorithm)
Randomized 3-SAT
Time-Series Data
Math
Blog
Community
Riemann Curvature Tensor of `S^5`
Dec 4 2016
The following code calculates the
Riemann curvature tensor
of `S^5`.
-- Parameters def x := [| θ, φ, ψ, η, δ |] def X := [| r * cos θ , r * sin θ * cos φ , r * sin θ * sin φ * cos ψ , r * sin θ * sin φ * sin ψ * cos η , r * sin θ * sin φ * sin ψ * sin η * cos δ , r * sin θ * sin φ * sin ψ * sin η * sin δ |] -- Local basis def e_i_j : Matrix MathExpr := ∂/∂ X_j x~i -- Metric tensors def g_i_j := generateTensor (\[a, b] -> V.* e_a e_b) [5, 5] def g~i~j := M.inverse g_#_# assertEqual "Metric tensor g_1_#" g_1_# [| r^2, 0, 0, 0, 0 |]_# assertEqual "Metric tensor g_2_#" g_2_# [| 0, r^2 * (sin θ)^2, 0, 0, 0 |]_# -- Christoffel symbols def Γ_i_j_k := (1 / 2) * (∂/∂ g_i_k x~j + ∂/∂ g_i_j x~k - ∂/∂ g_j_k x~i) def Γ~i_j_k := withSymbols [m] g~i~m . Γ_m_j_k assertEqual "Christoffel symbols of the second kind Γ~1_#_#" Γ~1_#_# [| [| 0, 0, 0, 0, 0 |] , [| 0, -1 * sin θ * cos θ, 0, 0, 0 |] , [| 0, 0, -1 * sin θ * cos θ * (sin φ)^2, 0, 0 |] , [| 0, 0, 0, -1 * sin θ * cos θ * (sin φ)^2 * (sin ψ)^2, 0 |] , [| 0, 0, 0, 0, -1 * sin θ * cos θ * (sin φ)^2 * (sin ψ)^2 * (sin η)^2 |] |]_#_# assertEqual "Christoffel symbols of the second kind Γ~2_#_#" Γ~2_#_# [| [| 0, (cos θ) / (sin θ), 0, 0, 0 |] , [| (cos θ) / (sin θ), 0, 0, 0, 0 |] , [| 0, 0, -1 * sin φ * cos φ, 0, 0 |] , [| 0, 0, 0, -1 * sin φ * cos φ * (sin ψ)^2, 0 |] , [| 0, 0, 0, 0, -1 * sin φ * cos φ * (sin ψ)^2 * (sin η)^2 |] |]_#_# -- Riemann curvature def R~i_j_k_l := withSymbols [m] ∂/∂ Γ~i_j_l x~k - ∂/∂ Γ~i_j_k x~l + Γ~m_j_l . Γ~i_m_k - Γ~m_j_k . Γ~i_m_l assertEqual "Riemann curvature R~#_#_1_2" R~#_#_1_2 [| [| 0, (sin θ)^2, 0, 0, 0 |], [| -1, 0, 0, 0, 0 |], [| 0, 0, 0, 0, 0 |], [| 0, 0, 0, 0, 0 |], [| 0, 0, 0, 0, 0 |] |]~#_# assertEqual "Riemann curvature R~#_#_2_1" R~#_#_2_1 [| [| 0, -1 * (sin θ)^2, 0, 0, 0 |], [| 1, 0, 0, 0, 0 |], [| 0, 0, 0, 0, 0 |], [| 0, 0, 0, 0, 0 |], [| 0, 0, 0, 0, 0 |] |]~#_# -- Ricci curvature def Ric_i_j := withSymbols [m] sum (contract R~m_i_m_j) assertEqual "Ricci curvature Ric_1_#" Ric_1_# [| 4, 0, 0, 0, 0 |]_# assertEqual "Ricci curvature Ric_2_#" Ric_2_# [| 0, 4 * (sin θ)^2, 0, 0, 0 |]_# -- Scalar curvature def scalarCurvature := withSymbols [i, j] g~i~j . Ric_i_j assertEqual "scalar curvature" scalarCurvature (20 / r^2)
Links
Back to the Table of Contents
This website in other langauge:
English
,
日本語