2 重積分

一変数関数における積分とは,面積を求めることと対応していた.二変数関数を含む多変数関数について積分を拡張させたものが重積分(multiple-integral)である.

Definition 2.1 (重積分) 二変数関数f(x,y)について,領域Rに関する重積分は,xy平面とRの境界と関数f(x,y)が表す曲面に囲まれる体積として定義する.ただし,f(x,y)>0の部分の体積は正として,f(x,y)<0の部分の体積は負として足し合わせる.

この体積の和を Rf(x,y)dxdy

と表す.

二変数の場合は積分変数も二つとなるため,dxdyと書く.dxyではないことに注意.

2.1 逐次積分

重積分は一変数の積分と比較すると積分領域が複雑になる.一変数の場合,定積分であれば区間[a,b]を考えれば十分だったが,二変数の場合は平面状の自由な領域となる.つまり領域を[ax,bx]×[ay,by]と考えればこれは長方形だし,楕円やもっと複雑な領域を考えることもできるのである.

Theorem 2.1 (逐次積分) 二変数関数f(x,y)の長方形領域I=[a,b]×[c,d]上での重積分は

If(x,y)dxdy=dc(baf(x,y)dx)dy=ba(dcf(x,y)dy)dx

として計算できる.このとき積分の順序を交換可能である.このように一つずつ変数に着目して積分をしていく方法を逐次積分という.

この場合においては,x,yどちから積分を進めても結果は変わらないことを保証している.

Exercise 2.1 (逐次積分) f(x,y)=xy2I={(x,y)|(x,y)[0,1]×[0,2]}の領域で重積分したい.

  1. xyの順番で逐次積分せよ
  2. yxの順番で逐次積分せよ

もし,f(x,y)=g(x)h(y)のように,変数がxだけの関数とyだけの関数の積として表されていれば逐次積分は

If(x,y)dxdy=bag(x)dx×dch(y)dy

のようにそれぞれの積分の積に分解できる.ここでI=[a,b]×[c,d]とした.

2.2 長方形以外の領域の積分

Definition 2.2 (縦線・横線領域) xに関する二つの関数g1(x),g2(x),g1(x)g2(x)を用いて,領域R

R={(x,y)|axb,g1(x)yg2(x)}

と表される時,領域R縦線領域という.

また,逆にyに関する二つの関数h1(y),h2(y),h1(y)h2(y)を用いて領域R

R={(x,y)|h1(y)xh2(y),cyd}

と表される時,領域R横線領域という.

ここでは,円を領域とした場合の例を紹介する.

Example 2.1 (円を領域とした場合(1)) いまf(x,y)=xyを領域R={(x,y)|x2+y21}で積分することを考える.

x2+y21より,明らかに1x1である.またyxで表すと,y21x2より,1x2y1x2を得る.

すなわち,領域Rを縦線領域で表すとR={(x,y)|1x1,1x2y1x2}となる.

従って,f(x,y)=xyを領域Rで積分するには

Rf(x,y)dxdy=1x21x211xydxdy

となる.

yの積分の区間がxの関数となっている場合,どのようにすれば良いだろうか.具体的にはf(x,y)の縦線領域R={(x,y)|axb,g1(x)yg2(x)}での積分は

ba(g2(x)g1(x)f(x,y)dy)dx

としておき,積分の結果をxの関数形を使って表せば,文字が一つ減ることになる.

Example 2.1 (円を領域とした場合(2)) Example 2.1で検討した領域Rに基づいて,実際に積分を求めてみよう.

Rf(x,y)dxdy=1x21x211xydxdy

を計算すればよかったので,まずyについて積分すると

1x21x2xydy=[12xy2]1x21x2=xx3

となる.従って求める積分は

11xx3dx=[12x214x4]11=0

となる.

2.3 変数変換

ここでは二変数関数の重積分について,変数変換をする場合を考える. いま簡単のためI=[0,1]×[0,1],f(x,y)=1としよう.この時,一辺の長さが 1の立方体を考えていることになるので体積は1となるはずである. つまり

I1dxdy=1

である.いま,

(st)=(abcd)(xy)

という(x,y)(s,t)に変換するとしよう. この変換は以下の図のような変換に対応する.

xy <- cbind(c(0, 0, 1, 1, 0), c(0, 1, 1, 0, 0))
A  <- matrix(c(1,5,5,2), nrow=2, byrow=T) / 5
st <- xy %*% A

bind_rows(
  as.data.frame(xy) %>% rename(x = V1, y = V2) %>% mutate(label = "Origin"),
  as.data.frame(st) %>% rename(x = V1, y = V2) %>% mutate(label = "Transformed")
) %>% 
  ggplot(aes(x=x, y=y, group=label)) + 
  geom_point() + 
  geom_polygon() + 
  facet_wrap(. ~ label)

例えば,ここでは

(0.21.01.00.4)

変換後の平行四辺形の面積は|adbc|=0.92となる. いま考えているもともとの重積分(2.1)の結果は1だったが,変数変換後の面積が一致していないことがわかる.そこで,変数変換した場合に,面積を補正するような操作が必要となる.

この場合においてのみ,1/|adbc|という補正をすれば良いことがわかる.

では一般の場合には補正項をどのようにすれば良いのかについて,次の定理が役に立つ.

Theorem 2.2 (ヤコビ行列) 二変数関数f(x,y)のある領域R上で重積分Rf(x,y)dxdyについて,x=u(s,t),y=v(s,t)という変換を考える.ただし,この変換は逆変換が存在するものとする.このとき,

(x,y)(s,t)=(xsxtysyt)

とする.この行列をヤコビ行列という.またこの行列の行列式をヤコビ行列式という.慣習的にヤコビ行列をJと表すことが多い.

いま,(x,y)の領域をR(s,t)の領域をRとして

Rf(x,y)dxdy=Rf(u(s,t),v(s,t))|J|1dsdt

と表すことができる.ここで|J|はヤコビ行列の行列式である.

Example 2.2 (ヤコビ行列) f(x,y)=x+2y,R={(x,y)|0xy1,0x+y1}として, fR上での重積分を考える. ここで,s=xy,t=x+yという変数変換をしてみると,R={(x,y)|0s1,0t1}上での重積分とすることができる. また,この変換についてx=(s+t)/2,y=(st)/2が成り立つ.

この変換は

(st)=(1111)(xy)

と表すことができる.またヤコビ行列は

J=(s,t)(x,y)=(sxsytxty)=(1111)

となりヤコビ行列の行列式|J|2となる.従って変数変換後の積分は,

R(x+2y)dxdy=R(12s+32t)21dsdt=14

となる.このケースでは変数変換により,積分範囲が単純になっている.

Exercise 2.2 (ヤコビ行列) Example (2.2) について,積分を計算し答えが1/4となることを確かめよ.