Return to Maxima で理工系の数学C

Maxima で多重積分

多変数関数の積分である多重積分のうち,もっとも簡単な2変数関数の積分つまり2重積分についてまとめる。

2重積分は累次積分で

Maxima における2重積分の計算は,基本的に累次積分でやります。

$\displaystyle \iint_D f(x, y)\, dx dy$ の領域 $D$ が何と何で囲まれているかを明らかにして積分する。

累次積分 1

領域 $D$ が $x_1 \leq x \leq x_2,\ y_1 \leq y \leq y_2$ である場合:

$$\iint_D f(x, y) \,dx\,dy = \int_{x_1}^{x_2} \left\{\int_{y_1}^{y_2} f(x, y)\,dy \right\} dx$$

または

$$\iint_D f(x, y) \,dx\,dy = \int_{y_1}^{y_2} \left\{\int_{x_1}^{x_2} f(x, y)\,dx \right\} dy$$

累次積分 2

領域 $D$ が $x_1 \leq x \leq x_1,\ \phi_1(x) \leq y \leq \phi_2(x)$ である場合:

$$ \iint_D f(x, y) \,dx\,dy = \int_{x_1}^{x_2} \left\{\int_{\phi_1(x)}^{\phi_2(x)} f(x, y)\,dy \right\} dx$$

累次積分 3

領域 $D$ が $\psi_1(y)\leq x \leq \psi_2(y),\ y_1 \leq y \leq y_2$ である場合:

$$ \iint_D f(x, y) \,dx\,dy = \int_{y_1}^{y_2} \left\{\int_{\psi_1(y)}^{\psi_2(y)} f(x, y)\,dx \right\} dy$$

例題

$$I = \iint_D y \,dx dy, \quad D: 0\leq x\leq 2, \ 0 \leq y \leq 2$$

これは,ケース 1。以下のように累次積分にして…
\begin{eqnarray}
f(x, y) &=& y \\
x_1 &=& 0\\
x_2 &=& 2\\
y_1 &=& 0\\
y_2 &=& 2
\end{eqnarray}

\begin{eqnarray}
\iint_D y \,dx dy &=& \int_{x_1}^{x_2} \left\{\int_{y_1}^{y_2} f(x, y) dy \right\} dx\\
&=& \cdots
\end{eqnarray}

In [1]:
f(x, y):= y$
x1: 0$
x2: 2$
y1: 0$
y2: 2$

I = integrate(
      integrate(f(x,y), y, y1, y2), 
      x, x1, x2);
Out[1]:
\[\tag{${\it \%o}_{5}$}I=4\]

参考:領域 $D$ の塗りつぶし

ついでに,領域 $D$ の部分を塗りつぶして描いてみます。

In [2]:
f(x, y):= y$
x1: 0$
x2: 2$
y1: 0$
y2: 2$

draw2d(
  title = "領域 D",
  /* x 軸 y 軸の表示範囲の設定。*/ 
  xrange = [-0.5, 2.5], xaxis = true, xlabel="x", 
  yrange = [-0.5, 2.5], yaxis = true, ylabel="y", 
  user_preamble="set grid front",
  /* 縦横比 */
  proportional_axes = xy,
  
  /* 塗りつぶす色の指定。*/
  fill_color = yellow, 
  
  /* 上の線。y = y2 を filled_func に代入。*/
  filled_func = y2, 
  
  /* 下の線。y = y1 を x1 < x < x2 の範囲で描く。*/
  explicit(y1, x, x1, x2)  
)$

ついでに,3次元的なグラフを描いてみます。

In [3]:
f(x, y):= y$
x1: 0$
x2: 2$
y1: 0$
y2: 2$

draw3d(
  /* 表示範囲 */
  xrange = [-0.5, 2.5],
  yrange = [-0.5, 2.5], 
  zrange = [0, 2.5], 
  /* 縦横比 */
  proportional_axes = xyz, xyplane=0,

  /* 領域 D*/
  color=yellow,
  parametric_surface(x, y, 0, 
                     x, x1, x2, y, y1, y2),
  /* z = f(x, y) */
  color=blue,
  explicit(f(x, y), x, x1, x2, y, y1, y2)
)$

2重積分の結果は,黄色で塗りつぶされた領域 $D$ と青色で塗られた平面で挟まれた部分の体積を表す。

