2019年4月26日金曜日

[Julia] ベクトルと行列の演算

ベクトルと行列の演算例をREPLを使って行う際のメモです.

1次元配列は要素をカンマ(,)で区切ります.また,1次元配列は列ベクトルに相当します.
julia> col = [1.0, 2.0]    # Column vector
2-element Array{Float64,1}:
 1.0
 2.0

行ベクトルは行の数が1つの2次元配列で表現します.行ベクトルは2次元配列なので,行ベクトルリテラルは,列ベクトルの ","の代わりに空白区切り" "で要素を並べます.
julia> row = [3.0 4.0]     # Row vector
1×2 Array{Float64,2}:
 3.0  4.0

行ベクトルと列ベクトルの積は以下のように記述します.
julia> row * col           # 3.0 * 1.0 + 4.0 * 2.0
1-element Array{Float64,1}:
 11.0

列ベクトルと行ベクトルの積は以下のように記述します.
julia> col * row           # [1.0*3.0 1.0*4.0; 2.0*3.0 2.0*4.0]
2×2 Array{Float64,2}:
 3.0  4.0
 6.0  8.0

行列は2次元配列で表現します.行列リテラルは,空白区切り" "の要素で表される行をセミコロン";",もしくは改行で区切って表現します.
セミコロン";"で区切る場合は以下のようになります.
julia> A = [1.0 3.0; 2.0 4.0] # 2x2 Matrix
2×2 Array{Float64,2}:
 1.0  3.0
 2.0  4.0
改行で区切る場合は以下のようになります.
julia> A = [1.0 3.0
            2.0 4.0] # Same as above Matrix A
2×2 Array{Float64,2}:
 1.0  3.0
 2.0  4.0

行ベクトル,行列,および列ベクトルの積は以下のようになります.
julia> row * A * col
1-element Array{Float64,1}:
 61.0

上記の例のJupyter Notebookファイルは,GitHubJulia_Beginner_03.ipynbの"5 Vector and matrix operations"で見ることができます.

0 件のコメント :

コメントを投稿