MathJax-LaTeXでの数式の記述法(行列とベクトル)

この記事は約21分で読めます。

行列

文字・記号・基本式

行列そのもの

行列を表す文字には英大文字が使われることが多いですが、ベクトルの『→』ような判りやすい記号がないため、通常の文字ではなく太字や黒板太字が使われることがよくあります。

表示記述備考
\[\Large{A}\]Aデフォルトのフォントです。
\[\Large{\boldsymbol{A}}\]\boldsymbol{A}太字斜体は \boldsymbol です。
\[\Large{\mathbf{A}}\]\mathbf{A}太字正体は \mathbf です。
\[\Large{\mathbb{A}}\]\mathbb{A}いわゆる黒板太字は \mathbb です。このフォントは英大文字しかありません。

行列式

表示記述解説
\[|A|\]|A|行列式を表す(絶対値記号)には、|をそのまま記述します
\[\|A\|\]\|A\|二重線にしたい場合は \| とします。

演算子

表示記述解説
\[A\cdot B\]A\cdot B積を表す『 \(\cdot\) 』は \cdot です
\[A\times B\]A\times B積を表す『 \(\times\) 』は \times です
\[A^{-1}\]A^{-1}逆行列を表す『-1』など、右肩につく文字は ^ をつかって記述します。
\[{}^tA\]{}^tA上付き文字を表す ^ は左側に文字を必要とするため、ダミー文字として空のブロック { } を補っています。
\[A^\mathrm{T}\]A^\mathrm{T}転置行列を表す右肩の『 T 』が斜体にならないように \mathrm を使用しています。
\[A^\dagger\]A^\dagger随伴行列を表す『 \(\dagger\) 』は \dagger です。

matrix環境による要素の記述

行列を記述するための代表的な環境が matrix環境です。matrix環境はams-latexのものですが、WordPressプラグイン版MathJaxではデフォルトのままで使用できます。

matrix環境で m行n列の行列を表示する書式は以下の通りです。

\begin{matrix}
要素11 & 要素12 & … 要素1n \\
要素21 & 要素22 & … 要素2n \\
   :
要素m1 & 要素n2 & … 要素mn
\end{matrix}
  • 各行の要素を & で区切って記述する
  • 行の区切りに \\ を記述する(最下行には記述しない)

ようになっています。

では、簡単な例を見てみましょう。

\begin{matrix}
\displaystyle\frac{1}{2} & \cos\theta \\
1280 &  \frac{\sqrt{3}}{2}
\end{matrix}

\begin{matrix}
\displaystyle\frac{1}{2} & \cos\theta \\
1280 & \frac{\sqrt{3}}{2}
\end{matrix}

この例から、

  • 同じ列の要素は中央揃え
  • 要素はインライン形式で表示。\displaystyle コマンドは使用できるが要素毎に記述が必要

いうことがわかります。

他のmatrixシリーズの例

matrix には bmatrix 、pmatrix 、vmatrix 、Vmatrix というバリエーションがあります。すべてコマンドの書式は同じで、表示される際の括弧が違うだけです。まとめて例を挙げます。

表示記述解説
\[\begin{matrix}
a & b \\
c & d
\end{matrix}\]
\begin{matrix}
a & b \
c & d
\end{matrix}
matrix環境
括弧なし
\[\begin{bmatrix}
a & b \\
c & d
\end{bmatrix}\]
\begin{bmatrix}
a & b \\
c & d
\end{bmatrix}
bmatrix環境
両側に角括弧[ ]
\[\begin{pmatrix}
a & b \\
c & d
\end{pmatrix}\]
\begin{pmatrix}
a & b \\
c & d
\end{pmatrix}
pmatrix環境
両側に丸括弧( )
\[\begin{vmatrix}
a & b \\
c & d
\end{vmatrix}\]
\begin{vmatrix}
a & b \\
c & d
\end{vmatrix}
vmatrix環境
両側に縦線
\[\begin{Vmatrix}
a & b \\
c & d
\end{Vmatrix}\]
\begin{Vmatrix}
a & b \\
c & d
\end{Vmatrix}
Vmatrix環境
両側に二重縦線