縦横高さともに $2$ の立方体を斜めに2つに切った立体であるので体積は

$$\frac{2\cdot 2\cdot 2}{2} = 4$$

になるはずで,答えも確かにそうなっている。

例題

$$I = \iint_D dx dy, \quad D: x^2 + y^2 \leq 1$$

累次積分の形にする。まず先に $-\sqrt{1-x^2} < y < \sqrt{1-x^2}$ の範囲で $y$ で定積分し,そのあとに $ -1 < x < 1$ の範囲で $x$ で定積分する。
被積分関数は $1$。

ケース 2 の累次積分の形:
\begin{eqnarray}
f(x, y) &=& 1 \\
x_1 &=& -1\\
x_2 &=& 1 \\
\phi_1(x) &=& -\sqrt{1-x^2}\\
\phi_2(x) &=& \sqrt{1-x^2}
\end{eqnarray}

\begin{eqnarray}
\iint_D dx dy &=& \int_{x_1}^{x_2} \left\{\int_{\phi_1(x)}^{\phi_2(x) } f(x, y)\,dy \right\} dx \\
&=& \cdots
\end{eqnarray}

$I$ は半径 $1$ の円の面積であるから,$\pi r^2 = \pi \ (\because r=1)$ となるはず。

In [4]:
f(x, y):= 1$
phi1(x):= -sqrt(1-x**2)$
phi2(x):= sqrt(1-x**2)$
x1: -1$
x2: 1$

I = integrate( 
      integrate(f(x, y), y, phi1(x), phi2(x)), 
      x, x1, x2);
Out[4]:
\[\tag{${\it \%o}_{25}$}I=\pi\]

参考:領域 $D$ の塗りつぶし

ついでに,領域 $D$ の部分を塗りつぶして描いてみます。

In [5]:
phi1(x):= -sqrt(1-x**2)$
phi2(x):= sqrt(1-x**2)$
x1: -1$
x2: 1$

draw2d(
  title="領域 D", 
  /* x 軸 y 軸の表示範囲の設定。*/ 
  xrange = [-1.5, 1.5], xaxis = true, xlabel="x", 
  yrange = [-1.5, 1.5], yaxis = true, ylabel="y", 
  proportional_axes = xy,   /* 円をまんまるく表示したいときに */
  user_preamble="set grid front",

  fill_color = yellow, 
  /* 縁をなめらかにするには適宜大きい値を */
  x_voxel = 50, y_voxel = 50, 
  /* 不等式で示された領域を塗りつぶす例 */
  region(x**2 + y**2 < 1, x, -1.5, 1.5, y, -1.5, 1.5)
)$

ガウス積分の準備としての2重積分

$$ S = \int_{-\infty}^{\infty} \int_{-\infty}^{\infty} e^{-x^2 – y^2} dx\,dy$$

極座標に変換して積分

極座標に変換して計算する。

デカルト座標 $x, y$ と2次元極座標 $r, \theta$ との間の関係は
\begin{eqnarray}
x &=& r\cos\theta\\
y &=& r\sin\theta
\end{eqnarray}
であり,微小面積要素 $dx\,dy$ は以下のように変換される。

\begin{eqnarray}
dx\,dy &=& \frac{\partial(x, y)}{\partial(r,\theta)} \,dr\, d\theta
\end{eqnarray}

ここで,ここで,$$ \frac{\partial(x,y)}{\partial(r,\theta)} \equiv
\begin{vmatrix}
\frac{\partial x}{\partial r} & \frac{\partial x}{\partial \theta}\\
\frac{\partial y}{\partial r} & \frac{\partial y}{\partial \theta}\\
\end{vmatrix}
= \frac{\partial x}{\partial r} \frac{\partial y}{\partial \theta} – \frac{\partial y}{\partial r}\frac{\partial x}{\partial \theta}$$ をヤコビアンという。

Maxima でヤコビアンを計算する例:

In [6]:
x: r * cos(theta);
y: r * sin(theta);
Out[6]:
\[\tag{${\it \%o}_{32}$}r\,\cos \vartheta\]
Out[6]:
\[\tag{${\it \%o}_{33}$}r\,\sin \vartheta\]
In [7]:
jacobian([x, y], [r, theta]);
Out[7]:
\[\tag{${\it \%o}_{34}$}\begin{pmatrix}\cos \vartheta & -r\,\sin \vartheta \\ \sin \vartheta & r\,\cos \vartheta \\ \end{pmatrix}\]

