10.3 行列、ベクトル、双対ベクトル

「ベクトルや行列の作り方」

$ m\times n$ Array というものがある。$ m\times n$ 行列とみなすと良い。

どうやって記述するか。かっことして [ ] を用いる。 次の列に進むには、単にスペースを入れる。 次の行に進むには、, を1つ入れるか、 ; または改行を1つ以上入れる。
julia> a1=[1 2
           3 4]
julia> a2=[1 2; 3 4]
julia> a3=[1 2;
           3 4]
julia> a4=[1 2;; 3 4]
julia> a5=[1 2, 3 4]

2×2 Array{Int64,2}:
 1  2
 3  4
(a1からa5まで、皆同じ)

(MATLAB と似ているが、カンマ , の扱いが違う。 MATLABではスペースと同じだ。 Julia では , を使わないことにしようかな。)


$ m\times 1$ Array は、$ m$-element Array という。 $ m$ 次元縦ベクトルとみなすと良い。

次はどれも同じ。 $ \mathbb{R}^3$ の要素と考えよう。 ,; も改行も、行列の次の行に進むという意味になる。
julia> v1=[1,2,3]
julia> v2=[1;2;3]
julia> v3=[1
           2
           3]

3-element Array{Int64,1}:
 1
 2
 3


$ 1\times 1$ Array ($ 1$-element Array) はスカラーではない。 (これは MATLAB とは異なるところ。) スカラーが [ ] で括られたもの、というイメージで良い。 5[5] は違う。
julia> a=5
5

julia> A=[a]
1-element Array{Int64,1}:
 5

例えば、どちらも足せるけれど、混ぜて足すことは出来ない。
julia> 1+2
3

julia> [1]+[2]
1-element Array{Int64,1}:
 3

julia> [1]+2
エラーになる。MATLAB だったら 3 になるんだけど。

Array と Array は行列としてかけることが出来る。 (もう少し詳しく言うと) $ l\times m$ Array と $ m\times n$ Array の積は $ l\times n$ Array になる。

もちろん行列とベクトルの積はベクトルである。 (もう少し詳しく言うと) $ m\times n$ Array と $ n\times 1$ Array の積は $ m\times 1$ Array ($ m$-element Array) である。



Subsections

桂田 祐史