|このページについて| ''概要'':このページでは、数学ソフトMathematicaで線形代数学する方法を解説します。ベクトル,行列演算についての解説です. ''親ページ'':このページの親ページは[[Mathematica]]です。 |目次| #contents ---- *ベクトル [#tc0dff88] 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)以外の解が無数にあることが分かるので,線形従属である. *行列 [#a0aa62fa] 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 [#k9c3d123] **参考書籍 [#w3dd5531] -宮岡悦良(2000),『Mathematica数学の道具箱〈上〉』,ブレーン出版 -宮岡悦良(2000),『Mathematica数学の道具箱〈下〉』,ブレーン出版 **リンク [#lc6c8710] -[[神戸大学 Mathematica ホームページ:http://bach.istc.kobe-u.ac.jp/mma/]]