第1章 数学の基礎知識
ここでは,基礎知識である線形代数と解析学を解説する.
数学の教科書なら,論理的な証明で理論展開するのが通例であるが,
本テキストの説明は名称の定義と機能に限定し,理論的な証明などは省略する.
例えば,逆行列$\bf{A}^{-1}$の算出方法は説明しないが,その機能(乗じると単位行列になる)は説明する.
1.1 行列とベクトルの定義
数を長方形に並べたものを行列という.一般には,その成分を$a_{ij}$で表して,式(\ref{Math_eq1})で定義する.
つまり,$mn$個の数 $a_{ij} ( i=1,2,\cdots,m; j=1,2,\cdots,n )$ を縦$m$行,横$n$列に並べたものである.
\begin{equation}
\bf{A}=
\begin{pmatrix}
a_{11} & a_{12} & \cdots & a_{1n}\\
a_{21} & a_{22} & \cdots & a_{2n}\\
\vdots & \vdots & & \vdots\\
a_{m1} & a_{m2} & \cdots & a_{mn} \label{Math_eq1}
\end{pmatrix}
\end{equation}
つまり,$mn$個の数 $a_{ij} ( i=1,2,\cdots,m; j=1,2,\cdots,n )$ を縦$m$行,横$n$列に並べたものである.
これを,
$\bf{m}$行$\bf{n}$列の行列$\ \bf{A}$と呼び,太い大文字で示す.
例えば,2行3列の行列を作るには,次のように書く.
>> [ 1, 2, 3; 4, 5, 6];
結果を表示したい場合は,行末のセミコロン ; を消去すれば良い.
>> [ 1, 2, 3; 4, 5, 6]
ans =
1 2 3
4 5 6
一方,ベクトルは太い小文字で表わすのが普通である.
1行だけの行列を行ベクトル,1列だけの行列を列ベクトルと言う.
本書では,特に断らない限りベクトルは列ベクトルであるとする.
これは,多くの教科書と同様である.
\begin{equation}
\bf{x}=\left(\begin{array}{c}
x_{1}\\
x_{2}\\
\vdots \\
x_{n}
\end{array}\right)
\end{equation}
列ベクトル $\bf{x}$を作るには,次のように書く.
>> x = [ 1; 2; 3];
行ベクトルを転置して列ベクトルにしても構わない.
>> x = [ 1, 2, 3].';
>> x = [ 1 2 3].';
1.2 行列の基本的演算
行列は無条件にスカラー倍することができる.
\begin{equation}
p\bf{A}=
\begin{pmatrix}
p\ a_{11} & p\ a_{12} & \cdots & p\ a_{1n}\\
p\ a_{21} & p\ a_{22} & \cdots & p\ a_{2n}\\
\vdots & \vdots & & \vdots\\
p\ a_{m1} & p\ a_{m2} & \cdots & p\ a_{mn}
\end{pmatrix}
\end{equation}
行数も列数も等しいとき,行列の和は次のように計算する.
\begin{eqnarray}
\left(\begin{array}{cccc}
a_{11} & a_{12} & \cdots & a_{1n}\\
a_{21} & a_{22} & \cdots & a_{2n}\\
\vdots & \vdots & & \vdots\\
a_{m1} & a_{m2} & \cdots & a_{mn}
\end{array}\right)
+
\left(\begin{array}{cccc}
b_{11} & b_{12} & \cdots & b_{1n}\\
b_{21} & b_{22} & \cdots & b_{2n}\\
\vdots & \vdots & & \vdots\\
b_{m1} & b_{m2} & \cdots & b_{mn}
\end{array}\right)
=
\left(\begin{array}{cccc}
a_{11}+b_{11} & a_{12}+b_{12} & \cdots & a_{1n}+b_{1n}\\
a_{21}+b_{21} & a_{22}+b_{22} & \cdots & a_{2n}+b_{2n}\\
\vdots & \vdots & & \vdots\\
a_{m1}+b_{m1} & a_{m2}+b_{m2} & \cdots & a_{mn}+b_{mn}\\
\end{array}\right)
\end{eqnarray}
左側行列の列数と右側行列の行数が等しいとき,行列の積は次のように計算できる.
\begin{eqnarray}
\left(\begin{array}{cccc}
a_{11} & a_{12} & \cdots & a_{1n}\\
a_{21} & a_{22} & \cdots & a_{2n}\\
\vdots & \vdots & & \vdots\\
a_{m1} & a_{m2} & \cdots & a_{mn}
\end{array}\right)
\left(\begin{array}{cccc}
b_{11} & b_{12} & \cdots & b_{1N}\\
b_{21} & b_{22} & \cdots & b_{2N}\\
\vdots & \vdots & & \vdots\\
b_{n1} & b_{n2} & \cdots & b_{nN}
\end{array}\right)
=
\left(\begin{array}{cccc}
\sum_{i=1}^{n}a_{1i}b_{i1} & \sum_{i=1}^{n}a_{1i}b_{i2} & \cdots & \sum_{i=1}^{n}a_{1i}b_{iN}\\
\sum_{i=1}^{n}a_{2i}b_{i1} & \sum_{i=1}^{n}a_{2i}b_{i2} & \cdots & \sum_{i=1}^{n}a_{2i}b_{iN}\\
\vdots & \vdots & & \vdots\\
\sum_{i=1}^{n}a_{mi}b_{i1} & \sum_{i=1}^{n}a_{mi}b_{i2} & \cdots & \sum_{i=1}^{n}a_{mi}b_{iN}\\
\end{array}\right)
\end{eqnarray}
1.3 行列の用語説明
正方行列,次数,対角行列,単位行列,零行列,転置行列,対称行列,交代行列,逆行列,正則行列,行列式,階数の定義を述べる.
1.3.1 正方行列
行数と列数が等しい行列.
1.3.2 次数
正方行列の行数あるいは列数.
1.3.3 対角行列
行番号と列番号が等しい成分は零でなく,それ以外は全て零の正方行列.
\begin{equation}
\left(\begin{array}{cccc}
9 & 0 & 0\\
0 & 2 & 0\\
0 & 0 & -5
\end{array}\right)\notag
\end{equation}
1.3.4 単位行列
対角成分が1である対角行列.通常$\bf{I}$で表わす.任意の行列$\bf{A}$に対し$\bf{AI}=\bf{IA}=\bf{A}$である.
\begin{equation}
\left(\begin{array}{cccc}
1 & 0 & 0\\
0 & 1 & 0\\
0 & 0 & 1
\end{array}\right)\notag
\end{equation}
1.3.5 零行列
全ての成分が零の行列.通常$\bf{0}$で表す.
\begin{equation}
\left(\begin{array}{cccc}
0 & 0 & 0\\
0 & 0 & 0\\
0 & 0 & 0
\end{array}\right)\notag
\end{equation}
1.3.6 転置行列
各成分の行番号と列番号を入れ替えた行列.$\bf{A}^{\rm{T}}$あるいは$^{t}\bf{A}$で表わす.
\begin{equation}
\left(\begin{array}{cccc}
1 & 2 & 3\\
4 & 5 & 6\\
7 & 8 & 9
\end{array}\right)^{\rm{T}}=
\left(\begin{array}{cccc}
1 & 4 & 7\\
2 & 5 & 8\\
3 & 6 & 9
\end{array}\right)\notag
\end{equation}
なお,積の転置は次のようになる.$(\bf{AB})^{\rm{T}}=\bf{B}^{\rm{T}}\bf{A}^{\rm{T}}$
1.3.7 対称行列
転置しても等しい行列.
\begin{equation}
\left(\begin{array}{cccc}
1 & 2 & 3\\
2 & 5 & 4\\
3 & 4 & 9
\end{array}\right)^{\rm{T}}=
\left(\begin{array}{cccc}
1 & 2 & 3\\
2 & 5 & 4\\
3 & 4 & 9
\end{array}\right)\notag
\end{equation}
1.3.8 交代行列
転置した行列と符号反転した行列が等しい行列.対角成分は全て零になる.
\begin{equation}
\left(\begin{array}{ccc}
0 & -2 & -3\\
2 & 0 & -4\\
3 & 4 & 0
\end{array}\right)^{\rm{T}}=
\left(\begin{array}{ccc}
0 & 2 & 3\\
-2 & 0 & 4\\
-3 & -4 & 0
\end{array}\right),\ \ \ \ \\
-\left(\begin{array}{ccc}
0 & -2 & -3\\
2 & 0 & -4\\
3 & 4 & 0
\end{array}\right)=
\left(\begin{array}{ccc}
0 & 2 & 3\\
-2 & 0 & 4\\
-3 & -4 & 0
\end{array}\right)\notag
\end{equation}
なお,全ての正方行列は対称行列と交代行列の和として一意に表わせる.
何故なら,$\bf{A}$は対称行列$\bf{B}=(\bf{A}+\bf{A}^{\rm{T}})/2$と
交代行列$\bf{C}=(\bf{A}-\bf{A}^{\rm{T}})/2$の和だからである.
1.3.9 逆行列(inv)
$\bf{A}$の左右どちらから乗じても単位行列にできる行列$\bf{AA}^{\rm{T}}=\bf{A}^{\rm{T}}\bf{A}$.
$\bf{A}^{-1}$で表わす.
matlabでは,次のように使う.
>> A = [ 1, -2, 0; -1, 3, 2; 1, -1, 4]
A =
1 -2 0
-1 3 2
1 -1 4
>> inv(A)
ans =
7.00000 4.00000 -2.00000
3.00000 2.00000 -1.00000
-1.00000 -0.50000 0.50000
なお,正方行列だからと言って,必ずしも逆行列があるとは限らないので注意.
1.3.10 正則行列
逆行列が存在する正方行列.
1.3.11 行列式(det)
逆行列の計算や固有値解析に用いる.数式では$|\bf{A}|$で表わす.
線形代数では重要なものだが実務上は知らなくても良い.
なお,行列式に数値を代入したものはスカラーであることを覚えておこう.
また,行列式のある行列は正方行列で,この値が零だと逆行列は存在しない.
逆行列の存在を確認するときに用いる場合がある.
先ほどの行列$\bf{A}$の行列式をmatlabで求める.
>> det(A)
ans = 2.
1.3.12 階数(rank)
係数行列が拘束する自由度.連立一次方程式の可解性を確認する時に用いる.
係数行列$\bf{A}$の階数(\texttt{rank(A)})が
未知ベクトルの次数より小さいときは,未知数の自由度が零にならないので,
不定(解が一意に定まらない)である.
先ほどの行列$\bf{A}$の階数をmatlabで求める.
>> rank(A)
ans = 3.
1.4 連立1次方程式
逆行列の重要な機能は,連立1次方程式を解くことである.
例として,次の連立1次方程式を解く.
\begin{eqnarray}
x_{1}-2x_{2}\hspace{9mm}=1 \\ \notag
-x_{1}+3x_{2}+2x_{3}=2 \\ \label{Math_eq6}
\ x_{1}\ -x_{2}+4x_{3}=4 \notag
\end{eqnarray}
行列を用いて表わせば,
\begin{equation}
\left(\begin{array}{ccc}
1 & -2 & 0\\
-1 & 3 & 2\\
1 & -1 & 4
\end{array}\right)
\left(\begin{array}{c}
x_{1}\\
x_{2}\\
x_{3}
\end{array}\right)=
\left(\begin{array}{c}
1\\
2\\
4
\end{array}\right)\label{Math_eq7}
\end{equation}
係数行列の逆行列を左から掛ければ未知変数ベクトル$\bf{x}$の解が得られる.
\begin{equation}
\left(\begin{array}{c}
x_{1}\\
x_{2}\\
x_{3}
\end{array}\right)=
\left(\begin{array}{ccc}
1 & -2 & 0\\
-1 & 3 & 2\\
1 & -1 & 4
\end{array}\right)^{-1}
\left(\begin{array}{c}
1\\
2\\
4
\end{array}\right)=
\left(\begin{array}{c}
7\\
3\\
0
\end{array}\right)\label{Math_eq8}
\end{equation}
ところで,次のような方程式があったとする.
\begin{eqnarray}
a_{1}x_{1}^{3}+a_{2}x_{1}^{2}+a_{3}x_{1}=1 \notag \\
a_{1}x_{2}^{3}+a_{2}x_{2}^{2}+a_{3}x_{2}=2 \notag \\
a_{1}x_{3}^{3}+a_{2}x_{3}^{2}+a_{3}x_{3}=3 \notag
\end{eqnarray}
このとき,この方程式は「連立3次方程式だから逆行列で解けない」と思っていないか?
もし,$x_{1},x_{2},x_{3}$が未知変数で,$a_{1},a_{2},a_{3}$が既知なら,3つの独立な3次方程式である.
しかし,$a_{1},a_{2},a_{3}$が未知変数で,$x_{1},x_{2},x_{3}$が既知なら連立1次方程式であるから,
逆行列で解ける.
子供の頃からの慣れで,「$x$は未知数である」という思い込みに陥りやすいので注意されたい.
1.5 固有値解析
$n$次の正方行列$\bf{A}$の固有値解析を行うと$n$本の固有ベクトル群である固有行列$\bf{X}$,
対角成分が固有値である固有値行列$\Lambda$が得られ,次式の関係が成り立つ.
\begin{equation}
\bf{AX}=\bf{X \Lambda}\label{Math_eq9}
\end{equation}
これは,式(\ref{Math_eq10})の固有方程式を解くことによって得られる.
\begin{equation}
|\bf{A}-\Lambda|=0 \label{Math_eq10}
\end{equation}
実際に,matlabを使って固有値解析をしてみる.
>> A = [ 4 3; -2 -1]
A =
4 3
-2 -1
次の関数で,固有値解析をする.
>> [ X, D ] = eig(A);
ちゃんと固有値解析が行われているか?確認する.
>> A*X - X*D
ans =
-4.4409e-16 2.2204e-16
2.2204e-16 -1.1102e-16
ところで,固有値解析は何に役立つのだろうか?
固有値解析は,行列を対角行列に変換する\textbf{対角化}に使う.
対角化できれば,行列の式は,複数の独立したスカラー変数の式に変換され,
大変見通しが良くなり,扱いやすくなる.本書では,振動解析のところで使う.
式(\ref{Math_eq9})の両辺に,左から$\bf{X}^{-1}$を掛ければ対角化する.
\begin{equation}
\bf{X}^{-1}\bf{AX}=\Lambda
\end{equation}
実際に,matlabを使って確かめてみる.
>> inv(X)*A*X
ans =
2.0000e+00 1.0771e-15
3.0090e-16 1.0000e+00
しかし,逆行列$\bf{X}^{-1}$を掛けなくても転置行列$\bf{X}^{\rm{T}}$で対角化できる場合がある.
このような行列$\bf{A}$を正規行列と言い,$\bf{A}^{*}\bf{A}=\bf{AA}^{*}$を満足すれば正規行列である.
なお,*は共役転置を意味している.行列$\bf{A}$が実数行列で,
$\bf{A}^{\rm{T}}\bf{A}=\bf{AA}^{\rm{T}}$を満足すれば正規行列である.
その典型例は実対称行列であり,$\bf{X}^{\rm{T}}\bf{AX}$は対角行列になる.
実際に,実対称行列$\bf{A}$をmatlabで解析してみる.
>> A = [ 1 2; 2 3]
A =
1 2
2 3
>> [ X, D ] = eig(A);
転置行列で対角化する.
>> X.'*A*X
ans =
-2.3607e-01 -3.4846e-16
-3.1028e-16 4.2361e+00
このとき,固有行列$\bf{X}$は直交行列である.
>> X.'*X
ans =
1.0000e+00 -1.2127e-17
-1.2127e-17 1.0000e+00
1.6 ラプラス変換
力や熱の伝達や構造振動などのように,時間によって変化する現象は
微分方程式によって表わされる.しかし,微分方程式を直接解くのは厄介である.
ラプラス変換は,微分方程式を1次方程式に変換して解く方法であり,非常に便利である.
その変換公式を以下に示す.
\begin{equation}
F(s)=\int_{0}^{\ \infty}{e^{-st}f(t)dt}
\end{equation}
つまり,微分演算子$s$によって$t$の関数$f(t)$を$F(s)$に変換している.
しかし,この公式を覚える必要はないだろう.
記憶する必要があるのは,1回微分の$d/dt$は$s$に,2回微分の$d^{2}/dt^{2}$は$s^{2}$に,
1回積分$\int{dt}$が$1/s$になることぐらいである.
例えば,次のような微分方程式があったとする.
\begin{equation}
y(t)=\frac{d^{2}}{dt^{2}}x(t)+\frac{d}{dt}x(t)+x(t)+\int{x(t)dt}
\end{equation}
これをラプラス変換すれば次のようになる.
\begin{equation}
Y(s)=(s^{2}+s+1+\frac{1}{s})X(s)
\end{equation}
実際,ラプラス変換を日常的に使うと,微分方程式を扱っている気はしない.
最初のモデル式だけは微分方程式だが,ラプラス変換した後は有理方程式であり,
容易に理解できる.
動的問題を扱う(制御や振動の)専門家達は,ラプラス変換した後の代数方程式で問題を解く.
ここで多用するのが線形代数である.だから,彼らには線形代数に詳しい人が多い.
問題1.1
次の行列の定義を述べてください.
- 対角行列
- 単位行列
- 転置行列
- 逆行列
- 正則行列
問題1.2
次の連立1次方程式を逆行列を使って解き,未知数$x_{1},x_{2},x_{3},x_{4}$を求めてください.
\begin{eqnarray}
\ 8x_{1}-3x_{2}+\ 5x_{3}\ &=&43 \nonumber \\
\ x_{1}\ \ -2x_{3}+9x_{4}\ &=& 89 \nonumber \\
\ 7x_{1}-6x_{2}\ \ -x_{3}+6x_{4}\ &=& 126 \nonumber \\
\ -2x_{2}\ \ +x_{3}+5x_{4\ }&=&57 \nonumber
\end{eqnarray}
問題1.3
以下に示す実対称行列$\bf{A}$を固有値解析してください.
そして,実対称行列$\bf{A}$を対角行列$\bf{C}$と固有行列$\bf{X}$を用いて表現し,
最後に行列$\bf{C}$と行列$\bf{X}$を4行4列の行列で示してください.
\begin{equation}
\left(\begin{array}{cccc}
16& -2& 12& 0\\
-2& 0& -8& 7\\
12& -8& -2& 7\\
0& 7& 7& 10\\
\end{array}\right)\notag
\end{equation}