array環境による要素の記述

位置合わせのための汎用の環境、array環境を使用しても行列を表示することが出来ます。若干難易度は高いですが、その分自由度も高いです。

array環境で m行n列の行列を表示する書式は以下の通りです。

\begin{array}[pos]{cols}
要素11 & 要素12 & … 要素1n \\
要素21 & 要素22 & … 要素2n \\
   :
要素m1 & 要素n2 & … 要素mn
\end{array}

matrixシリーズと異なり、 \begin{array} のあとに pos, cols という2つのパラメータを指定します(pos はオプション、cols は必須)。

pos は行列と行列外の要素との縦方向の位置合わせを指定します。省略可能です。
指定可能な内容は

  • up(上揃え)
  • middle(中央揃え)
  • bottom(下揃え)

です。省略すると middle になります。
pos を記述する場合、波括弧 { } ではなく角括弧 [ ] なので注意して下さい。
実は行列の表示の場合は up や bottom は使いにくいので、通常は省略(middle)でいいでしょう。

cols は各要素を列ごとの位置合わせを指定します。位置合わせで指定可能な内容は

  • l(左揃え)
  • c(中央揃え)
  • r(右揃え)

です。1行の要素数と同じ数だけlまたはcまたはr並べて記述します。位置合わせ文字の数よりも要素数の多い行があるとエラーになります。colsでは位置合わせの他に、区切り線(縦線)を指定することもできます。

要素の記述はmatrixシリーズと同じく、

  • 各行の要素を & で区切って記述する
  • 行の区切りに \\ を記述する(最下行には記述しない)

です。

基本的な使い方

array環境で2×2の行列を記述した例です。一番下の行には行末に \\ を付けないことに注意して下さい。

\begin{array}{cc}
a & b \\
c & d
\end{array}

\[\begin{array}{cc}
a & b\\
c & d
\end{array}\]

括弧の付け方

array環境は行列専用ではないので、括弧を付けるには、 \left~\right コマンド(大きさ可変の括弧)を組み合わせる必要があります。括弧は \left~\right で使用できるものを各種使用できます。まとめて試してみましょう。

表示記述
\[
\left(
\begin{array}{cc}
a & b \\
c & d
\end{array}
\right)
\]
\left(
\begin{array}{cc}
a & b \\
c & d
\end{array}
\right)
\[
\left[
\begin{array}{cc}
a & b \\
c & d
\end{array}
\right]
\]
\left[
\begin{array}{cc}
a & b \\
c & d
\end{array}
\right]
\[
\left|
\begin{array}{cc}
a & b \\
c & d
\end{array}
\right|
\]
\left|
\begin{array}{cc}
a & b \\
c & d
\end{array}
\right|
\[
\left\|
\begin{array}{cc}
a & b \\
c & d
\end{array}
\right\|
\]
\left\|
\begin{array}{cc}
a & b \\
c & d
\end{array}
\right\|

位置合わせ

array環境では列ごとに要素の位置合わせを指定することができます。それによってどのような変化があるか、まとめて見てみましょう。

表示記述
\[
\left(
\begin{array}{ll}
\cos\theta & -\sin\theta \\
\sin\theta & \cos\theta
\end{array}
\right)
\]
\left(
\begin{array}{ll}
\cos\theta & -\sin\theta \\
\sin\theta & \cos\theta
\end{array}
\right)
\[
\left(
\begin{array}{cc}
\cos\theta & -\sin\theta \\
\sin\theta & \cos\theta
\end{array}
\right)
\]
\left(
\begin{array}{cc}
\cos\theta & -\sin\theta \\
\sin\theta & \cos\theta
\end{array}
\right)
\[
\left(
\begin{array}{rr}
\cos\theta & -\sin\theta \\
\sin\theta & \cos\theta
\end{array}
\right)
\]
\left(
\begin{array}{rr}
\cos\theta & -\sin\theta \\
\sin\theta & \cos\theta
\end{array}
\right)