Maxima の jacobian() 関数は「関数行列」を与えるので,「関数行列式」にするには,さらに determinant() をとる。

In [8]:
determinant(jacobian([x, y], [r, theta]));
trigsimp(%);
Out[8]:
\[\tag{${\it \%o}_{35}$}r\,\sin ^2\vartheta+r\,\cos ^2\vartheta\]
Out[8]:
\[\tag{${\it \%o}_{36}$}r\]

ヤコビアンが $r$ となることがわかった。

\begin{eqnarray}
\therefore\ \ S &=& \int_{-\infty}^{\infty} \int_{-\infty}^{\infty} e^{-x^2 – y^2} dx\,dy \\
&=& \int_0^{2\pi} \int_0^{\infty} e^{-r^2} r \,dr \,d\theta\\
&=& 2 \pi \int_0^{\infty} e^{-r^2} r \,dr
\end{eqnarray}

In [9]:
2*%pi* 'integrate(exp(-r**2) * r, r, 0, inf) =
 2*%pi* integrate(exp(-r**2) * r, r, 0, inf);
Out[9]:
\[\tag{${\it \%o}_{37}$}2\,\pi\,\int_{0}^{\infty }{r\,e^ {- r^2 }\;dr}=\pi\]
In [10]:
/* 次に進む前に */
/* x や y の定義をなしにしておく。*/
kill(x, y)$

ガウス積分

$$ I = \int_{-\infty}^{\infty} e^{-x^2 } dx$$

とすると,上で

\begin{eqnarray}
S &=& \int_{-\infty}^{\infty} \int_{-\infty}^{\infty} e^{-x^2 – y^2} dx\,dy \\
&=& I^2 \\
&=& \pi
\end{eqnarray}

ということがわかったので,

$$ I = \int_{-\infty}^{\infty} e^{-x^2 } dx = \sqrt{S} = \sqrt{\pi}$$

ということになる。Maxima がガウス積分 $I$ を知っていることを確認する。

In [11]:
'integrate(exp(-x**2), x, -inf, inf) = 
 integrate(exp(-x**2), x, -inf, inf);
Out[11]:
\[\tag{${\it \%o}_{39}$}\int_{-\infty }^{\infty }{e^ {- x^2 }\;dx}=\sqrt{\pi}\]

被積分関数は偶関数であるから,積分範囲を $0$ からにすると答えは半分になるはずで,これも確認。

In [12]:
'integrate(exp(-x**2), x, 0, inf) = 
 integrate(exp(-x**2), x, 0, inf);
Out[12]:
\[\tag{${\it \%o}_{40}$}\int_{0}^{\infty }{e^ {- x^2 }\;dx}=\frac{\sqrt{\pi}}{2}\]

ガウス積分は,積分の上限が $\infty$ のときにだけ解析的に積分できる例。

積分範囲が $0$ から一般に $x$ までだと積分できない(結果が初等関数で表せない)。実際にやってみると…

In [13]:
assume(x > 0)$
'integrate(exp(-t**2), t, 0, x) = 
 integrate(exp(-t**2), t, 0, x);
Out[13]:
\[\tag{${\it \%o}_{42}$}\int_{0}^{x}{e^ {- t^2 }\;dt}=\frac{\sqrt{\pi}\,\mathrm{erf}\left(x\right)}{2}\]

参考:誤差関数

$\operatorname{erf} (x)$ は「誤差関数」と呼ばれ,これが定義:

\begin{eqnarray}
\operatorname{erf} (x) &\equiv& \frac{2}{\sqrt{\pi}} \int_0^x e^{-t^2} \, dt
\end{eqnarray}

ガウス積分に関連した積分

$$I(m) \equiv \int_{0}^{\infty} x^m e^{-x^2 } dx$$

In [14]:
I(m):= integrate( x**m * exp(-x**2), x, 0, inf);
Out[14]:
\[\tag{${\it \%o}_{43}$}I\left(m\right):={\it integrate}\left(x^{m}\,\exp \left(-x^2\right) , x , 0 , \infty \right)\]
In [15]:
I(0);
Out[15]:
\[\tag{${\it \%o}_{44}$}\frac{\sqrt{\pi}}{2}\]
In [16]:
I(2);
I(4);
I(6);
Out[16]:
\[\tag{${\it \%o}_{45}$}\frac{\sqrt{\pi}}{4}\]
Out[16]:
\[\tag{${\it \%o}_{46}$}\frac{3\,\sqrt{\pi}}{8}\]
Out[16]:
\[\tag{${\it \%o}_{47}$}\frac{15\,\sqrt{\pi}}{16}\]

