つれづれなる備忘録

日々の発見をあるがままに綴る

Texによる文書作成4 ~ 数式の挿入

 今回はLaTeX文書の作成方法として文中に数式を挿入する方法について紹介したい。

atatat.hatenablog.com

1. 数式の挿入方法

 文中に数式を挿入するには、インライン数式モードがあり、数式を$で囲って$~$とする。例えば、

インラインでの数式挿入例は$ f(x)=\sum_{n=0}^{\infty}\exp (x^2)/n $である。

他に\( \)\begin{math} \end{math}で囲む方法があるが動作は同じ。

次に数式を別行にして、中央に表示してさらに端に数式番号を自動で挿入するには、数式が1行の場合はequation環境、数式が複数にまたがる場合はeqnarray環境を使用する。これらはディスプレイ数式モードよ呼ぶ。 equation環境を利用する場合は、以下のようにする。

\begin{equation}
  x^2 - 6x + 1 = 0
\end{equation}

また、eqnarray環境を利用するには

\begin{eqnarray}
  x + y & = & 5 \\
  2z + 5c & = & 2
\end{eqnarray}

2つの数式に番号が挿入される。\\で改行、& &で行間の位置を合わせる。 なお片方の数式のみ番号をつける場合は、つけない方の数式で\nonumberを入れる。

\begin{eqnarray}
  x + y & = & 5 \nonumber \\
  2x + 5y & = & 2
\end{eqnarray}

別行だが数式の番号を入れない場合は

$$ x + y  =  5 $$

他に\[ \]\begin{displaymath} \end{displaymath}があるが動作は同じ。

新しい章などで、数式番号をリセットしたい場合は\setcounter{equation}{0}を入れる。

2. サンプルコードと実行例

上記のLaTeXのサンプルコードと実行例を以下に示す。

\documentclass{jarticle}

\usepackage[dvipdfmx]{graphicx}
\title{\LaTeX 数式文書入門 \\ $\displaystyle \sum_{k=0}^\infty x_k$の使い方}

\author{atatat \and btbtbt \and ctctct}
\date{2020年1月1日}
\begin{document}
\maketitle

\section{節見出し1}

インラインでの数式挿入例は$ f(x)=\sum_{n=0}^{\infty}\exp (x^2)/n $である。

番号付き数式環境は
\begin{equation}
  x^2 - 6x + 1 = 0
\end{equation}

番号付き複数行の数式環境は
\begin{eqnarray}
  x + y & = & 5 \\
  2z + 5c & = & 2
\end{eqnarray}
片方の数式のみ番号をつける場合は、つけない方の数式で\verb|\nonumber|
\begin{eqnarray}
  x + y & = & 5 \nonumber \\
  2x + 5y & = & 2
\end{eqnarray}
数式の番号を入れない場合は
$$ x + y  =  5 $$
\section{節見出し2}
数式の連番をリセットするには\verb|\setcounter{equation}{0}|とする
\setcounter{equation}{0}
\begin{equation}
  x^2 - x + 1 = 0
\end{equation}

\end{document}

"数式挿入LaTeX文章の作成例"
数式挿入LaTeX文章の作成例

3. まとめ

 今回はLaTeX文書中に数式を挿入するインライン数式モードとディスプレイ数式モード、さらに数式番号の自動挿入、非表示、リセットについて紹介した。

SymPyの使い方6 ~ 数式の微積分

 今回はSymPyを用いた数式の微積分計算の方法について紹介していきたい。SymPyのようなシンボリック計算ソフトを活用できると(解ける範囲で)複雑な微積分計算が扱えるようになり、応用数学や工学の理解を進めやすくなる。

1. 微分計算

 微分計算を実行するにはdiff(関数,微分変数)コマンドを実行する。例えば、

diff(cos(x),x)
>-sin(x)
diff(exp(x**2),x)
>2*x*exp(x**2)

2回以上の微分を実行するには、diff(関数,微分変数,微分変数)またはdiff(関数,微分変数,微分回数)とする。例えば、

diff(x**4,x,x)
>12*x**2

diff(x**4,x,2)
>12*x**2

多変数関数の場合、微分変数を選択することで偏微分を実行することができる。例えば、

diff(x**3*y**3*z,x,y)
>9*x**2*y**2*z

また複数回偏微分を指定する場合は、各微分変数の後に微分回数を指定する。

diff(x**3*y**3*z,x,2,y,2)
>36*x*y*z

微分を実行せずに微分記号に留めておくにはDerivative(関数,微分変数)とする。

expr=Derivative(cos(x),x)
expr
>Derivative(cos(x), x)

後で微分を実行するには.doit()を用いる。

expr.doit()
>-sin(x)

2. 積分計算

 積分計算を実行するにはintegrate(関数,積分変数)を用いる。例えば、

integrate(x**2,x)
>x**3/3

また複雑な積分も解が特殊関数であれば表示される。

integrate(exp(-x**2),x)
>sqrt(pi)*erf(x)/2