個人的な好みですが、この例の場合は、matrix環境と同じ中央寄せよりも右寄せの方が見やすいような気がします。

表示記述
\[
\left(
\begin{array}{lcr}
1 & 10000 & 100 \\
100 & 1 & 10000 \\
10000 & 100 & 1
\end{array}
\right)
\]
\left(
\begin{array}{lcr}
1 & 10000 & 100 \\
100 & 1 & 10000 \\
10000 & 100 & 1
\end{array}
\right)

このように、列ごとに合わせ位置を変えることもできます。

記述例

要素の省略

大きな行列の要素を省略して書くには \cdots や \vdots や \ddots を使用します。

\boldsymbol{A}=\left(
\begin{array}{cccc}
a_{11} & a_{12} & \cdots & a_{1n} \
a_{21} & a_{22} & \cdots & a_{2n} \
\vdots & \vdots & \ddots & \vdots \
a_{m1} & a_{m2} & \cdots & a_{mn}
\end{array}
\right)

\[
\boldsymbol{A}=\left(
\begin{array}{cccc}
a_{11} & a_{12} & \cdots & a_{1n} \\
a_{21} & a_{22} & \cdots & a_{2n} \\
\vdots & \vdots & \ddots & \vdots \\
a_{m1} & a_{m2} & \cdots & a_{mn}
\end{array}
\right)
\]

要素のサイズ

この例では行列の要素に分数 \frac を使用しています。 array環境の要素はインライン形式なので、このように上下方向に圧縮した形で表示されます。通常の分数サイズで表示する場合は要素毎に \displaystyle を記述します。

\mathrm{H}_f=\left(\frac{\partial^2f}{\partial x_i\partial x_j}\right)
=\left(\begin{array}{ccc}
\frac{\partial^2f}{\partial x_1\partial x_1} & \cdots & \frac{\partial^2f}{\partial x_i\partial x_n} \\
\vdots & \ddots & \vdots \\
\frac{\partial^2f}{\partial x_n\partial x_1} & \cdots & \frac{\partial^2f}{\partial x_n\partial x_n}
\end{array}\right)

\[
\mathrm{H}_f=\left(\frac{\partial^2f}{\partial x_i\partial x_j}\right)
=\left(\begin{array}{ccc}
\frac{\partial^2f}{\partial x_1\partial x_1} & \cdots & \frac{\partial^2f}{\partial x_i\partial x_n} \\
\vdots & \ddots & \vdots \\
\frac{\partial^2f}{\partial x_n\partial x_1} & \cdots & \frac{\partial^2f}{\partial x_n\partial x_n}
\end{array}\right)
\]

簡単な行列の式

典型的な行列の式の記述例です。数式モードではソースコード内の改行が無視されるので、この例のように行列を別行に分けて書いても問題ありません。

\left(\begin{array}{ccc}
a & b & c \\
d & e & f
\end{array}\right)
\left(\begin{array}{cc}
p & q \\
r & s \\
t & u
\end{array}\right)
=
\left(\begin{array}{cc}
ap+br+ct & aq+bs+cu \\
dp+er+ft & dq+es+fu
\end{array}\right)

\[
\left(\begin{array}{ccc}
a & b & c \\
d & e & f
\end{array}\right)
\left(\begin{array}{cc}
p & q \\
r & s \\
t & u
\end{array}\right)
=
\left(\begin{array}{cc}
ap+br+ct & aq+bs+cu \\
dp+er+ft & dq+es+fu
\end{array}\right)
\]

区分行列

array環境では、cols 中に『 | 』や『 : 』を挿入すると縦線が、行に \hline や \hdashline を挿入すると横線が表示されます。これを利用して区分行列を記述できます。

\left(
\begin{array}{cc|cc}
a_{11} & a_{12} & a_{13} & a_{14} \\
a_{21} & a_{22} & a_{23} & a_{24} \\
\hline
a_{31} & a_{32} & a_{33} & a_{34} \\
a_{41} & a_{42} & a_{43} & a_{44}
\end{array}
\right)

\[
\left(
\begin{array}{cc|cc}
a_{11} & a_{12} & a_{13} & a_{14} \\
a_{21} & a_{22} & a_{23} & a_{24} \\
\hline
a_{31} & a_{32} & a_{33} & a_{34} \\
a_{41} & a_{42} & a_{43} & a_{44}
\end{array}
\right)
\]

\left(
\begin{array}{c:ccc}
a_{11} & a_{12} & a_{13} & a_{14} \\
\hdashline
a_{21} & a_{22} & a_{23} & a_{24} \\
a_{31} & a_{32} & a_{33} & a_{34} \\
a_{41} & a_{42} & a_{43} & a_{44}
\end{array}
\right)

\[
\left(
\begin{array}{c:ccc}
a_{11} & a_{12} & a_{13} & a_{14} \\
\hdashline
a_{21} & a_{22} & a_{23} & a_{24} \\
a_{31} & a_{32} & a_{33} & a_{34} \\
a_{41} & a_{42} & a_{43} & a_{44}
\end{array}
\right)
\]

三角行列・対角行列

三角行列や対角行列では、右上または左下の 0 だけが並んでいる領域を省略して以下のように書くことがあります。これは特別なコマンドがあるわけではなく、適当な位置の要素を選んで \Huge コマンドで大きな 0 を表示しているだけです。

\left(
\begin{array}{cccc}
a_{11} &        &        &         \\
a_{21} & a_{22} &        & \Huge{0} \\
\vdots &        & \ddots &          \\
a_{n1} & \cdots & \cdots & a_{nn}
\end{array}
\right)

\[
\left(
\begin{array}{cccc}
a_{11} & & & \\
a_{21} & a_{22} & & \Huge{0} \\
\vdots & & \ddots & \\
a_{n1} & \cdots & \cdots & a_{nn}
\end{array}
\right)
\]

\left(
\begin{array}{cccc}
a_{11}   &        &        &          \\
         & a_{22} &        & \Huge{0} \\
\Huge{0} &        & \ddots &          \\
         &        &        & a_{nn}
\end{array}
\right)

\[
\left(
\begin{array}{cccc}
a_{11} & & & \\
& a_{22} & & \Huge{0} \\
\Huge{0} & & \ddots & \\
& & & a_{nn}
\end{array}
\right)
\]

ベクトル

文字・記号・基本式

ベクトルそのもの

表示記述備考
\[\large{\vec{a}}\]\vec{a}一文字の上に『→』がつく表示には \vec を使用します。
\[\large{\overrightarrow{AB}}\]\overrightarrow{AB}複数の文字の上に『→』がつく表示には \overrightarrow を使用します。
\[\large{\boldsymbol{a}}\]\boldsymbol{a}太字ベクトルを表示するには \boldsymbol を使用します。

同じ行に複数のベクトルを記述するとき、文字の高さによってベクトルの記号『→』の位置がバラバラになってしまいます。これを揃えるには \mathstrut コマンドを使用します。

表示記述
\[\vec{a}+\vec{b}+\vec{c}+\vec{d}\]\vec{a}+\vec{b}+\vec{c}+\vec{d}
\[\vec{\mathstrut a}+\vec{\mathstrut b}+\vec{\mathstrut c}+\vec{\mathstrut d}\]\vec{\mathstrut a}+\vec{\mathstrut b}+\vec{\mathstrut c}+\vec{\mathstrut d}

ベクトルの大きさ

表示記述解説
\[|\vec{a}|\]|\vec{a}|ベクトルの大きさを表す(絶対値記号)には、|をそのまま記述します
\[\|\vec{a}\|\]\|\vec{a}\|二重線にしたい場合は \| とします。

演算子

表示記述解説
\[\vec{a}\cdot\vec{b}\]\vec{a}\cdot\vec{b}内積を表す演算子は \cdot です
\[\vec{a}\times\vec{b}\]\vec{a}\times\vec{b}外積を表す演算子は \times です
\[\nabla \]\nablaナブラ演算子は \nabla です。
\[\Delta\]\Deltaラプラス演算子はギリシャ文字 \Delta を使用します。
\[\mathrm{grad}\\
\mathrm{div}\\
\mathrm{rot}\]
\mathrm{grad}
\mathrm{div}
\mathrm{rot}
これらの関数には \sin のような専用のコマンドが用意されていないので、 \mathrm を使用してローマン体で表示します。

垂直・平行

表示記述
\[\vec{a}\perp\vec{b}\]\vec{a}\perp\vec{b}垂直を表す記号は \perp です
\[\vec{a}\parallel\vec{b}\]\vec{a}\parallel\vec{b}平行を表す記号は \parallel です
\[\vec{a} /\!/ \vec{b}\]\vec{a}/\!/\vec{b}平行記号『∥』は日本独自の記号でLaTeXのコマンドにはないため『 / 』2つで代用しています。単に『 // 』と2つ並べて記述すると隙間が空きすぎてしまうので \! で隙間を調節しています。

要素の記述

要素は以下のように表すと良いでしょう。

行ベクトル

行ベクトルは表示そのままの通りに記述できます。

\vec{a}=(x,y,z)

\[\vec{a}=(x,y,z)\]

\(x,y,z\) がくっつきすぎていると感じる場合は、\ (\の後に半角空白)などで調節すると良いでしょう。

\[\vec{a}=(x,\ y,\ z)\]

\[\vec{a}=(x,\ y,\ z)\]

列ベクトル

列ベクトルは行列と同じく array環境+\left~\right や matrix環境を使用します。

\vec{a}=
\left(
\begin{array){c}
x \\
y \\
z
\end{array}
\right)

\[
\vec{a}=
\left(
\begin{array}{c}
x \\
y \\
z
\end{array}
\right)
\]

記述例

要素の省略

行ベクトル

ベクトルの要素の省略には \cdots や \ldots を使用します。

\vec{a}=(a_1, a_2, \cdots, a_n)

\[\vec{a}=(a_1, a_2, \cdots, a_n)\]

列ベクトル

列ベクトルの要素の省略には \vdots を使用します。

\vec{a}=
\left(
\begin{array}{c}
a_1\\
a_2\\
\vdots\\
a_n
\end{array}
\right)

\[
\vec{a}=
\left(
\begin{array}{c}
a_1 \\
a_2 \\
\vdots \\
a_n
\end{array}
\right)
\]

簡単なベクトルの式

ベクトルの内積の公式です。

(\vec{\mathstrut a}, \vec{\mathstrut b})
=\vec{\mathstrut a}\cdot\vec{\mathstrut b}
=\sum_{i=1}^n a_ib_i

\[
(\vec{\mathstrut a}, \vec{\mathstrut b})
=\vec{\mathstrut a}\cdot\vec{\mathstrut b}
=\sum_{i=1}^n a_ib_i
\]

やや複雑なベクトルの式

関数の傾斜を求める関数 \(\mathrm{grad}\) には \sin 等のような専用のコマンドがないので、ローマン体で表示するために \mathrm を使用しています。また、この例ではベクトルの要素が分数(偏微分)となっています。このような場合は \left~\right を使用して括弧の大きさを可変にしておくと良いでしょう。

\mathrm{grad}\phi
=\nabla\phi
=\frac{\partial\phi}{\partial x}\vec{e_x}+\frac{\partial\phi}{\partial y}\vec{e_y}+\frac{\partial\phi}{\partial z}\vec{e_z}
=\left(\frac{\partial\phi}{\partial x}, \frac{\partial\phi}{\partial y}, \frac{\partial\phi}{\partial z}\right)

\[
\mathrm{grad}\phi
=\nabla\phi
=\frac{\partial\phi}{\partial x}\vec{e_x}+\frac{\partial\phi}{\partial y}\vec{e_y}+\frac{\partial\phi}{\partial z}\vec{e_z}
=\left(\frac{\partial\phi}{\partial x}, \frac{\partial\phi}{\partial y}, \frac{\partial\phi}{\partial z}\right)
\]

コメント

タイトルとURLをコピーしました