$m = 2 n$ ($n$ は整数) の場合を推測するために,$I(0)$ の値で割って,factor() 関数で分母分子を素因数分解してみる。

In [17]:
I(2)/I(0), factor;
I(4)/I(0), factor;
I(6)/I(0), factor;
Out[17]:
\[\tag{${\it \%o}_{48}$}\frac{1}{2}\]
Out[17]:
\[\tag{${\it \%o}_{49}$}\frac{3}{2^2}\]
Out[17]:
\[\tag{${\it \%o}_{50}$}\frac{3\,5}{2^3}\]

ということは,

\begin{eqnarray}
I(2) &=& 1\times \frac{1}{2} \times I(0), \\
I(4) &=& \frac{3\cdot 1}{2^2} \times I(0), \\
I(6) &=& \frac{5\cdot3\cdot 1}{2^3} \times I(0), \dots
\end{eqnarray}

だから,

$$\displaystyle I(2 n) = \frac{(2n-1)!!}{2^{n}} \frac{\sqrt{\pi}}{2}$$

と推測される。実際確かめてみると…

In [18]:
/* m >= 2 の偶数に対して,上記の 2 n を m とおいて */

EvenI(m):= (m-1)!!/2**(m/2) * I(0);
Out[18]:
\[\tag{${\it \%o}_{51}$}{\it EvenI}\left(m\right):=\frac{{\it genfact}\left(m-1 , \frac{m-1}{2} , 2\right)\,I\left(0\right)}{2^{\frac{m}{2}}}\]
In [19]:
/* たとえば m = 8 のとき */
EvenI(8) - I(8);
Out[19]:
\[\tag{${\it \%o}_{52}$}0\]

これで $m \geq 2$ が偶数の場合の $I(m)$ は求まった。

In [20]:
/* m = 2 から 10 まで MyEvenI(m) の値を表示させる。*/
for m: 2 thru 10 step 2
    do(print("m = ", m, " のとき: ", 
    'integrate( x**m * exp(-x**2), x, 0, inf) = EvenI(m)))$
m = \(2\) のとき: \(\int_{0}^{\infty }{x^2\,e^ {- x^2 }\;dx}=\frac{\sqrt{\pi}}{4}\)
m = \(4\) のとき: \(\int_{0}^{\infty }{x^4\,e^ {- x^2 }\;dx}=\frac{3\,\sqrt{\pi}}{8}\)
m = \(6\) のとき: \(\int_{0}^{\infty }{x^6\,e^ {- x^2 }\;dx}=\frac{15\,\sqrt{\pi}}{16}\)
m = \(8\) のとき: \(\int_{0}^{\infty }{x^8\,e^ {- x^2 }\;dx}=\frac{105\,\sqrt{\pi}}{32}\)
m = \(10\) のとき: \(\int_{0}^{\infty }{x^{10}\,e^ {- x^2 }\;dx}=\frac{945\,\sqrt{\pi}}{64}\)

次に,$m$ が奇数($m = 2 n +1$)の場合の $I(m)$ の一般形を予想してみる。

In [21]:
I(1);
I(3);
I(5);
I(7);
Out[21]:
\[\tag{${\it \%o}_{54}$}\frac{1}{2}\]
Out[21]:
\[\tag{${\it \%o}_{55}$}\frac{1}{2}\]
Out[21]:
\[\tag{${\it \%o}_{56}$}1\]
Out[21]:
\[\tag{${\it \%o}_{57}$}3\]
In [22]:
I(3)/I(1), factor;
I(5)/I(1), factor;
I(7)/I(1), factor;
Out[22]:
\[\tag{${\it \%o}_{58}$}1\]
Out[22]:
\[\tag{${\it \%o}_{59}$}2\]
Out[22]:
\[\tag{${\it \%o}_{60}$}2\,3\]

以上のことから次のような推測ができる。

$$ I(2n+1) = n! \times I(1) $$