微分と異なり積分不可能なものは、入力がそのまま出力される。

integrate(cos(x*exp(-x)),x)
>Integral(cos(x*exp(-x)), x)

多重積分の場合は、積分変数を順番に記述する。

integrate(x*y**2,x,y)
>x**2*y**3/6

積分の場合は、integrate(関数,(積分変数,下限,上限))を用いる。

integrate(x**2,(x,0,10))
>1000/3

無限大の場合はoを2つ連ねてooとして、マイナス無限大は-ooとする。

integrate(exp(-x),(x,0,oo))
>1

多重積分の定積分不定積分と同様に積分変数ごとに下限と上限を記述する。

integrate(exp(-x**2 - y**2), (x, -oo, oo), (y, -oo, oo))
>pi

積分を実行しない場合はIntegrate(関数名,積分変数)を使用する。

expr=Integral(x**2, x)
expr
>Integral(x**2, x)

積分を実行する場合は微分のときと同様に.doit()を用いる。

expr.doit()
>x**3/3

3. まとめ

 今回はSymPyを用いた微分積分計算の方法について紹介した。

Texによる数式表現41~微分方程式の分類

 今回はTexによる微分方程式の分類に関する数式表現方法について紹介したい。微分方程式を直接解く機会は実際には少ないが、基礎科学からエンジニアリングまで微分方程式を解くことで様々なシミュレーションや設計が可能になっている。

1. 常微分方程式偏微分方程式

 微分方程式に含まれる導関数の階数(微分の回数)によってn階微分方程式と呼ばれる。また連立している場合は連立n階微分方程式と呼ばれる。

次に常微分方程式は、1変数のみの導関数微分)を含む通常の微分によって表せる微分方程式

[tex: \displaystyle \frac{d}{dx}f(x)-f(x)=0]

 \displaystyle \frac{d}{dx}f(x)-f(x)=0

などと表記できる。(1階常微分方程式) また、2階常微分方程式

[tex: \displaystyle \frac{d^{2}}{dx^{2}}f(x)-2\frac{d}{dx}f(x)+f(x)=\sin (x)]

 \displaystyle \frac{d^{2}}{dx^{2}}f(x)-2\frac{d}{dx}f(x)+f(x)=\sin (x)

一方で偏微分方程式微分に関する変数が複数ある偏微分を含む微分方程式

[tex: \displaystyle \frac{\partial^{2}}{\partial x^{2}}f(x,y)+\frac{\partial^{2}}{\partial y^{2}}f(x,y)=k]

 \displaystyle \frac{\partial^{2}}{\partial x^{2}}f(x,y)+\frac{\partial^{2}}{\partial y^{2}}f(x,y)=k

などと表記できる。

2. 線形微分方程式非線形微分方程式

 未知関数の1次式で表現できる微分方程式を線形微分方程式とよぶ。例えば

[tex: \displaystyle \left( \frac{d}{dx} + \alpha \right) f(x) = g(x) ]

 \displaystyle \left( \frac{d}{dx} + \alpha \right) f(x) = g(x)

2階線形微分方程式では

[tex: \displaystyle \left( \frac{d^{2}}{dx^{2}} + \beta \frac{d}{dx} + \alpha \right) f(x) = g(x) ]

 \displaystyle \left( \frac{d^{2}}{dx^{2}} + \beta \frac{d}{dx} + \alpha \right) f(x) = g(x)

あるいはベクトル、行列で表す1次式も含む。

[tex:\displaystyle \frac{d}{dx} {\bf{y}}(x) = {\bf{A}}(x) {\bf{y}}(x)+{\bf{b}}(x) ]

\displaystyle \frac{d}{dx} {\bf{y}}(x) = {\bf{A}}(x) {\bf{y}}(x)+{\bf{b}}(x)

一方で非線形微分方程式は1次式で表せない方程式で、例えば

[tex: \displaystyle \left( \frac{d}{dx}f(x)\frac{d}{dx}\right) f(x)=g(x) ]

 \displaystyle \left( \frac{d}{dx}f(x)\frac{d}{dx}\right) f(x)=g(x)

3. 斉次方程式と非斉次方程式

 すべての項が未知関数かゼロであるような線形微分方程式を斉次方程式あるいは同次方程式とよぶ。例えば

[tex: \displaystyle \frac{d}{dx}f(x)+f(x)=0]

 \displaystyle \frac{d}{dx}f(x)+f(x)=0

一方で非斉次方程式は、以下のように未知関数を含まずゼロ以外の項g(x)が存在する。g(x)は例えば定数であってもよい。

[tex: \displaystyle \frac{d}{dx}f(x)+f(x)=g(x)]

 \displaystyle \frac{d}{dx}f(x)+f(x)=g(x)

4. まとめ

 今回はまず微分方程式の分類に関する数式表現方法について紹介した。今後微分方程式の解に関するTeXによる数式表現も取り上げる予定である。