本記事の内容
本記事は多変数の合成関数と逆関数の微分について解説する記事です。
本記事を読むにあたり、偏微分と全微分とヤコビ行列について知っている必要があるため、以下の記事も合わせてご覧ください。
↓偏微分の記事
↓全微分の記事
↓ヤコビ行列の記事
ヤコビ行列を軽く復習します。
ヤコビ行列とは何だったか、というと以下でした。
ヤコビ行列(ヤコビアン)
ΩをRnの開集合、a∈Ω、f:Ω→Rmがaで全微分可能とし、 f=(f1f2⋮fm),x=(x1x2⋮xn)と書いたとする。このとき、行列 f′(a)=(∂fi∂xj(a))=(∂f1∂x1(a)∂f1∂x2(a)⋯∂f1∂xn(a)∂f2∂x1(a)∂f2∂x2(a)⋯∂f2∂xn(a)⋮⋮⋱⋮∂fm∂x1(a)∂fm∂x2(a)⋯∂fm∂xn(a)) をfのaにおけるヤコビ行列またはヤコビアン(the Jacobian matrix of f at a)と呼ぶ。ここで注意なのが、以降f′と書いたらば、f′は行列だということです。
多変数の合成関数の微分
まずは、1変数の場合を復習します。
1変数の合成関数の微分の復習
1変数の合成関数の微分は以下でした。
この事実の証明は【解析学の基礎シリーズ】1変数実数値関数の微分編 その3を御覧ください。
実は、多変数の場合は1変数の場合と形式的にはほぼ同じです。
何が違うか、というと1変数の場合の等式の右辺が、多変数だとヤコビ行列の積になる、ということです。
多変数の合成関数の微分
では、主張を明示します。
定理1.(合成関数の微分法、chain rule (連鎖律))
Ω、DはそれぞれRn、Rmの開集合で、a∈Ω、f:Ω→Rm、g:D→Rl、f(Ω)⊂D、b=f(a)、fはaで全微分可能、gはbで全微分可能ならば、g∘fはaで微分可能で、 (g∘f)′(a)=g′(b)⋅f′(a) である。y=f(x)、z=g(y)と書けば、上式の第(i,j)成分は ∂zi∂xj=m∑k=1∂zi∂yk∂yk∂xj(1≤i≤l, 1≤j≤n) である。
要するに、全部の変数で合成関数の微分をして足し合わせたものを第(i,j)成分とするような行列が多変数の合成関数の微分ということになります。
つまり、
ということに注意してください。
ここで、(g∘f)′(a)=g′(b)⋅f′(a)の右辺はfのヤコビ行列とgのヤコビ行列の積だということに注意してください。
この定理を証明する前に、まずは「1次関数だったら当たり前だよね」ということを見てみます。
f(x)=Ax+b、g(y)=Cy+d(A,Cは行列)だとすると、
(g∘f)(x)=g(f(x))=g(Ax+b)=C(Ax+b)+d=CAx+(Cb+d)
となりますので、
(g∘f)′(x)=CA=g′(y)f′(x)
が成り立ちます。
確かに、(g∘f)′(x)=CAですので行列の形をしています。
定理1.の証明
fが全微分可能なので、
(∃A∈M(m,n;R)) s.t. limh→01‖h‖(f(a+h)−f(a)−Ah)=0
が成り立ちます。
そしてこのAはヤコビ行列で、新たにA=f′(a)と書くことにします。
ここで、上記の式を1変数実数値関数の微分のときと同様に書き換えると
limx→a1‖x−a‖(f(x)−f(a)−f′(a)(x−a))=0
となります。
さて、このとき
ε1(x)=f(x)−f(a)−f′(a)(x−a)(x∈Ω)⋯①
という記号を新たに導入すると、
limx→aε1(x)‖x−a‖=0
が成り立っている、ということになります。
同様にして、gがb=f(a)で全微分可能なので、
ε2(y)=g(y)−g(b)−g′(b)(y−b)(y∈D)⋯②
としたとき、
limy→bε2(y)‖y−b‖=0
が成り立っています。
さて、②を変形すると
g(y)−g(b)=g′(b)(y−b)+ε2(y)(y∈D)
となるので、この式にy=f(x)を代入して、b=f(a)に注意すると、
(g∘f)(x)−(g∘f)(a)=g(f(x))−g(f(a))=g′(b)(f(x)−f(a))+ε2(f(x))(x∈Ω)
となります。
この式に①式から得られる
f(x)−f(a)=f′(a)(x−a)+ε1(x)
を代入すると、
(g∘f)(x)−(g∘f)(a)=g′(b)(f(x)−f(a))+ε2(f(x))=g′(b)[f′(a)(x−a)+ε1(x)]+ε2(f(x))=g′(b)f′(a)(x−a)+g′(b)ε1(x)+ε2(f(x))
となります。
故に、
limx→a(g∘f)(x)−(g∘f)(a)‖x−a‖=limx→ag′(b)f′(a)(x−a)+g′(b)ε1(x)+ε2(f(x))‖x−a‖=limx→ag′(b)f′(a)(x−a)‖x−a‖+limx→ag′(b)ε1(x)‖x−a‖+limx→aε2(f(x))‖x−a‖
となるから、
limx→ag′(b)ε1(x)‖x−a‖=0⋯③
かつ
limx→aε2(f(x))‖x−a‖=0⋯④
が証明できれば、
limx→ag′(b)f′(a)(x−a)‖x−a‖=0
となるので、g∘fがaで全微分可能で(g∘f)′(a)=g′(b)f′(a)が成り立ちます。
③については簡単です。
‖g′(b)ε1(x)‖x−a‖‖≤‖g′(b)‖⋅‖ε1(x)‖‖x−a‖
であり、
limx→aε1(x)‖x−a‖=0
だったわけですので、
‖g′(b)‖⋅‖ε1(x)‖‖x−a‖→0(x→a)
であるから、
limx→ag′(b)ε1(x)‖x−a‖=0⋯③
が成り立ちます。
一方で、④については少し手間がかかります。
新たな関数Mを
M(y)={ε2(f(x))‖x−a‖(y∈D∖{b})0(y=b)
で定めます。
このとき、ε2(b)=0に注意すると、
M:D→Rm,limy→bM(y)=0,ε2(y)=‖y−b‖M(y)(y∈D)
です。
特に、y=f(x)なので、ε2(f(x))=‖f(x)−b‖M(f(x))です。
さて、
f(x)−b=f(x)−f(a)=f′(a)(x−a)+ε1(x)
だったわけですので、
‖f(x)−b‖=‖f′(a)(x−a)+ε1(x)‖≤‖f′(a)‖⋅‖x−a‖+‖ε1(x)‖
です。
故に、
‖ε2(f(x))‖‖x−a‖=‖f(x)−b‖⋅‖M(f(x))‖‖x−a‖≤(‖f′(a)‖+‖ε1(x)‖‖x−a‖)⋅‖M(f(x))‖→(‖f′(a)‖+0)⋅0=0(x→a)
となるから、
limx→aε2(f(x))‖x−a‖=0⋯④
が成り立ちます。
以上のことから、
(g∘f)′(a)=g′(b)⋅f′(a)
です。
定理1.の証明終わり
読者の皆様のコメントを下さい!
今更なのですが、筆者はこのブログを書くにあたって、記法には結構気を使っているつもりです。
その例としてベクトル値の場合はaのように必ず太字にするようにしています。
しかしながら、参考書なりは「明らかにベクトルに対する主張である場合はベクトルaをaと実数のように書く」みたいなことが結構あります。
なぜそのようにするのか、という実際のところは分かりませんが、「面倒くさいからかなあ」と思っています。
確かに、わざわざ太字にするというのが面倒くさいのは分かりますが、何に対する主張なのか、ということがわかりにくくなってしまいます。
実際筆者の経験でもベクトルに対する主張なのに、実数と同じ記法をされていたがために誤認したことがあります(ちゃんと確認しようね、と言われたらそれまでなんですがね)。
皆さんはどうですか?
数学の記法がゆえで間違った理解をした経験などはありますか?是非コメントで教えて下さい。
(こういう会話もしていきたいなあと思っています。)
余談ですが、∫f(x) dxを∫dxf(x)と書かれた事があって、「1を積分して、その後f(x)をかけるのかあ」と誤認していたことが原因でその後の議論が全く分からなかったという経験があります。
「紛らわしいな!この記法は納得いかねえ!」と思ったことがあります。
そういう経験がありましたらぜひコメント欄で教えて下さい!
さて、余談はおいておいて、実際に多変数の合成関数の微分を計算してみましょう!
実際に多変数の合成関数の微分を計算してみましょう!
2つ例を挙げて、実際に計算してみます。
1変数、多変数に限らず、合成関数というのは変数変換の役割があります。
例えば、極座標表示などです。
つまり、f(x,y)に対して(x,y)=(rcosθ,rsinθ)としたときに、(r,θ)に対してどうfが変化するか、ということを調べるとすると、これはまさに合成関数の微分ということになります。
これについては例3.で説明します。
例2.f(x,y)=esinxy+cos(x+y)に対してu=xy、v=x+yと変数変換したとき、∂f∂xと∂f∂yを求めてみます。
まず、f(x,y)=esinxy+cos(x+y)=esinu+cosvです。
このとき、何を求めたいかというと∂f∂xと∂f∂yでした。
定理1.から、
∂f∂x=∂f∂u⋅∂u∂x+∂f∂v⋅∂v∂x∂f∂y=∂f∂u⋅∂u∂y+∂f∂v⋅∂v∂y
です。
それぞれについて計算してみます。
∂f∂u=cosu⋅esinu+cosv,∂f∂v=−sinu⋅esinu+cosv
です。
これをx,yを用いて表すと、
∂f∂u=cosxy⋅esinxy+cos(x+y),∂f∂v=−sinxy⋅esinxy+cos(x+y)
です。
また、
∂u∂x=y,∂u∂y=x,∂v∂x=1,∂v∂y=1
となるわけですので、
∂f∂x=∂f∂u⋅∂u∂x+∂f∂v⋅∂v∂x=cosxy⋅esinxy+cos(x+y)⋅y−sinxy⋅esinxy+cos(x+y)⋅1=ycosxy⋅esinxy+cos(x+y)−sinxy⋅esinxy+cos(x+y)=(ycosxy−sinxy)esinxy+cos(x+y)∂f∂y=∂f∂u⋅∂u∂y+∂f∂v⋅∂v∂y=cosxy⋅esinxy+cos(x+y)⋅x−sinxy⋅esinxy+cos(x+y)⋅1=xcosxy⋅esinxy+cos(x+y)−sinxy⋅esinxy+cos(x+y)=(xcosxy−sinxy)esinxy+cos(x+y)
となります。
例3.(極座標変換) 関数の変数をデカルト座標系から極座標に変換する、つまり、関数f=f(x,y)が与えられたとき
g(r,θ)=f(x,y),x=rcosθ,y=rsinθ
で定められる関数gを考えます。
時として、デカルト座標系で考えるよりも、極座標で考えた方がわかりやすい場合があります(割と結構あると思います)。
このとき、
g(r,θ)=f(rcosθ,rsinθ)
だから、gはφ(r,θ)=(rcosθrsinθ)とfとの合成関数です。
さて、
gr=fxxr+fyyr,gθ=fxxθ+fyyθ
であり、これは
(gr gθ)=(fx fy)(xrxθyryθ)
と書けるので、たしかに(f∘φ)′=f′φ′が成り立っています。
さて、
xr=cosθ,yr=sinθ,xθ=−rsinθ,yθ=rcosθ
ですので、
gr=fxcosθ+fysinθ,gθ=−fxrsinθ+fyrcosθ
となります。
多変数の逆関数の微分
まずは、1変数の場合を復習しましょう。
1変数の逆関数の微分の復習
1変数の逆関数の微分は以下でした。
この事実の証明は【解析学の基礎シリーズ】1変数実数値関数の微分編 その4を御覧ください。
多変数の場合についても似たようなことが成り立ちます。
ただ、多変数の場合、全微分係数が行列の形をしていたので、1変数のときのように単なる逆数ではなく逆行列になります。
多変数の逆関数の微分
では、主張を明示します。
定理4.(多変数の逆関数の微分法)
UとVはRnの開集合で、φ:U→Vは全単射、a∈U、b=φ(a)はaで、φ−1はbで全微分可能であるならば、 (φ−1)(b)=(φ′(a))−1 である。ただし、左辺の−1は逆関数を表し、右辺の−1は逆行列を表している。先程述べたように、逆行列を使っています。
つまり、多変数の逆関数の微分というのは行列なのです。
勿論、扱う関数によってはスカラーになったりもします。
実は、この記事では述べませんが、この逆関数の微分を厳密に語るには少し準備が必要です。
というのもこの定理4.の主張は「微分可能な逆関数が存在している」ということを仮定しているためです。
これが保証されるのは逆関数定理という大定理があるからなのですが、それは後の記事で解説します。
多変数の逆関数の微分の証明は合成関数に比べて至ってシンプルです。
定理4.の証明
φ−1はφの逆関数なのだから、
φ−1(φ(x))=x(x∈U)
が成り立っています。
φはaで、φ−1はb=φ(a)で全微分可能ですので、定理1.(多変数の合成関数の微分)により、
が成り立ちます。
実際、ψ=(ψ1⋮ψn)としてψ(x)=xとすれば、ψi(x)=xi (i=1,…,n)で、
∂ψi∂xj(x)=∂∂xjxi={1(i=j)0(i≠j)
で、ψ′(x)=(∂ψi∂xj)だったわけですので、
ψ′(x)=(∂ψi∂xj)=(δij)=In
(ただし、δijはクロネッカーのデルタです)となります。
同様にして、φは全単射なのだから
φ(φ−1(x))=x(x∈U)
で、
φ(a)⋅(φ−1)′(b)=In
が導けます。
故に、φ′(a)は(φ−1)′(b)の逆行列です。
従って、
(φ−1)(b)=(φ′(a))−1
が成り立ちます。
定理4.の証明終わり
読者の皆様のコメントを下さい!
さて、ここでちょっと余談を。
数学では「あれ?解析の話をしていたのにいきなり線型代数の話が出てきたな?」ということがよくあります。
何が言いたいかというと、ある数学の問題を解こうとしたときに、その問題の範疇の外のコンセプトを使うことがあります。
先程の多変数の逆関数の微分の例でいくと逆行列の話が出てきます。
そもそもヤコビ行列の時点で行列の話が出現しているわけですけれども(笑)
筆者の場合、修士のときにとある整数の集合をグループ分けしようとしていたとき、包含排除の原理というものに出会いました。
「今まで集合と整数の話をしていたのにいきなりなんかよくわからないモノが出てきたな?」と思ったのですが、実は包含排除の原理は組合せ論でよく出現する原理だそうで、個人的に「ああ、数学って分野は色々あるけど繋がってるんだなあ」と割と感動しました。
皆さんも数学に限らず、そういう経験はありますか?
「これはここでも使うのか!なるほど!」という経験がありましたら、ぜひコメントで教えて下さい!
このブログを読んでいただいている方と数学以外でも是非お話したいです。
さて、脱線しましたが、多変数逆関数の微分を実際に計算してみましょう!
実際に多変数の逆関数の微分を計算してみましょう!
例5.(極座標変換の逆変換のヤコビ行列)(めっちゃ重要!)
φ:(0,∞)×(0,2π)∋(rθ)↦(xy)=(rcosθrsinθ)∈R2∖{(x,0)|x∈[0,∞)}とします。
このとき、rもsinθもcosθもC∞級ですので、φはC1級です。
故に、全微分可能です。
ちなみに、次の事実を使いました。
定理6.
ΩはRnの開集合、f:Ω→Rmはすべての変数xjに対してΩで偏微分可能で、偏導関数∂f∂xj:Ω→Rmは連続だとする。このとき、fはΩで全微分可能である。この定理2.の証明は【解析学の基礎シリーズ】偏微分編 その3を御覧ください。
さて、φが全微分可能だということですので、
φ′(r,θ)=(xrxθyryθ)=(cosθ−rsinθsinθrcosθ)
です。
多変数の逆関数の微分法によって(rθ)=φ−1(x,y)の全微分係数は
(rxryθxθy)=(φ−1)′(x,y)=φ′(r,θ)−1=(xrxθyryθ)−1=(cosθ−rsinθsinθrcosθ)−1=1cosθ⋅rcosθ−(−rsinθ)sinθ(rcosθrsinθ−sinθcosθ)=(cosθsinθ−sinθrcosθr)
となります。
故に、
rx=cosθ,ry=sinθ,θx=−sinθr,θy=cosθr
です。
例6. φ:R2>0∋(uv)↦(xy)=(u2+v2−u+v)∈R2∖{(x,0)|x∈[0,∞)}とします。
このとき、u2+v2も−u+vもC∞級ですので、φはC1級です。
故に、全微分可能です。
φ′(u,v)=(xuxvyuyv)=(2u2v−11)
です。
多変数の逆関数の微分法によって(uv)=φ−1(x,y)の全微分係数は
(uxuyvxvy)=(φ−1)′(x,y)=φ′(u,v)−1=(xuxvyuyv)−1=(2u2v−11)−1=12u+2v(1−2v12u)=(12u+2v−2v2u+2v12u+2v2u2u+2v)
となります。
故に、
ux=12u+2v,uy=−2v2u+2v,vx=12u+2v,vy=2u2u+2v
です。
結
今回は多変数の合成関数の微分と多変数の逆関数の微分について解説しました。
形式的には1変数の場合となんら変わりませんでしたが、多変数の場合は行列が出現する、ということが大きな違いです。
特に逆関数の微分については、1変数の場合が逆数だったのに対して多変数では逆行列になります。
次回は多変数の平均値の定理について解説します。
質問、コメントなどお待ちしております!
どんな些細なことでも構いませんし、「定理〇〇の△△が分からない!」などいただければ全てお答えします!
お問い合わせの内容にもよりますが、ご質問はおおよそ3日以内にお答えします。
もし直ちに回答が欲しければその旨もコメントでお知らせください。直ちに対応いたします。
Twitterでもリプ、DM問わず質問、コメントを大募集しております!
コメントは下記コメント欄から投稿でき、Twitterは右のサイドバーからフォローできます!
※本文中に皆様のご意見を求めましたが、それについてのコメントもお待ちしております。
コメントをする