連立1次方程式や固有値問題など、 いわゆる線形演算の重要性を手短に説明することはとても難しい 1。 LAPACK に代表される線形演算ラリブラリィと、 それらを快適に利用できる言語仕様 (MATLAB が先達) は素晴らしい成果である。 Julia ではどのようになっているのか、お手並拝見。
LinearAlgebra という標準ライブラリィが用意されている。 使うには
using LinearAlgebra |
基本 LAPACK を使っているよし。 SuiteSparse って何だろう?
トレース tr(), 行列式 det(), 逆行列 inv(), 左からの割算 \ など、 普通に使いたくなる基本的な演算は当然揃っている。
もちろん、 連立1次方程式や固有値問題を解くための関数も用意されているが(後述)、 重要なことは特殊な性質を持つ行列を取り扱う仕組みである。
Symmetric | 対称行列 () |
Hermitan | Hermite行列 () |
UpperTriangular | 上三角行列 |
UnitUpperTriangular | 単位上三角行列 (対角成分が全てに等しい上三角行列) |
LowerTriangular | 下三角行列 |
UnitLowerTriangular | 単位下三角行列 (対角成分が全てに等しい下三角行列) |
UpperHessenberg | 上 Hessenberg行列 |
Tridiagonal | 三重対角行列 |
SymTridiagonal | 対称三重対角行列 |
Bidiagonal | 二重対角行列 |
Diagonal | 対角行列 |
UniformScaling | いわゆるスカラー行列 (, という形の行列) |