2019年5月3日金曜日

Grassmann.jl

juliaの Grassmann.jl パッケージをインストールした。

「Grassmann.jlパッケージは,Grassmann-Clifford-Hestenes-Taylor 幾何代数として知られる拡張テンソル代数を使用して,多重線形代数,微分幾何学,およびスピン群に基づいて計算を行うためのツールを提供している。 主な演算は,∧, ∨, ⋅, *, ×, ⋆, ', ~(外積,回帰,内積,幾何積,およびクロス積と,ホッジスター演算,随伴演算,および多演算子反転演算)である」(Grassmann.jlドキュメントより引用)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
using Pkg
Pkg.add("Reduce")
Pkg.add("Grassmann")
using Reduce,Grassmann
using Test

# write your own tests here
@test (@basis "++++" s e; e124 * e23 == e134)
@test [Λ(3).v32^2,Λ(3).v13^2,Λ(3).v21^2] == [-1Λ(3).v for j∈1:3]
@test ((Λ(2).v1+2Λ(2).v2)∧(3Λ(2).w1+4Λ(2).w2))(Λ(2).v1+Λ(2).v2) == 7Λ(2).v1+14Λ(2).v2
@test (@basis "++++"; ((v1*v1,v1⋅v1,v1∧v1) == (1,1,0)) && ((v2*v2,v2⋅v2,v2∧v2) == (1,1,0)))
@test (@basis "-+++"; ((v1*v1,v1⋅v1,v1∧v1)==(-1,-1,0)) && ((v2*v2,v2⋅v2,v2∧v2) == (1,1,0)))
@test (basis"-+++"; h = 1v1+2v2; h⋅h == 3v)
!Sys.iswindows() && @test Λ(62).v32a87Ng == -1Λ(62).v2378agN
@test Λ.V3 == Λ.C3'
@test Λ(14) + Λ(14)' == Λ(vectorspace(14)+vectorspace(14)')
@test ((a,b) = ((:a*Λ(2).v1 + :b*Λ(2).v2),(:c*Λ(2).v1 + :d*Λ(2).v2)); Algebra.:+(a∧b,a⋅b)==a*b)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Test Passed


0 件のコメント: