このページについて

概要:このページでは、数学ソフトMathematicaで線形代数学する方法を解説します。ベクトル,行列演算についての解説です.

親ページ:このページの親ページはMathematicaです。

目次

ベクトル

a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

とすれば,aの中にベクトルを格納できます.

a*2

とすれば,ベクトルaを2倍してくれます.

b = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}

と定義しておき,

a + b

とかやれば,

{2, 3, 4, 5, 6, 7, 8, 9, 10, 11}

と返します.

a.b

とすれば,ベクトルの内積

55

が求まりまります.

ベクトルaの長さは,

Sqrt[a.a]

で求めることが出来るし, ベクトルaとベクトルbの距離は,

Sqrt[(a - b).(a - b)]

で求めることが出来ます.

ここでいったん,

Clear[a, b]

で,定義しておいたオブジェクトを消去しておきます.  

1次独立(線形独立)か1次従属(線形従属)かを調べることも出来ます. 例えば,

a = {3, 7, 3, 2}
b = {2, -4, -1, 4}
c = {2, 5, 6, 3}

が1次独立かどうか調べよう.

Solve[{k1*a + k2 *b + k3*c == 0}, {k1, k2, k3}]

の解が(k1,k2,k3)=(0,0,0)のみならば線形独立である.実際に計算してみると,

{{k1 -> 0, k2 -> 0, k3 -> 0}}

となるので,線形独立である.

ふたたび

Clear[a, b, c]

でa,b,cというオブジェクトをクリアしておく.もう一つの例.

a = {2, -5, 2, 4}
b = {1, -1, 1, 2}
c = {5, 2, -1, 7}
d = {4, 1, 4, 8}

と定義し,このベクトルが線形独立かどうか調べよう.

Solve[{k1*a + k2 *b + k3*c + k4*d == 0}, {k1, k2, k3, k4}]

とすれば,(k1,k2,k3,k4)=(0,0,0,0)以外の解が無数にあることが分かるので,線形従属である.

行列

Mathematicaでは,行列はリストのリストとして扱われる.例えば,

A = {{1, 2}, {3, 4}}

などで,行列Aが定義される. 行列形式で表示させたい場合,

MatrixForm[A]

とする.

Dimensions[A]

で行列Aの次元を教えてくれる. 行列の足し算は,ベクトルのそれと基本的に同じ.

5*A

とかすれば5倍してくれる.

B = {{10, 20}, {30, 40}}

と定義しておいて,

A * B

とすれば,それぞれの成分同士を掛け合わせる.

行列の掛け算は,

A.B

とやる.

4次元の単位行列は,

I1 = IdentityMatrix[4]

とすれば作れる.

(1,2,3,4)を対角成分にもち,その他がすべて0の行列は,

DiagonalMatrix[{1, 2, 3, 4, 5}]

で作れる.

転置行列は

Transpose[A]

などとする.

トレースは,

Tr[A]

などとする.

行列式は

Det[A]

とする.

逆行列は

Inverse[A]

とする.

固有値は,

Eigenvalues[A]

固有ベクトルは,

Eigenvectors[A]

で計算する.

ランクは,

MatrixRank[A]

とする.

さきほどの,線形従属だったベクトル

a = {2, -5, 2, 4}
b = {1, -1, 1, 2}
c = {5, 2, -1, 7}
d = {4, 1, 4, 8}

を再度定義しよう.

Amat = {a, b, c, d}

と定義して,Amatのランクを調べると,

MatrixRank[Amat]

とすると,

3

と返ってくる.線形従属なので,ショートランクになっていることが確認された.

Reference

参考書籍

リンク


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-10-27 (日) 17:43:03