37
1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学 II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多 変数関数)を考えることができる。つまり2つの変数によって関数値が決まるような関数である。 2変数関数は: z = f (x, y) のように表す。x, y が主変数(独立変数)であり、z が従変数(従属変数)である。変数は書かれる順番によっ て区別され、たとえば f (x, y) f (y,x) とは別の関数になる 1 。これは箱記法で書けば x y f z のように表すことができる。また を使えば f : x, y z のように書ける。もっともこれだと少しまとまりが悪いので、 f :(x, y) z のように主変数をカッコで囲った「入力値の組」として表すのが普通である。 2変数関数の具体例はいろいろある。 氏名、つまり姓、名が与えられれば特定の人が決まる: (姓,名) -→ もっとも実際には同姓同名の人がいるから、姓名を与えただけでは人物が特定できるとは限らない。そ の意味では「関数」としては問題がある。 大多数の自動販売機では、コインを投入するだけでなく、商品選択ボタンを押して初めて商品が出てく る。したがってこれは: (金額,選択ボタン) -→ 商品 という2変数関数である。もっとも実際には釣り銭も出るから、出力のほうも2つの値があるとは言える。 ある地点における標高。 平面上の地点は x, y 2つのパラメタを指定すれば決まる。(実際には地表面のように球面上でもよい)。 x, y は平面座標でもいいし、緯度・経度のようなものでもよい。その各地点での標高を z とすればこれは (x, y) z という関数になる。この場合、地形そのものが関数のグラフになっている。 うるさいことを言えば、z は一意に決まる必要があるから、ハングオーバー(傾き 90 以上の崖)があっ てはならない(下図で縦方向を上向きとすると、x の地点では標高が一意に決まらない)。 x 1 常に f (x, y)= f (y,x) が成り立つ、つまり変数の順番を区別する必要のない関数を「対称関数」と呼ぶ。 1

1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

1 多変数関数(2変数関数)1.1 2変数関数

高校や基礎数学 II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多変数関数)を考えることができる。つまり2つの変数によって関数値が決まるような関数である。2変数関数は:

z = f(x, y)

のように表す。x, y が主変数(独立変数)であり、z が従変数(従属変数)である。変数は書かれる順番によって区別され、たとえば f(x, y) と f(y, x) とは別の関数になる1 。これは箱記法で書けば

x !y !

f ! z

のように表すことができる。また "! を使えば

f : x, y "! z

のように書ける。もっともこれだと少しまとまりが悪いので、

f : (x, y) "! z

のように主変数をカッコで囲った「入力値の組」として表すのが普通である。

2変数関数の具体例はいろいろある。

• 氏名、つまり姓、名が与えられれば特定の人が決まる:

(姓,名) "#! 人

もっとも実際には同姓同名の人がいるから、姓名を与えただけでは人物が特定できるとは限らない。その意味では「関数」としては問題がある。

• 大多数の自動販売機では、コインを投入するだけでなく、商品選択ボタンを押して初めて商品が出てくる。したがってこれは:

(金額,選択ボタン) "#! 商品

という2変数関数である。もっとも実際には釣り銭も出るから、出力のほうも2つの値があるとは言える。• ある地点における標高。平面上の地点は x, y 2つのパラメタを指定すれば決まる。(実際には地表面のように球面上でもよい)。x, y は平面座標でもいいし、緯度・経度のようなものでもよい。その各地点での標高を z とすればこれは

(x, y) "! z

という関数になる。この場合、地形そのものが関数のグラフになっている。うるさいことを言えば、z は一意に決まる必要があるから、ハングオーバー(傾き 90 以上の崖)があってはならない(下図で縦方向を上向きとすると、x の地点では標高が一意に決まらない)。

x

1 常に f(x, y) = f(y, x) が成り立つ、つまり変数の順番を区別する必要のない関数を「対称関数」と呼ぶ。

1

Page 2: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

• 与えられた時刻におけるある地点の気温、気圧等。これは基本的には上の標高と同じである。気圧の場合、等高線を書けば「天気図」になる。さらに時刻や高さごとの値まで考えようとすれば、3変数、4変数の関数になる。

もちろん他にも例はいくらでもある。しかし1変数関数の場合と同様、解析学の範囲では入力も出力も実数(複素解析では複素数)であるものが関心の対象になる。上では最後の2つがその例になっている。実はそういった2変数関数はもっと身近なところにある。

• 四則演算 x + y, x ! y, xy, x/y は2変数関数である。x, y に値を与えれば対応する出力値が決まるからである。f(x, y) という関数記法に合わせるなら +(x, y)などと書くところだが、それを x + y のように書くのは、慣習と使いやすさのためである。

• 参考: x + y のように演算子(関数名と同じと思ってよい)を変数の間におく書き方を「中置記法 (infix notation)」、+(x, y) のように前におく書き方を「前置記法 (prefix notation)」と呼ぶ。また (x, y)+ のように後におく書き方(後置記法 (postfix notation))もある。たとえば x + y " z を前置記法で書けば +(x,"(y, z)) になる。前置記法(や後置記法)は複雑な式になると読みにくくなるが、一方で様々な利点もあり、数理論理学やある種のプログラミング言語(たとえば lisp)ではフルに利用されている。数学では四則演算や等号、不等号などは中置記法、関数記号一般や sin, cos, log 等は前置記法である。後置記法の例としては階乗 n! がある。2項係数 nCr は特殊な中置記法と言えるだろう。絶対値 |x| のように他の種類のものもある。

加算 x + y と乗算 xy (x " y, x · y) は対称関数である。これは交換律:

x + y = y + x, xy = yx

が成り立つことによる。これに対し、減算、除算は対称ではない。

• 参考: 変数が n 個ある多変数関数:

y = f(x1, x2, ..., xn)

も同様に考えることができる。2変数関数の場合のこの書き方にならえば

y = f(x1, x2)

と書ける。z = f(x, y) というのは3次元空間の x, y, z 座標であることを強調した書き方である。

1.2 2変数関数の定義域

実数の組 (x, y)(x # R, y # R)全体の集合をR " R、R2 などと書く。実数上の2変数関数 z = f(x, y)は R2(あるいはその部分集合)を定義域とし、R(あるいはその部分集合)を値域とする。定義域を D、値域を R とすると、D $ R2, R $ R であり、

R = { z | z = f(x, y), (x, y) # D }

であるのは1変数関数の場合と同じである。

• 注: 一般に集合 A,B に対し、それぞれの要素を組にしたもの:(a, b)(a # A, b # B)全体の集合を A,B の「直積」といい、A " B と書く。特に A = B の場合、A " A を A2 と略記する。

• 例: { (x, y) | 0 % x % 1, 0 % y % 1 } という集合は、[0, 1]" [0, 1] = [0, 1]2 と書くことができる。

「積」という言葉を使うのは、A, B が有限集合:

2

Page 3: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

A = { a1, a2, ..., an }B = { b1, b2, ..., bm }

の場合、A ! B の要素は

(a1, b1), (a1, b2), ..., (a1, bm)(a2, b1), (a2, b2), ..., (a2, bm)

.....

(an, b1), (an, b2), ..., (an, bm)

であり、全部で nm 個、つまり A,B の要素の個数の積になることによる。もちろん R などは無限集合で「個数の積」というのはそのままでは意味を持たないが、「直積」という言葉はそのまま用いる。

一般に N 個の集合の直積:A1 ! A2 ! · · ·AN なども同様に考えることができる。

(x, y) を座標と見なせば、R2 は2次元平面全体と同一視することができる。したがって z = f(x, y) は xy

平面(あるいはその部分集合)を定義域とする関数と見なすこともできる。3次元空間内の点 (x, y, f(x, y)) の全体の集合を、関数の「グラフ」と呼ぶ。f(x, y) が連続関数の場合、そのグラフは空間内の曲面になる(連続関数、グラフについては後述)。

また点 P(x, y)(注2 )を(位置)ベクトル x =

!x

y

"と見なせば、z = f(x, y) は2次元ベクトルを変数

とする1変数関数:

z = f(x)

と見ることもできる。その意味では変数の個数というのは相対的なものである(R2 を1つの集合と見なすか、R 2つの直積と見なすかの違い)。また点を表す記号 P を使って f(P) と書くこともある。

• 参考: 2変数関数 f(x, y) は

R2 " R

という対応であるのに対し、n 変数関数 f(x1, ..., xn) では

Rn " R

となる。これも n 次元ベクトル t(x1 ... xn) を変数とする1変数関数と見なすことができる。出力側も複数の値をとる、つまりベクトルになっている「ベクトル関数」:

y = f(x)

も考えることができる。これの特別な場合として、f が(同次)1次関数である場合が線型代数のテーマであり、一般のベクトル関数の解析については「ベクトル解析」という分野で扱われる。

1.3 関数の「断面」

f(x, y) は x, y それぞれに値を与えれば関数値が決まる。では一方の変数、たとえば x にだけ値を与えるとどうなるだろうか。たとえば x = a とすると f(a, y) になり、y はまだ変数のままだから、これは y を変数とする1変数関数になる。これを「x = a による f(x, y) の断面」と呼ぶことにする(これはここだけの用語だから、一般に通用するとは限らない)。またこれを fx=a(y) と書くことにする。つまり

fx=a(y) = f(a, y)2 これは「関数 P(x, y)」という意味ではなく、「点 P の座標が (x, y)」という意味である。点を表すには P のようにローマン体を用

い、P のようなイタリック体は用いない。

3

Page 4: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

である。さらに x による断面ではあるが、a の値を特定しないときには fx(y) と書くことにする。同様にして、y による断面:fy=b(x) = f(x, b), fy(x) などを考えることもできる。

• 補足: さらには任意の方向、つまり直線 ax + by + c = 0 による断面や、任意の曲線 g(x, y) = 0(パラメタ表示すれば x = x(t), y = y(t))による断面を考えることもできる。

• 例: f(x, y) = xy の x = a による断面は fx=a(y) = ay であり、特に a = 0 のときは fx=0(y) = 0という定数関数、a = 1 のときは fx=1(y) = y という恒等関数になる。

図形的には fx=a(y) は z = f(x, y) のグラフを平面 x = a で切断したときの切り口であり、1変数関数z = fx=a(y) のグラフになる。偏微分はそれを微分したもの、偏微係数はその点での接線の傾きにあたる。

1.4 2変数関数を図示する

すでに述べたように、z = f(x, y) に対し、(x, y, z) すなわち (x, y, f(x, y)) という点をすべて集めた集合をこの関数のグラフと言う。これは xy 平面上の定義域 D ! R2 の各点 (x, y) に対し、空間内の点 (x, y, z) を割り当てたものの全体である。関数の定義から、z はただ1つに決まる。したがってグラフが z 方向に重なることはない。関数が連続であるなら、グラフを図示するとつながった曲面になる(「曲面」には平面、つまり曲がっていない面も含めている)。不連続な点があると、たとえばある曲線に沿って不連続だと曲面はそこでちぎれた形になる。不連続な点が無数に密集していたりすると状況は極めて複雑になり、目に見える形で図示すること自体ができない場合も出てくる。以下では主として連続な場合で考えていく。グラフを目に見える形に正確に作ろうとすれば、曲面の立体模型を作るよりない。最近では 3D プリンタも

出回ってきているとはいえ、実際に曲面を作るのは面倒なので、普通には3次元空間を2次元空間に投影したものを紙(やコンピュータ画面)に描いて表すことになる。2変数関数のグラフは1変数関数より扱うデータ量が格段に多くなり、処理も複雑になるので描くのに手間がかかる。その点、コンピュータを使えば大量の計算が簡単に実行でき、正確なグラフが描ける。いくつかの方法を下に示す。なお以下では共通例題として、

z = f(x, y) = xe!(x2+y2)

という関数を用いる。これは極大・極小点を1つずつ持つ関数である(練習)。以下の図ではこの関数のデータを matlab で以下のようにして作成してある。

>> [x,y] = meshgrid([-2:0.1:2]);

>> z = x .* exp(-x.^2 - y.^2);

1.4.1 断面の図を重ねる

まず f(x, y) の断面、fx(y), fy(x) を考えてみよう。これらは1変数関数だから、ふつうの意味でのグラフが描ける。下の左は x = 1 での断面 z = e!1!y2、右は y = 0 での断面 z = xe!x2 のグラフである。

x = 1 での断面 y = 0 での断面

−2 −1.5 −1 −0.5 0 0.5 1 1.5 20

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−0.5

−0.4

−0.3

−0.2

−0.1

0

0.1

0.2

0.3

0.4

0.5

4

Page 5: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

0.1置きの断面を重ね合わせて描くと下のようになる。なお plot(z)のようにあるのはそれを描くためのmatlabのコマンドである。

x による断面 y による断面plot(z) plot(transpose(z))

0 5 10 15 20 25 30 35 40 45−0.5

−0.4

−0.3

−0.2

−0.1

0

0.1

0.2

0.3

0.4

0.5

0 5 10 15 20 25 30 35 40 45−0.5

−0.4

−0.3

−0.2

−0.1

0

0.1

0.2

0.3

0.4

0.5

このままでは立体的な様子はうかがえないが、各断面を縦方向に少しずつずらしながら表示すると次のようになる。これだといくらか立体感が感じられるだろう。

plot(z + x*0.3) plot(transpose(z + y*0.3))

0 5 10 15 20 25 30 35 40 45−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

0 5 10 15 20 25 30 35 40 45−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

このような表示の仕方は、時間とともに変化する関数を図示する場合などによく用いられる。

1.4.2 メッシュ図

メッシュ図(別名ワイヤーフレーム図)とは、簡単に言えば上の断面の図を x, y の両方向に作成し、つないだものである。作り方は下の通り。

−1−0.5

00.5

1

−1

−0.5

0

0.5

10

0.5

1

1.5

2

−1−0.5

00.5

1

−1

−0.5

0

0.5

10

0.5

1

1.5

5

Page 6: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

まず、ある方向(視点)から見た座標系を用意し、xy 平面を格子状に区切る(上の左図)。各格子点 (a, b)から縦(z 方向)に、関数値 f(a, b) だけ離れた点をプロットする(右図)。これをすべての格子点について実行し、格子上で横または縦に隣り合ったプロット点をつないでいく。これは関数の曲面を格子上で平面で近似し、その輪郭を描いたことにあたる。作成の手間はともかくとして、

方法自体は単純だが、それでも結構立体感のある図ができ、グラフの大まかな様子は見て取れる。

• 隠線・隠面消去実はこれだけではまだ、これまで見てきたようなメッシュ図にはならない。面の裏側にある線も透けて見え

てしまうからである。これでは見づらいので、裏側にある線は消す必要がある。これを隠線消去(裏側の面を消す場合には隠面消去)と言う。下の左には上の通りに描いたメッシュ図、右には隠線消去したメッシュ図を示す。

mesh(x,y,z) mesh(x,y,z)

hidden off hidden on

−2−1

01

2

−2

−1

0

1

2−0.5

0

0.5

−2−1

01

2

−2

−1

0

1

2−0.5

0

0.5

隠線・隠面消去をどのように行うかはコンピュータグラフィックスの重要な課題であり、様々な手法が研究・開発されてきた。今の場合には、メッシュを奥行きの遠い側から描いていき、手前側の面に重なる線は重なった部分を消してしまえばそのまま隠線消去ができる。言い換えれば、手前側の面を次々に塗りつぶしていけばよい。したがって隠線消去は比較的単純に実行できるが、もっと入り組んだ複雑な場合には隠線消去はかなり難しくなる。隠線消去のため、1つの方向からの図だけでは必ずしもグラフの全容がつかみにくいこともある。その場合

には、いくつかの視点からの図を併置するとよい。下に同じグラフを異なる視点から見た例を示す。GUI 上では、マウス操作によって座標軸を回転させることもできる。

view(20,30) view(50,40)

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2 −2

−1

0

1

2

−0.5

0

0.5

−2

−1

0

1

2 −2

−1

0

1

2

−0.5

0

0.5

1.4.3 立体的な見取り図を作る

ふつうの絵や写真や漫画、あるいは手書きで描く立体の見取り図にあたる。滑らかな曲面だと単に輪郭を書いただけでは様子がわからないので、一定方向から光を当てて陰影をつけたりする(陰影と言っても、面の明

6

Page 7: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

るさの濃淡を示すだけで、影そのものはふつうは描かない(かえって見にくくなるので))。また等高線代わりに、高さに応じて色(あるいは濃淡)をつける方法もある。コンピュータで見取り図を描く場合、基本になるのは上のメッシュ図(のデータ)である。メッシュ図では

格子上の部分を平面で近似していた。表面を滑らかに見せるにはそれだけ多くの点のデータが必要となるが、メッシュそのものは比較的粗くとり、汎用のグラフィックス機能で間を滑らかにつなぐ(補間する)こともできる。この場合、補間部分は関数値そのものを用いているわけではないので、元のグラフが忠実に再現されるかには注意する必要がある。

matlab で見取り図を描くコマンドとしては

• surf(x,y,z): 色(濃淡)を高さにしたがってつける。• surfl(x,y,z): ある方向から光を当て、各点での明るさにしたがって色(濃淡)をつける。

などがある(光の方向の指定法は省略)。また面の描き方は shading コマンドで指定する。なお、何も指定しなければ shading faceted になるので、これは省略してもよい。

surf(x,y,z) surfl(x,y,z)

shading faceted shading faceted

−2−1

01

2

−2

−1

0

1

2−0.5

0

0.5

−2−1

01

2

−2

−1

0

1

2−0.5

0

0.5

surf(x,y,z) surfl(x,y,z)

shading interp shading interp

−2−1

01

2

−2

−1

0

1

2−0.5

0

0.5

−2−1

01

2

−2

−1

0

1

2−0.5

0

0.5

1.4.4 等高線図

上はいずれも、グラフの立体的な見取り図を作るものだった。これと別の方法として、平面上に関数の等高線を描くものがある。地図の等高線はその典型的な例だし、天気図の等圧線は、高さの変わりに気圧についての等高線である。

matlab で等高線を描くには、contour(x,y,z,n) とする。n は等高線の本数で、省略すると自動設定される。下に本数の異なる等高線図を示す。

7

Page 8: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

contour(x,y,z) contour(x,y,z,30)

axis(’square’) axis(’square’)

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

高さ k の等高線は f(x, y) = k を満たす点全体の集まりである。これをコンピュータで正確に描くのは、実はメッシュ図などの場合より難しい。f(x, y) = k を x, y についての方程式と見なしてそれを満たす点を求めるのは一般には難しい。したがって方程式を解くという方法ではなく、メッシュ図から等高線の通るだいたいの位置を求める、微分によって等高線の方向を推測するなどの方法がとられる。連続関数の等高線には以下の特徴がある。

• 高さが k1 < k2 < k3 < ... の等高線はこの順に並び、順番が入れ違ったりどれかが抜けたりすることはない。

• 高さの異なる等高線は互いに交わらない(不連続点がある場合、高さの異なる等高線が不連続点に集まることはある)。

• 高さが等しい等高線は交わることがある。この場合、交点は停留点(鞍点または広義の極大・極小)になる(p.183: 5.3「極大・極小」参照)。

• 閉曲線である等高線が同心円状に並んだとき、その中心点は極大または極小になる。• 等高線は勾配ベクトルと直交する(後述)。

等高線だけでは凹凸(浮き出ているか、沈んでいるか)はわかりにくいことが多い。これに対処するには、等高線の間に凹凸のわかる色(濃淡)をつける、勾配ベクトルを並記するなどの方法がある(下左図)。また等高線を立体的な見取り図のように描くこともできるが、必ずしも見やすいとは言えない(下右図)。

(コマンドは省略) contour3(x,y,z,20)

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

−2−1

01

2

−2

−1

0

1

2−0.4

−0.3

−0.2

−0.1

0

0.1

0.2

0.3

0.4

1.5 関数の極限

1変数関数の極限は下のように定義されていた。

• limx!a

f(x) = !

!" > 0 に対し、十分小さく # > 0 をとれば、すべての x " R:0 < |x # a| < # に対し、|f(x) # !| < "

8

Page 9: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

ここで絶対値記号: |a ! b| は(数直線上での)2点 a, b の距離を表している。これを2次元に拡張しよう。記法を簡単にするため、2次元平面上の座標を(位置)ベクトルで表す。つま

り点 A(xa, ya)、B(xb, yb) 等を、ベクトル:

a =

!xa

ya

"b =

!xb

yb

"

と同一視する。ベクトル a の長さは " a " と表す(これを「ノルム (norm)」とも呼ぶ)。したがって2点 a, b

の間の距離は " a ! b " となる。明らかに " a ! b "=" b ! a " である。これを使うと、2変数関数の極限は下のように表せる。

• limx!a

f(x) = !

#" > 0 に対し、十分小さく # > 0 をとれば、すべての x $ R2:0 <" x!a "< # に対し、|f(x)!!| < "

これは1次元の場合の定義のうち、該当個所を2次元のベクトルやノルムに置き換えただけである(1次元のノルムも " a " と表すことにすればそれも一致してしまう)。しかし内容的にはかなり違っている。1次元の場合、an % a や x % a の近づき方は、a に向かって数直線の右側から、あるいは左側から(あるいは両方を行ったり来たりしながら)という場合だけなのに対し、2次元の an % a や x % a では a に向かって 360"

あらゆる方向から近づく可能性があり、近づき方も直線的、螺旋状、振動しながらなど、様々なパターンがある。上の定義は、そのどの場合についても成り立つことが求められており、したがって1次元の場合よりは強い条件が課されていることになる。• 例極座標で f(r, $) = $ という関数は、$ が一定のとき、つまり原点から放射状に延びる直線上では一定値をとるから、

limr!0

f(r, $) = limr!0

$ = $

である。つまり特定の方向から近づけば r % 0 の極限は確定するが、それらの値は方向によってすべて異なっており、したがって関数全体としての原点に近づく極限値は存在しない。後で見るように、f(r, $) は原点で不連続である。

1.5.1 距離

2点 P(xa, ya), Q(xb, yb) ただし:

a =

!xa

ya

"b =

!xb

yb

"

の距離 PQ = d(P, Q) =" a ! b " (d(P, Q) は教科書の d(a, b) と同じ)は、ふつうには直線距離(いわゆる「ユークリッド距離」):

#(xa ! xb)2 + (ya ! yb)2 がとられる。以下でももっぱら、

%(P, Q) =" a ! b "=#

(xa ! xb)2 + (ya ! yb)2

とする。しかし距離にはこれ以外の取り方もある。一般に実数値関数 d(a, b) が次の条件(いわゆる「距離の公理」)

を満たせば、「距離」としての資格が認められる。

(d1) d(a, b) = d(b, a) (交換律)(d2) d(a, b) & 0(ただし a = b のときに限り、d(a, a) = 0)(d3) d(a, b) ' d(a, c) + d(c, b) (三角不等式)

たとえば

dp(a, b) = (|xa ! xb|p + |ya ! yb|p)1p (ただし p & 1)

9

Page 10: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

で表される dp は距離の公理を満たす。p = 2 の場合、つまり d2 はユークリッド距離に他ならない。また

d1(a, b) = |xa ! xb| + |ya ! yb|d!(a, b) = lim

p"!dp(a, b) = max(|xa ! xb|, |ya ! yb|)

なども距離の例である。d2 距離(ユークリッド距離)で原点からの距離が等しい点は下左図のように同心円状に並ぶのに対し、d1 距離では下中図のように、菱形(正方形を 45# 回転したもの)、d! 距離では下右図のように、正方形になる。

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

これらは、一方を十分小さくすればもう一方に含まれるようにできるという点で、収束に関しては同じ結果をもたらす。特に点列の収束について、

xn =

!xn

yn

"

に対し、

limn"!

xn = a =

!a

b

""# lim

n"!xn = a かつ lim

n"!yn = b

となる。これの証明には

d!(a, b) $ d2(a, b) $ d1(a, b)

であることを用いる(練習)。

1.6 連続関数

2変数関数 f(x, y) が点 (a, b) で連続とは、

lim(x,y)"(a,b)

f(x, y) = f(a, b)

であることを言う。これも1変数の場合の定義:

limx"a

f(x) = f(a)

とほとんど同じである。しかし前と同様、(x, y) % (a, b) という近づき方には多様性があり、上はそのすべての場合について、それが成り立つことが求められている。1変数の場合、a への近づき方は右側から(x % a + 0)、左側から(x % a ! 0)の2通りしかなく、これ

に応じて不連続点には以下の場合がある。

• limx"a$0

f(x) も limx"a+0

f(x) も存在するが、 limx"a$0

f(x) &= limx"a+0

f(x)。この場合、f(a) がそのどちらかに等しければ片側連続(右側連続ないし左側連続)になる。また f(a) がどちらにも等しくない場合には、x = a は孤立した不連続点になる(つまり十分小さく !, " をとれば、0 < |x ! a| < " のとき |f(x) ! f(a)| > ! になる)。

• limx"a$0

f(x), limx"a+0

f(x) の一方しか存在しない。この場合、上に戻って極限が存在する側で片側連続である可能性はある。

10

Page 11: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

• limx!a"0

f(x), limx!a+0

f(x) のいずれも存在しない。

たとえば f(x) =1x

, f(x) = sin1xなど。いずれも f(0) = 0 と定義しておく(値は実際には何でもよい)。

f(x) =1xの場合には x = 0 は孤立した不連続点になるが、f(x) = sin

1xの場合には原点のどんな近く

にも f(x) が f(0) = 0 にいくらでも近い(それどころか f(x) = 0 である点さえ)点が存在するが、それでも原点では不連続なのである。

2変数関数の場合にはこのような簡単な分類はできない。a に近づくたった1つの方向からだけでも不連続な場合には全体が不連続になるからである。

• f(x, y) =

!1 ((x, y) = (0, 0))0 ((x, y) != (0, 0))

これは原点であらゆる方向から不連続であり、原点は孤立した不連続点である。

• f(x, y) =

!1 (xy = 0)0 (xy != 0)

これは原点で x 軸、y 軸の方向にのみ連続であり、他のあらゆる方向には不連続である。

• f(x, y) =

!1 (xy = 0, ただし (x, y) != (0, 0))0 (xy != 0 または (x, y) = (0, 0))

今度は原点で x 軸、y 軸の方向にのみ不連続であり、他のあらゆる方向には連続である。• 前に掲げた f(r, !) = ! (0 " ! < 2") の場合、 lim

r!0f(r, !) = ! だから、原点では不連続である。

仮に f(0, !) = 0 と定義すると、原点では ! = 0 の方向にのみ連続であり、他のすべての方向では不連続である。一方、! = 0 の上の点は(原点も含めて)すべて不連続点である。実際:

lim!!2"

f(r, !) = 2"

f(r, 2") = f(r, 0) = 0

上の例にもあるが、2変数関数の場合、不連続点が連なって曲線(直線も含む)をなす場合もある。むしろこのほうが2変数関数の不連続性としては認識しやすいだろう。この場合、「不連続線」の両側では関数がそれぞれ連続であるなら、不連続線は垂直に落ちる「崖」のようなイメージになる。

• 参考: matlab のような数学ソフトで不連続関数の図を描くのは意外と厄介である。上のような不連続線に沿っては、上の側と下の側の両方の関数値を指定しないと「垂直な崖」はできないが、メッシュ図などにはそのような2値指定をする機能がないからである。

「ある領域において連続な関数」は「領域の各点において連続な関数」として定義される。「ある点で連続」というのは極めて局所的な性質であるのに対し、それを領域の各点に適用するだけで、「グラフはつながった曲面になる」といった大域的な性質が成り立つことは、不思議と言えば不思議である。なお有界な閉領域での連続関数については:

• 最大・最小定理: 有界な閉領域で連続な関数は領域内で最大値・最小値をとる。• 一様連続定理: 有界な閉領域で連続な関数は領域内で一様連続である。

が成り立つのは1変数関数の場合と同様である。これらは2変数関数の微積分、特に積分で大きな役割を果たす。• 練習

• 有界閉領域で不連続な関数で、最大・最小値をとるもの、とらないものの例を示せ。• 開領域で連続だが一様連続でない関数の例を示せ。

11

Page 12: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

2 多変数関数の微分多変数関数の場合、微分の概念には2つの種類がある。偏微分(partial di!erentiation)と全微分(または

単に微分: (total) di!erentiation)である。偏微分は1変数の微分と実質的には同じことで、定義域上での特定の方向への微分を指す。これに対し、(全)微分は関数があらゆる方向に滑らかに変化していることに対応する概念である。このように互いに異なる概念ではあるけれども、両者の間には密接な関係がある。

2.1 偏微分

関数 z = f(x, y) について、点 (a, b) で:

A = limh!0

f(a + h, b) ! f(a, b)h

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (")

という極限値が存在するとき、「f(x, y) は点 (a, b) で x 方向に偏微分可能である」といい、極限値 A を「点(a, b) における x 方向の偏微係数」と呼ぶ。(a, b) を (x, y) と書き直し、(x, y) を f の定義域内で偏微係数が存在するすべての点にわたって動かすと、x, y を変数とする関数ができる。これを「f(x, y) の x 方向の(あるいは x による)偏導関数 (paritial derivative)」と呼ぶ。

y 方向への偏微分も同様に考えることができる。それには上の (") の代わりに:

B = limh!0

f(a, b + h) ! f(a, b)h

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ("")

という極限を出発点に考え、上で「x 方向の」や「x による」の x を y に置き換えればよい。

• 注:偏微分に対し、これまで扱ってきた1変数関数の微分を「常微分 (ordinary di!erentiation)」と呼ぶ。

z = f(x, y) の偏導関数は下のような表し方がある。順に Lagrange, Leibniz, Cauchy によるもので、常微分の記法の拡張になっている。

• zx, fx, fx(x, y), zy, fy, fy(x, y) (常微分の z", f "(x) に相当)• !z

!x,

!f

!x,

!z

!y,

!f

!y(常微分の dy

dx,

df

dxに相当)

• Dxz, Dxf, Dyz, Dyf (常微分の Df に相当)

点 (a, b) での偏微係数は

fx(a, b),!f

!x

!!!!x=a,y=b

あるいは !f

!x

!!!!(x,y)=(a,b)

fy(a, b),!f

!y

!!!!x=a,y=b

あるいは !f

!y

!!!!(x,y)=(a,b)

などのように表せる。

• 注

• 微分記号にある “!” はアルファベットの D の異体字である(ドイツ文字あたりと関連する?)。読み方は一定していないが、普通は単に「ディー」と読むようである。常微分の dx と !x とを区別する場合にはいろいろな流儀があり、たとえば「デールント」というのがある。これはドイツ語の rund(丸い)につなげてのことらしく、「丸っこいディー」といった意味だろう。もっともこれは日本だけで通用する方言という説もある。英語では !f

!xなどは「partial f (over) partial x」などと読むようである。

12

Page 13: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

2.1.1 偏微分の意味

z = f(x, y) で y を y = b に固定したもの、つまり f の x 方向への断面は、x だけを変数とする1変数関数と考えることができる:

g(x) # f(x, b)

左辺の g がその1変数関数につけた名前である。これを使えば、「x 方向への偏微係数」を定義した (") は:

A = limh!0

g(a + h) ! g(a)h

となる。右辺の極限が存在すれば、g(x) の点 a での微係数に他ならない。つまり

A = g"(a) = fx(a, b) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ($)

である。g"(a) は点 a における g(x) の接線の傾きだった。g(x) は y = b における f(x, y) の断面だから、fx(a, b) は

その断面への接線の傾きということになる。この接線をそのまま、「f(x, y) の点 (a, b) における x 方向への接線」と定義してしまおう。したがってこの接線は:

z ! f(a, b) = fx(a, b)(x ! a), y = b

という連立方程式で表せる。パラメタ表示による直線の方程式では:"

#$x

y

z

%

&' =

"

#$a

b

f(a, b)

%

&' +

"

#$10

fx(a, b)

%

&' t

となる。同様にして、「点 (a, b) での y 方向への接線」は

z ! f(a, b) = fy(a, b)(y ! b), x = a あるいは"

#$x

y

z

%

&' =

"

#$a

b

f(a, b)

%

&' +

"

#$01

fy(a, b)

%

&' s

と表せる。

($) に戻って、これから

g"(x) = fx(x, b)

つまり fx(x, b) は断面の導関数であり、各点 x での x 方向への増減の度合い(=接線の傾き)を表すこと、したがって b を変数 y に戻せば、偏導関数 fx(x, y) は f(x, y) の各点 (x, y) での x 方向への増減の度合いを表すことがわかる。fy(x, y) についても同様である。x 方向、y 方向といった特定の方向への増減を表しているというのが「偏微分」、つまり「偏(かたよ)った微分」という名前の由来である。

• 任意の方向への偏微分上を拡張して、任意の方向への偏微分を考えることができる。("), ("") は点 (a, b) に対し、それぞれ x 軸、

y 軸に平行な方向から近づくものであった。点 (a, b) を通り、x 軸と " の角をなす直線は

(x = a + h cos "

y = b + h sin "(h % R)

と表せる。そこで点 (a, b) での " 方向への偏微係数は

limh!0

f(a + h cos ", b + h sin ") ! f(a, b)h

として表せる(なお、この「" 方向」という言い方を使えば、上で x 方向と言ったのは 0 方向、y 方向は !2

方向と言い直せる)。これは " 方向への偏導関数に自然に拡張できる。" 方向への偏微分については決まった表記法はない。

13

Page 14: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

2.1.2 偏微分の計算

偏微分の計算は最終的には ("), ("") の極限の計算に帰着される。偏導関数はこれをすべての点 (x, y) に当てはめてえられる。しかし実際の計算ではいちいち極限計算をしていては煩雑になるばかりであり、微分公式が利用される。

fx(x, y) = lim!x!0

f(x + "x, y) ! f(x, y)"x

は上で見たように、x 方向への断面の導関数を計算しており、極限計算の中では y は一定に保たれる。したがって x 方向への偏微分を計算するには、

「f(x, y) の y を定数と見なし、x だけを変数とする関数として(常)微分すればよい」

という計算方法をとればよい。y 方向についても同様である。つまり偏微分の計算は、常微分の計算方法に帰着される。加減乗除や合成関数の微分公式などもそのまま使える。なお以下で (...)x はカッコ内の x による偏微分、(...)y は y による偏微分を表す。• 例

• f(x, y) = xy

y を定数とみなせば x の1次式だから、fx(x, y) = y · (x)x = y

x を定数とみなせば y の1次式だから、fy(x, y) = x · (y)y = x

• f(x, y) = x2y2 ! 3xy2 + x2 ! y + 2

fx(x, y) = y2(x2)x ! 3y2(x)x + (x2)x + (!y + 2)x = 2xy2 ! 3y2 + 2x

fy(x, y) = x2(y2)y ! 3x(y2)y ! (y)y + (x2 + 2)y = 2x2y ! 6xy ! 1

• f(x, y) = sin(2x + 3y)

fx(x, y) = 2 sin(2x + 3y)fy(x, y) = 3 sin(2x + 3y)

• f(x, y) = (sin x + ey)(cos y + ex)

fx(x, y) = (sin x+ey)x(cos y+ex)+(sin x+ey)(cos y+ex)x = cos x(cos y+ex)+(sin x+ey)ex

fy(x, y) = (sin x+ey)y(cos y+ex)+(sin x+ey)(cos y+ex)y = ey(cos y+ex)!(sinx+ey) sin y

• f(x, y) = xy

fx(x, y) = yxy#1

fy(x, y) = xy log x

f(x, y) が特殊な形をしている場合として以下のようなものがある。

• f(x, y) = g(x) + h(y)、つまり f(x, y) が x だけの関数と y だけの関数の和として表せる。

fx(x, y) = g"(x)fy(x, y) = h"(y)

つまり fx は x だけの関数、fy は y だけの関数になる。さらに h(y) # 0、つまり f(x, y) 自身が x だけの関数の場合、

fy(x, y) = h"(y) = 0

になる。これは関数値が y 方向には変化しないということである。g(x) # 0 の場合も同様。なおこれはh(y) # c という定数関数とした場合でも同様だが、定数については g(x) のほうに含めてしまえるので実質的な違いはない。

• f(x, y) = g(x)h(y)、つまり x だけの関数と y だけの関数の積。

fx(x, y) = g"(x)h(y)fy(x, y) = g(x)h"(y)

14

Page 15: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

• f(x, y) = f(y, x)、つまり関数が x, y について対称な場合。このときは fx(x, y) の x と y を入れ替えれば fy(x, y) が得られる。これは

!f(x, y)!x

=!f(y, x)

!xの右辺で x と y の名前を入れ替えれば

!f(x, y)!y

となることによる。• 例: f(x, y) = x2y + xy2 の場合、

fx(x, y) = 2xy + y2

この x と y を入れ替えた 2xy + x2 が fy(x, y) になる。• f(x, y) = g(x + y)、つまり f(x, y) が x + y についての1変数関数と見なせる場合。

fx(x, y) = fy(x, y) = g"(x + y)

このとき f(x, y) は直線 x + y = t に沿って同じ値をとり、fx と fy は常に一致する。もう少し一般化して f(x, y) = g(ax + by + c) の場合は

fx(x, y) = ag"(ax + by + c)fy(x, y) = bg"(ax + by + c)

となる。つまり常に fx : fy = a : b になる。さらに一般化して f(x, y) = g(h(x, y)) の場合は:

fx(x, y) = hx(x, y)g"(h(x, y))fy(x, y) = hy(x, y)g"(h(x, y))

ここで h(x, y) = t というのは f(x, y) の等高線だから、上は「f(x, y) の偏微分は等高線及びそれに沿っての微分で表せる」ということに相当する。• 例: f(x, y) = (xy)2 + 2(xy) のとき、

h(x, y) = xy

g(t) = t2 + 2t

とすれば f(x, y) = g(h(x, y)) となる。このとき:

fx(x, y) = y · (2t + 2) = 2y(xy + 1)fy(x, y) = x · (2t + 2) = 2x(xy + 1)

直接計算して上が成り立つことを確かめよ。

f(x, y) が単一の数式で定義されていない場合、境界になる点では定義式 ("), ("") に戻って計算する必要がある。• 例

f(x, y) =

)*

+

xy

x2 + y2((x, y) &= (0, 0))

0 ((x, y) = (0, 0))

の場合、原点以外の点では

fx(x, y) =y(y2 ! x2)(x2 + y2)2

fy(x, y) =x(x2 ! y2)(x2 + y2)2

となる。原点では:

fx(0, 0) = limh!0

f(h, 0) ! f(0, 0)h

= limh!0

0 ! 0h

= 0

fy(0, 0) = limh!0

f(0, h) ! f(0, 0)h

= limh!0

0 ! 0h

= 0

15

Page 16: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

である。したがってこの関数はすべての点 (x, y) % R で x 方向、y 方向に偏微分可能である。しかし次で見るように、原点ではこれ以外の方向には偏微分できない(それどころか、原点では連続でさえない)。

2.1.3 偏微分可能性

("), ("") の極限値が存在しなければ、その点では f(x, y) は偏微分できない、つまり偏微分不能である。偏微分できるかどうかは、上のように断面の1変数関数の微分可能性に帰着される。

x 方向に偏微分できることと y 方向に偏微分できること、もう少し一般的に言えば、異なる2つの方向への偏微分可能性は互いに無関係である。

• ごく簡単な例として、

f(x, y) =

(1 (x ' 0)0 (x < 0)

を考えてみよう。これは y には依存せず、x だけで決まる関数で、y 軸より右側では 1、左側では 0 の値をとり、y 軸上で不連続である。ちょうど y 軸に沿って「崖」があると思えばよい。y には依存しないから、任意の (x, y) について

fy(x, y) = 0

で偏微分可能である。一方、x 方向では x = 0 が不連続点だから、このとき偏微分不能である。実は y

方向以外のすべての方向について、偏微分不能(正確に言えば、偏微分不能な点があるということ)である。これを地形にたとえて言えば、y 軸に平行な方向にはいくらでも進めるが、それ以外の方向では必ず崖に突き当たる(崖の上側にいれば下に落ちる)ことになる。

• 上は不連続点のある関数の場合だったが、すべての点について連続な例として:

f(x, y) = |x| + y

を考えると、x 方向への断面は |x| + b の形をしているから x = 0 のときは微分できない。したがってfx(x, y) は x = 0 では存在しない。一方、y 方向への断面は y + a の形をしているからすべての y について微分できる、したがって fy(x, y) はすべての (x, y) について存在する。特に y 軸上では、f(x, y) はすべての点において x 方向には偏微分不能、y 方向には偏微分可能である。念のため:この関数は2つの(半)平面:

z = x + y (x ' 0)z = !x + y (x ( 0)

をつないだ形のグラフを持ち、2つの平面は y 軸上、z = y という直線で交わっている。この交線のところで折れ曲がっているのが x で偏微分できない理由である。

• f(x, y) = 3)

xg(y)(ただし g(y) はすべての y について微分可能)fy(x, y) = 3

)xg"(y) で、これはすべての (x, y) について存在する。一方 fx のほうは形式的に書くと:

fx(x, y) =g(y)3)

x2

になる。ここで g(y) &= 0 なら上は x = 0 のとき存在しない(分母が 0 になる)。一方、g(y) = 0 であるy に対しては f(x, y) = 0 になるから、fx(x, y) = 0 となる。つまりこの関数は、(0, g(y))(ただし g(y) &= 0)という点では x 方向に偏微分不能、他のすべての点で偏微分可能である。f(x, y) = |x|g(y) などとしても同様の結果になる。

次に、x, y の両方向に偏微分できても、他の方向に偏微分できるとは限らないことを見ておこう。

16

Page 17: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

• f(x, y) =

(0 (x = 0 または y = 0、つまり xy = 0)1 (それ以外、つまり xy &= 0)

とする。つまり z = 1 という平面から、x 軸、y 軸だけが陥没したような形である。このとき明らかに:

fx(0, 0) = fy(0, 0) = 0

つまり原点では x, y 両方向に偏微分できる。ところが他のすべての方向には偏微分不能である。x 軸、y

軸上以外では関数は原点で不連続だからである。たとえて言えば、x, y 軸に沿って進めば(陥没した谷底に沿って)原点にたどりつくことができるが、他のどんな出発点からでも、崖を落下しなければ原点にはたどりつけない。なおこの関数の場合、x 軸上では原点以外は fy は存在せず、y 軸上では原点以外は fx は存在しない。

• 前掲の関数:

f(x, y) =

)*

+

xy

x2 + y2((x, y) &= (0, 0))

0 ((x, y) = (0, 0))

はすでに見たように、すべての (x, y) で fx, fy が存在する。しかし原点では他の方向には偏微分できない。実際、直線 y = mx (m &= 0) 上の原点以外の点では:

f(x, y) =xy

x2 + y2=

mx2

(1 + m2)x2=

m

1 + m2&= 0

という定数になって、原点で不連続になるからである(下左図:これはすでに授業でも配った)。• 上の関数はまだ原点で不連続だった。そこでさらに:

f(x, y) =

),*

,+

x2y2

(x2 + y2) 32

((x, y) &= (0, 0))

0 ((x, y) = (0, 0))

としてみよう(下右図)。するとこれはすべての (x, y) について連続である。実際、これを極座標で表すと:

f(x, y) =x2y2

(x2 + y2) 32

= r cos2 " sin2 "

となって、r * 0 のとき r cos2 " sin2 " * 0 であり、原点も含めて連続になるからである。しかし x, y 方向以外にはやはり偏微分できない。cos " &= 0, sin " &= 0 のとき、r cos2 " sin2 " は原点で折線になるからである。これを直接確かめるには、y = mx という直線上では

f(x, y) =x2y2

(x2 + y2) 32

=m2x4

(1 + m2) 32 |x|3

=m2

(1 + m2) 32|x|

となることを見ればよい。最後の |x| が x = 0 のとき偏微分できない理由である。

−2−1

01

2

−2

−1

0

1

2−0.5

0

0.5

−2−1

01

2

−2

−1

0

1

20

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

2.2 微分(全微分)

2.2.1 1変数関数の微分

2変数の全微分に進む前に、1変数の微分を復習しておこう。微分の本質は、「関数が注目している点の近傍では1次式(=直線、実は接線)で近似できる」という点にある。厳密には、

17

Page 18: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

"y

"x= A + # (ただし "y = f(x0 + "x) ! f(x0))

とすると、"x * 0 のとき # * 0 であることが微分できる条件であり、このとき A = f "(x0) となるのだった。これを書き直すと

"y = A"x + #"x = f "(x0)"x + #"x

であり、#"x の部分を無視すれば ("x,"y) 座標系での直線の方程式になる。これを (x, y) を原点とする(dx, dy) 座標系を使って表すと:

dy = f "(x)dx

となる。これが接線の方程式であり、dx を x の微分、dy を y の微分と呼んだ。

2.2.2 2変数関数の微分(全微分)

2変数関数の場合にも上と同様に、

「注目している点の近傍では関数を1次式で近似できる」

という形で(全)微分可能性を考えてみよう。今度は変数が2つあるので、上の式は

"z = A"x + B"y + #$

という形で書ける。ただし

"z = f(x0 + "x, y0 + "y) ! f(x0, y0)$ =

-("x)2 + ("y)2

$ * 0 のとき # * 0

である。この際、「(x0 + "x, y0 + "y) がどのような近づき方で (x0, y0) に近づくのであっても上が成り立つ」ことが重要なポイントである。このとき f(x, y) は(点 (x0, y0) で)(全)微分可能であると言う。上と同様に、(x0, y0, z0)(ただし z0 = f(x0, y0))を原点とする (dx, dy, dz) 座標系をとると、

dz = Adx + Bdy

は今度は平面の方程式になる。ここでも dx, dy, dz をそれぞれ x, y, z の微分と呼ぶ。これを (x, y, z) 座標系に戻せば、(dx = x ! x0 などを使って)

z ! z0 = A(x ! x0) + B(y ! y0)

となる。この平面を f(x, y) の点 (x0, y0, z0) における接平面と呼ぶ。

2.2.3 微分可能性 * 偏微分可能性

f(x, y) が点 (x0, y0) で微分可能としよう。(x0 + "x, y0 + "y) が x 方向から (x0, y0) に近づく場合、"y = 0, $ = |"x| になるから:

"z = A"x + #|"x|

両辺を "x で割れば:"z

"x= A ± #

になる(± は "x の符号によって決まる)。右辺は "x * 0 のとき # * 0 だから、A に収束する。一方、左辺は極限をとれば、(x0, y0) での x による偏微係数に他ならない。したがってこれから:

18

Page 19: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

• (x0, y0) で微分可能なら、x 方向に偏微分可能である。• 微分の係数 A は fx(x0, y0) に他ならない。

ことの2点がわかる。同様にして、B = fy(x0, y0) になる。次に任意の方向への偏微分を考える。" 方向への偏微分では:

"x = $ cos "

"y = $ sin "

となるから、微分の式は:

"z = A$ cos " + B$ sin " + #$

になる。両辺を $ で割ると:"z

$= A cos " + B sin " + #

右辺は $ * 0 のとき

A cos " + B sin " = fx(x0, y0) cos " + fy(x0, y0) sin "

に収束するから左辺も収束し、これが " 方向への偏微分に他ならない。これから、微分可能なら任意の方向に偏微分可能なこと、また偏微係数の値は fx, fy を使って上のように表せることの両方がわかる。つまり、「(全)微分可能」というのは任意の方向に偏微分可能であるための十分条件である(しかし下に見

るように、必要条件ではない)。

• 補足 1: 1変数関数の場合は

"y = A"x + #"x つまり "y

"x= A + #

において、"x * 0 とすれば右辺は特定の値(A = f "(x0))に収束した。ところが2変数関数の場合:

"z = A"x + B"y + #$

の両辺を $ で割った"z

$= A

"x

$+ B

"y

$+ #

で $ * 0 としても左辺は特定の値に収束しない。上で見たように、0 への近づき方によって値が変わるからである。しかし

"z ! A"x ! B"y

$

は全体としては 0 に収束する。つまり "z, "x."y の値の組み合わせ方には制約がある。このように特定の値には収束しないが値の組として一定の関係を持つ、というのが1変数関数に対する他変数関数の特徴であり、それが「微分」dx, dy, dz の概念が前面に出てくる理由でもある。

逆に1変数の場合、「方向」と言っても1つしかないから、偏微分と全微分とは実質同じものになり、区別されない。

• 補足 2: 「微分」というのは始めはわかりにくい概念である。ライプニッツは微分を「無限に小さい量」として定義したが、批判者に論理的な欠陥を突かれた。現代の「超準解析」では「無限小量」に別の厳密な定義を与えて復活させているが、ここでは「微分とは局所座標である」という立場をとっておくのが一番わかりやすいだろう。

あとは実際の計算をいろいろやっていくうちに身についてくる。

19

Page 20: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

2.2.4 接平面と接線

上の結果から、点 (x0, y0, z0 = f(x0, y0)) における接平面の方程式は

z ! z0 = fx(x0, y0)(x ! x0) + fy(x0, y0)(y ! y0)

と書き直せる。ここで先ほどの接線の話を思い出してみよう。(x0, y0, z0) での x 方向、y 方向の接線はそれぞれ:

"

#$x

y

z

%

&' =

"

#$x0

y0

z0

%

&' +

"

#$10

fx(x0, y0)

%

&' t

"

#$x

y

z

%

&' =

"

#$x0

y0

z0

%

&' +

"

#$01

fy(x0, y0)

%

&' s

と書けた。この2本の直線は1つの平面を決定し、パラメタ表示で:"

#$x

y

z

%

&' =

"

#$x0

y0

z0

%

&' +

"

#$10

fx(x0, y0)

%

&' t +

"

#$01

fy(x0, y0)

%

&' s

と書ける。これは上の接平面の方程式と同じものである。実際、t = x! x0, s = y ! y0 とおいて成分ごとに見れば、x, y 成分については x = x, y = y となって恒等的に成り立ち、z 成分に上の接平面の方程式が現れる。つまり、x, y 方向への接線は、接平面に含まれている。さらに任意の方向への接線も接平面に含まれている

ことを確かめることができる(練習)。逆に言えば、微分可能という条件は、「任意の方向への接線が存在し(=偏微分が存在し)、しかもそれらはすべて接平面に含まれる」ことを意味する。

これから、任意の方向 " への接線を求める2通りの方法が得られる。

• " 方向の偏微分を計算し、直接的に接線の方程式を求める。• 接平面を求め、" 方向の射影をとる。

• 例: f(x, y) = xy とし、点 (1, 1) での " = %/4 方向(つまり y = x の方向)への接線を求める。

• fx = y, fy = x だから、%/4 方向への偏微分は:

1 · cos%

4+ 1 · sin %

4=

)2

2+

)2

2=

)2

したがって

x = t cos%

4=

t)2

y = t sin%

4=

t)2

とすれば点 (1, 1) は t =)

2 の場合にあたり、接線の方程式は z ! t 平面上で

z ! 1 =)

2(t !)

2)z =

)2t ! 1

となる。したがって (x, y, z) 座標では:"

#$x

y

z

%

&' =

"

#$00

!1

%

&' +

"

#$t/)

2t/)

2)2t

%

&' =

"

#$00

!1

%

&' +t)2

"

#$112

%

&'

と表せる。• 点 (1, 1) での接平面は、

z = x + y ! 1

20

Page 21: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

したがってこれと y = x を連立させたものが接線の方程式になる。ここで x = y = t/)

2 と置けば上と同じ結果を得る。また x = y = t とすれば

"

#$x

y

z

%

&' =

"

#$00

!1

%

&' +

"

#$112

%

&' t

となるが、t の縮尺を変えただけで実質的には同じことである。

このように、一般には後者の方法のほうが簡単に接線が求められることが多い。

2.2.5 勾配ベクトル

一般の平面の方程式は

ax + by + cz + d = 0

と書ける。このとき、係数を成分とするベクトル:t(a b c) を平面の「法線ベクトル」と呼ぶ。法線ベクトルは平面と直交する。つまり平面上の任意のベクトルと法線ベクトルとは直交する。実際、平面上の異なる2点を (x1, y1, z1), (x2, y2, z2) とすると、これらは平面上にあるから

ax1 + by1 + cz1 + d = 0ax2 + by2 + cz2 + d = 0

両辺を引いて

a(x1 ! x2) + b(y1 ! y2) + c(z1 ! z2) = 0

これは

法線ベクトル

"

#$a

b

c

%

&' と平面上のベクトル

"

#$x1 ! x2

y1 ! y2

z1 ! z2

%

&'

との内積が 0 であること、つまり互いに直交することを示している。接平面の方程式

z ! z0 = fx(x0, y0)(x ! x0) + fy(x0, y0)(y ! y0)

では法線ベクトルは"

#$fx(x0, y0)fy(x0, y0)

!1

%

&' ないし

"

#$!fx(x0, y0)!fy(x0, y0)

1

%

&'

である(接平面の上側を向くか、下側を向くかによって正負が変わる。上の左は下向き、右は上向きの法線ベクトルである)。左のほうを xy 平面に射影したもの、つまり z 成分を無視した:

.fx(x0, y0)fy(x0, y0)

/

を「勾配ベクトル」と呼ぶ。このとき法線ベクトルは下向きだから、勾配ベクトルは接平面の上向きの傾斜が最も急な方向を指す。したがってこれと正反対を向いた t(!fx(x0, y0) ! fy(x0, y0)) は下向きの傾斜が最も急な方向を指す。接平面は関数 f(x, y) の局所的な近似になっているから、これらは局所的には関数が最も急に増加する方向、減少する方向に対応する(ただし、勾配ベクトルがゼロベクトル (0 0) である場合には平面は傾きを持たない。このような点を停留点と呼ぶ(5.3.2 参照))。一方、勾配ベクトルと直交するベクトル:

.fy(x0, y0)

!fx(x0, y0)

/

21

Page 22: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

は、接平面上では z の値が変わらない方向に対応する。実際、接平面上で

x ! x0 = fy(x0, y0)ty ! y0 = !fx(x0, y0)t

にとると、

z = z0 + fx(x0, y0)(x ! x0) + fy(x0, y0)(y ! y0)= z0 + fx(x0, y0)fy(x0, y0)t ! fx(x0, y0)fy(x0, y0)t= z0

となって、z は定数になるからである。これは局所的にはこのベクトルが f(x, y) の値の変わらない方向を指していること、すなわち等高線の接線の方向を向いていることを示している。

• 参考: これから等高線を作図する方法が導ける。高さ k の等高線は

f(x, y) = k

を満たす (x, y) の集合だが、これを方程式として解いて y を x で表したりするのは一般には難しい。これに対し、f(x, y), fx(x, y), fy(x, y) などは比較的簡単に計算できるから、 平面上の多数の点で関数値及び等高線の方向を求め、それらを適当につないでやればフリーハンドでもかなりよい等高線図ができる。あるいは次のようにしてもよい。高さ k の点を1つ求め、そこでの等高線の方向 (fy,!fx) も求める。近似

的には等高線はその方向の直線と一致するから、少し伸ばしたところで同じことを繰り返す。そのようにして等高線を近似する折線を書いていくのである。このままだと誤差が積み重なるから、間で適当な修正を挟んでゆくとよい。これは本質的には一種の微分方程式を解いていることに相当する。

• 例 f(x, y) = x2 + y2 は放物線を原点の回りで回転した形をしており、等高線は原点を中心とする同心円になる。ここで

fx(x, y) = 2x

fy(x, y) = 2y

であり、したがって点 (x, y) での勾配ベクトルは (x y) で原点と結んだ直線の方向、等高線の方向は (y ! x)でこれと直交する方向である。したがって等高線は原点を結んだ直線と必ず直交している。それを細かくプロットしていけば同心円の等高線図ができるし、等高線が円であることは「1点からの直線と直交する曲線は円である」という幾何的知識を使えばそれからもわかる。

2.2.6 偏微分可能性 * 微分可能性 (1)

上では「微分可能なら任意の方向へ偏微分可能である」ことを見たが、逆の「任意の方向へ偏微分可能なら微分可能である」は一般には成り立たない。たとえば (x, y) = (r cos ", r sin ") のとき、

f(x, y) = x sin 2"

で表される関数を考えてみよう(これは一応、

f(x, y) =

)*

+x sin

02 tan#1 y

x

1(x &= 0)

0 (x = 0)

と書くことができる)。これは " を固定すれば原点を通る直線となり、したがって原点では任意の方向に偏微分可能である。グラフを考えると、原点を通る直線を上下に波打たせながら回転したものに相当する(下図)。

22

Page 23: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

−2−1

01

2

−2

−1

0

1

2−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

• 注: このように直線を動かして得られる曲面を「線織面」と呼ぶ。逆に言えば、曲面が線織面であれば、その上の任意の点を通り、曲面に完全に含まれる直線が存在する。この直線は曲面の接線の1つである。

円錐面は線織面の例である(頂点から円錐の側面に沿って直線(側線)が引ける)。逆に球面などは線織面ではない。

この関数で、x = 0 または y = 0 なら f(x, y) = 0 であり、したがって f(x, y) は x, y 軸を含む。したがって x 方向への接線は x 軸、y 方向への接線は y 軸になり、接平面が存在するなら、この2つの直線を含む平面である xy 平面(z = 0 という平面)になる。ところが他のすべて接線は xy 平面には含まれないから接平面は存在せず、f(x, y) は原点で任意の方向に偏微分可能であるにも関わらず、微分可能ではないことになる。

2.2.7 偏微分可能性 * 微分可能性 (2)

つまり「任意の方向へ偏微分できる」ことは微分可能であるための十分条件ではない。そこで偏微分可能性から(全)微分可能性が言えるための条件は別に考える必要がある。結論を言えば、1つの十分条件として:

「fx, fy が存在し、それらが連続であれば微分可能」

という簡単な形が知られている。これは後述の用語を使えば、「C1 級関数は(1階)微分可能」と言い換えられる。もっとも「fx, fy の両方が連続」というのは実は過大な条件で、片方だけの連続性があれば十分である。し

たがって逆に、微分可能「でない」ためには fx, fy の両方が不連続である必要がある。これまで「x 方向、y 方向(あるいはその他の方向)に偏微分できるが、微分可能ではない例」をいくつか

見てきたことを考えると、この簡潔さは著しい結果と言える。連続という条件をつけ加えただけで問題が解消してしまったのである。逆に言えば、これまで見てきた例ではこの「連続」という条件が満たされていなかったことになる。たとえば

f(x, y) =

)*

+

xy

x2 + y2((x, y) &= (0, 0))

0 ((x, y) = (0, 0))

の場合を考えてみよう。これはすべての (x, y) について x, y 方向に偏微分可能で、たとえば fx は

fx(x, y) =

)*

+

y(y2 ! x2)(x2 + y2)2

((x, y) &= (0, 0))

0 ((x, y) = (0, 0))

であった。ここで (x, y) * (0, 0) という極限を考える。極座標で表すと:y(y2 ! x2)(x2 + y2)2

=r sin "(r2 sin2 " ! r2 cos2 ")

r4=

sin "(sin2 " ! cos2 ")r

であり、(x, y) * (0, 0) というのは r * 0(" の取り方は任意)である。ところがこれは分子が 0 でなければ発散するから、fx(x, y) は連続ではないことになる。fy についても同様である。

• 練習: 他の例についても連続性を確かめよ。

23

Page 24: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

2.3 ここまでのまとめ

• 偏微分とは特定の方向への関数の増減の度合いを表したものであり、その方向への接線の傾きとなっている。

• (全)微分とは関数が局所的に1次式で近似できるという条件を示したものである。• 関数が微分可能なら「微分」dx, dy, dz の間に

dz =!f

!xdx +

!f

!ydy

という関係が成り立つ。これを座標として見れば接平面の方程式になる。• 微分可能ならすべての方向に偏微分可能である。• 接平面は、任意の方向への接線をすべて含んでいる。これが「微分可能」という条件の言い替えである。• fx, fy が存在し、それらが連続であれば微分可能である。実際にはこれは2つの異なる方向への偏微分であればよく、また連続性は一方が満たせば十分である。

2.4 高階の偏微分

fx, fy は x, y の関数だから、さらにこれらの偏導関数を考えることができる。これを2階の偏導関数と呼ぶ。変数が2つあるから、2階の偏導関数は微分する順番によって4種類ある。それらの表記法を下に示す(添字などの順番に注意)。

!

!x

2!f

!x

3=

!2f

!x2= fxx(x, y)

!

!y

2!f

!y

3=

!2f

!y2= fyy(x, y)

!

!y

2!f

!x

3=

!2f

!x!y= fxy(x, y)

!

!x

2!f

!y

3=

!2f

!y!x= fyx(x, y)

• 注 1: fxx などは fx2 と書く場合もある。

• 注 2: 本によっては !

!y

2!f

!x

3を上のように !2f

!x!yではなく、 !2f

!y!xのように x, y の順番を逆に

書く流儀もある。もっとも下に見るように、これは実質的には影響ない。

一般には fxy と fyx は異なることがあるが、一定の条件のもとでは両者は一致する。そのような十分条件の例として「シュワルツの定理」がある(教科書 p.181: 定理 5.2.3 に相当):

「点 (a, b) の近傍で fx, fy が存在し、さらに fxy, fyx が存在して連続なら、fxy(a, b) = fyx(a, b)」注: 実際には fxy, fyx の(一方が)存在して連続なら、もう一方も存在して連続であり、上の定理を満たす。

これを領域 D に広げると、fxy = fyx、つまり x による偏微分と y による偏微分の順序を交換していいことを意味している。

逆に fxy = fyx が成り立たない例を見ておこう。

• つまらない例だが、f(x, y) = |x| とする。すると fy(x, y) = 0、したがって fyx = 0 だが、fx(x, y) はx = 0 で存在しない。したがって当然、x = 0 では fxy(x, y) も存在しないから fyx とは一致しようがない。

• fx, fy がともに存在する例としては:

f(x, y) =

(x2 (x ' 0)0 (x < 0)

24

Page 25: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

がある。この場合は fyx は存在するが、fxy は x = 0 のとき存在しない。• fxy, fyx の両方が存在して一致しない例としては:

f(x, y) =

)*

+xy

x2 ! y2

x2 + y2((x, y) &= (0, 0))

0 ((x, y) = (0, 0))

がある(高木貞治:「解析概論」 p.58–59)。これの計算は少し面倒だが、結論を言えば fxy(0, 0) = !1、fyx(0, 0) = 1 となって、両者は原点では一致しない。

シュワルツの定理などが満たされれば、fxy = fyx となるから2階の導関数は(fxx, fyy と合わせて)実質的には3個あることになる。同様に、3階以上の高階の偏導関数を考えることができる。一般に n 階の偏導関数は 2n 通りあるが、上の

ように偏導関数が連続なら順序を交換でき、実質的には!nf

!rx!sy(r + s = n)

の形のものだけ、つまり n + 1 通りがあることになる。• 参考

f(x, y) の n 階偏導関数がすべて存在し、連続であるとき f(x, y) は Cn 級であると言う。上で言っているのは、関数が Cn 級であれば、n 階偏微分の順序は交換してよい、ということである。また無限回偏微分可能な関数を C$ 級と呼ぶ(微分できるためには連続でなければならないから、ここでは

連続性の仮定は省略できる)。

2.5 合成関数の偏微分(変数変換)

合成関数の偏微分、あるいは同じことだが変数変換の公式には2通りのものがある。以下ではいずれも、登場する関数に、必要となる微分可能性を仮定する。

2.5.1 1変数への変換

x = x(t)y = y(t)

のように x, y が t の関数として表される場合、f(x, y) は実質的には t の1変数関数になる:

z = f(x, y) = f(x(t), y(t)) = f%(t)

このとき、dz

dt=

!z

!x· dx

dt+

!z

!y· dy

dt

が成り立つ。つまり f の t による(常)微分は右辺のように表せる。(x(t), y(t)) は xy 平面上の曲線を表す。特に両端が一致する場合を「閉曲線」と言う。上は結局、f(x, y) を

この曲線の上にある部分に制限して、曲線に沿っての増減の度合いを t による導関数として求めていることにあたる。以下に例を示す。

• 特別な場合として x = t, y = b(b は定数)とすると、z = f(x, y) に対してdz

dt=

!z

!xこれは f(x, y) の y = b による断面に沿っての導関数が fx(x, b) に一致することを示している。y についても同様である。

• x = at + a0, y = bt + b0 とするとこれは方向 (a b) への直線の方程式であり、このときdz

dt= a

!z

!x+ b

!z

!y

25

Page 26: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

になる。これは方向 (a b) への偏微分(の定数倍)にあたる(拡大率は)

a2 + b2 であり、これが 1 なら偏微分に一致する)。

• 原点を中心とした半径 a の円周は x = a cos t, y = a sin t と表せる。このときdz

dt= a

2! sin t · !z

!x+ cos t · !z

!y

3

になる。たとえば z = xy のとき、上の公式によればdz

dt= a(x cos t ! y sin t) = a2(cos2 t ! sin2 t) = a2 cos 2t

となる。つまりこの関数は円周上では三角関数のグラフの形で上下している。一方 f%(t) = a2 sin t cos t

だから直接計算すると:dz

dt= a2(sin t cos t)" = a2 cos 2t

となって上と一致する。• 放物線 y = x2 に沿っての微分は:

dz

dx=

!z

!x

dx

dx+

!z

!y

dy

dx=

!z

!x+ 2x

!z

!y

となる。特に z = xy の場合、dz

dx= y + 2x2

(注: 放物線上では y = x2 だから、その上では元の関数は z = xy = x3 と表すことができ、また y = x2

を代入すると y + 2x2 = x2 + 2x2 = 3x2 = (x3)" となる。)ここでは x を2通りの意味(2次元座標の変数と放物線を表すパラメタ)として使っており、dz

dxと !z

!xとは別物であることに注意。

2.5.2 2変数への変換

x, y を1つの変数で表すと、xy 平面の曲線上でしか関数を考えることができなかった。平面上の領域での関数を考えるには2つの変数を用いる必要がある。そこで (x, y) * (u, v) という変数変換を考える。

x = x(u, v)y = y(u, v)z = f(x, y) = f(x(u, v), y(u, v)) = f%(u, v)

とすると:!z

!u=

!z

!x· !x

!u+

!z

!y· !y

!u!z

!v=

!z

!x· !x

!v+

!z

!y· !y

!v

が成り立つ。Lagrange の記法では

zu = zxxu + zyyu

zv = zxxv + zyyv

となる。これをベクトル・行列記法で書くと:"

#$!z

!u!z

!v

%

&' =

"

#$!x

!u

!y

!u!x

!v

!y

!v

%

&'

"

#$

!z

!x!z

!y

%

&' あるいは.

zu

zv

/=

.xu yu

xv yv

/.zx

zy

/

となる。右辺の行列を「ヤコビアン (Jacobian)」と呼び、J と書く。

• 注 1: この行列の行列式をとったものをヤコビアンと呼ぶこともある。

• 注 2: ヤコビアンは積分における変数変換で中心的な役割を果たす。

• 注 3: 逆に (u, v) * (x, y) という変換を求めるには、ヤコビアンの逆行列を使えばよい(練習)。

26

Page 27: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

変数変換で特に重要なのは、1次変換と極座標への変換である。

• 1次変換

x = au + bv

y = cu + dv

とすると、xu = a, xv = b, yu = c, yv = d となるから、

zu = azx + czy

zv = bzx + dzy

になる。例として

x = u + v

y = u ! v

z = f(x, y) = x2 ! y2

とすると、zx = 2x, zy = !2y で、公式から

zu = zxxu + zyyu = 2(x ! y)zv = zxxv + zyyv = 2(x + y)

となる。さらに

u =x + y

2v =

x ! y

2だから、これを上に当てはめると

zu = 4v

zv = 4u

になる。一方、

f(x, y) = x2 ! y2 = (x + y)(x ! y) = 4uv

だから、これから直接 zu, zv を計算しても上と同じ結果を得る。上の変換は、実は座標軸を %/4 回転して全体を

)2 倍したことに当たる。つまり z = x2 ! y2 という関数と、z = xy という関数は、回転と拡大/縮小

を除けば実質的には同じ関数である。

• 極座標

x = r cos "

y = r sin "

という極座標において、ヤコビアンは

J =

.cos " sin "

!r sin " r cos "

/

になる。つまり

zr = zx cos " + zy sin "

z" = !zxr sin " + zyr cos "

となる。逆行列 J#1 は

27

Page 28: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

J#1 =

"

#$cos " ! sin "

r

sin "cos "

r

%

&'

になるから、(r, ") * (x, y) への変換は

zx = zr cos " ! z"sin "

r

zy = zr sin " + z"cos "

r

となる。極座標は、関数が原点を中心として対称な場合、つまり

f(x, y) = g(x2 + y2)

と表される場合や、

f(x, y) =g(x, y)h(x, y)

で g(x, y), h(x, y) が同じ次数の同次式の場合などに有効である。

• 例

• z =-

x2 + y2

この場合、zx, zy を求めてから公式で zr, z" を求めてもよいが、計算が煩雑になる。これや上の例でもそうだが、一般に変数変換の公式を使うより、f(x, y) を f%(u, v)(あるいは f%(r, "))のように関数自体を行き先の変数を用いた形に直してから直接微分を計算したほうが楽なことも多い。今の場合、z =

-x2 + y2 = r だから、

zr = 1z" = 0

になる。これから逆に、上の J#1 を使って zx, zy を求めることもできる。

• z =x2 ! 2xy ! y2

x2 + y2

これも直接 zx, zy を求めるのは面倒だが、極座標を使えば 

z =r2 cos2 " ! 2r2 cos " sin " ! r2 sin2 "

r2 cos2 " + r2 sin2 "= cos2 " ! 2 cos " sin " ! sin2 " = cos 2" ! sin 2"

となる。したがって

zr = 0z" = !2(sin 2" + cos 2")

となる。これから逆に zx, zy を求めることもできる。ただし一般には、(r, ") で表された式を (x, y) に直すのは面倒なこともある。今の場合、上の J#1 を使って

zx =2 sin "

r(sin 2" + cos 2") =

2 sin "

r(2 cos " sin " + cos2 " ! sin2 ")

=1r4

· 2r sin "(2(r cos ")(r sin ") + r2 cos2 " ! r2 sin2 ")

=1

(x2 + y2)2· 2y(2xy + x2 ! y2)

のように、r cos ", r sin " の形に持っていくことが目標となる。

• 参考:fr, f" の意味fx, fy の場合には「x 方向、y 方向への偏微分」という言い方をした。それでは極座標の fr, f" の場合、r 方

向、" 方向といったものは何を指すのだろうか。簡単のため、

28

Page 29: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

f(r, ") = r

g(r, ") = sin "

という関数を考えてみよう(g は g(r, ") = " にしてもいいのだが、それだと1周してきたところで元に戻らなくなるので上のようにした)。すると簡単な計算で

fr(r, ") = 1 f"(r, ") = 0gr(r, ") = 0 g"(r, ") = cos "

となることがわかる。f は r の値が変わる、つまり原点からの距離が変わるにつれて値が変わるのに対し、"

の値が変わる、つまり x 軸となす角が変わっても変化しない。g はその逆である。これから、fr の「方向」は、原点と点 (r, ") を結んだ放射線の方向であり、f" はこれと直交する、つまり

原点を中心とした円の接線の方向であることがわかる。これが fr, f" の方向の意味である。もっとも fx, fy の場合には座標平面上、どこにいても同じ方向であったのに対し、fr, f" は場所によって座標平面上での方向が変わる。実際、極座標で (r, ") の点を直交座標で (x, y) とすると、r 方向は (x y)、" 方向は  (y ! x) という方向であり、場所によってどんどん変化する。もう1つ、「次元 (dimension)」の問題がある。ここで言う次元は「2次元、3次元」の「次元」ではなく、

物理などで言う単位の組み合わせ方のことである。直交座標の x, y は「長さ」という次元を持つ。したがってcm や km といった単位で測れるわけである。r も同様に長さの次元を持つ。しかし " は長さの次元は持たない。「角度」という次元を持つ、という言い方もできるが、普通にはこれを次元を持たない量、つまり「無次元量」として扱う。微分は割り算という計算(の極限)だから、

"y

"x

の分母が長さの次元を持てば、結果の y" は y に比べて長さの次元が1つ少ない値になる。たとえば y = x2 の場合、y は長さの次元 2 を持つが、微分した 2x の長さの次元は 1 である。これに対し、分母が無次元量であれば、微分しても長さの次元は変わらない。それが極座標のヤコビアンで、f" のほうには r が付き、fr のほうには付かない理由である。

なお、極座標の場合には原点での偏微分可能性に注意。たとえば f(x, y) =-

x2 + y2 = r だから fr = 1 だが、これは原点では偏微分不能(正確には、片側微分が可能)である。

2.6 高階の全微分

省略。

2.7 平均値の定理、テーラーの定理

平均値の定理については省略。(教科書 p.177 定理 5.1.11 参照:表し方にはいくつかの形がある)テーラー展開については1変数関数と同等に、f(a + x, b + y) を (a, b) を中心とした x, y の多項式に展開していくことができる(定理 5.2.4 参照)。f(x, y) を C$ 級とすると、(a, b) を中心とするテーラー展開は

f(a + x, b + y) = f(a, b)+ fx(a, b)x + fy(a, b)y

+12!

4fxx(a, b)x2 + 2fxy(a, b)xy + fyy(a, b)y2

5

+13!

4fxxx(a, b)x3 + 3fxxy(a, b)x2y + 3fxyy(a, b)xy2 + fyyy(a, b)y3

5

+ · · ·

のように進んでいく。各行を順に 0 次、1 次、.... n 次の項と呼ぶ。各次の展開式は2項展開の形をしていることに注意。n 次の一般項は

29

Page 30: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

n6

k=0

nCkfxkyn!k(a, b)xkyn#k

の形をしている。展開を適当な次数で打ち切れば、最後に剰余項が残る(上の f(...)(a, b) の (a, b) を (a + "x, b + "y)(" は

|"| < 1 である定数)で置き換えたもの)。また展開を無限に続けていって得られる級数が収束するなら、それが f(a + x, b + y) のテーラー展開になる。

2.8 極値・停留値問題

2.8.1 極大・極小

点 (a, b) の近傍 D で、(x, y) % D、(x, y) &= (a, b) となる任意の点 (x, y) に対し:

• f(x, y) < f(a, b) なら点 (a, b) は(狭義の)極大点、f(a, b) を極大値、• f(x, y) > f(a, b) なら点 (a, b) は(狭義の)極小点、f(a, b) を極小値、

とそれぞれ呼ぶ。また極大値・極小値をまとめて「極値」と呼ぶ(極大点・極小点をまとめて呼ぶ呼び方はないようである。「極点」とでもするか?)。不等号の <, > を (, ' で置き換えた場合には広義の極大点等と呼ぶ。広義の極大/極小点の場合、他に同

じ関数値をとる点があってもよいが、それより大きい/小さい値をとることがない、というわけである。同じ関数値をとる点が (a, b) を含む曲線上に並んでいたり、ある領域にわたって広がっている場合には、近傍をどんなに小さくとってもそれらの点がその中に含まれることになる。

2.8.2 停留点

以下では f(x, y) は必要な回数だけ微分可能とする。fx(a, b) = fy(a, b) = 0 である点 (a, b) を f(x, y) の停留点と呼ぶ。停留点での接平面は、xy 平面に平行である。つまり接平面の方程式は z = k の形をしている。このとき次のことが成り立つ:

「(狭義・広義の)極大点/極小点は停留点である。」

これは極大・極小点が関数の断面をとった1変数関数の上でも極大・極小点であること、そして1変数関数の場合の結果からしたがう。つまり x 方向への断面で極大であることから、fx(a, b) = 0 が得られる。他の場合も同様である。点 (a, b) が停留点であっても、(狭義の)極大・極小点とは限らない。これには広義の極大・極小点である場

合、鞍点 (saddle point) である場合などがある(特殊な場合としてそれ以外のものもある)。

• 注: 点 (a, b) が鞍点であるとは、ある方向に沿ってそれを通過すると (a, b) が極大点であり、別の方向に沿って通過すると極小点であることを言う。より一般的には、上の「方向(=直線)」を「曲線」に置き換える。

鞍点という名前は、馬の鞍(くら)がこの形をしていることによる。また山道の峠も鞍点の例である。道に沿って反対側に行く場合には峠が極大点になるが、一方山の稜線に沿って進むと峠は極小点になる。

(a, b) が鞍点の場合、少なくとも2本の等高線が (a, b) で交差することに注意(なぜか?)。

実は(狭義の)極大・極小点であっても停留点とは限らない。上の定理は「微分可能」という条件のもとでの話だから、極大・極小点で微分不能の場合、定義によってそれは停留点ではないからである。したがって一般の極値判定は、そういった場合まで含めて総合的に考える必要がある。

30

Page 31: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

2.8.3 微分による極値の判定

微分可能な場合に戻ろう。停留点では fx(a, b) = fy(a, b) = 0 だから、前節のテーラー展開の式は

f(a + x, b + y) ! f(a, b) = +12!

4fxx(a, b)x2 + 2fxy(a, b)xy + fyy(a, b)y2

5+ · · ·

と書ける。ここで左辺は点 (a, b) と (a + x, b + y) での関数値の増減を表し、正なら増加、負なら減少である。右辺で3次以上の項は、x, y が十分小さければ2次の項に比べて十分小さくなることに注意しよう。これは

limx!0

xn

x2= 0 (n > 2)

であることによる。そこで x, y が十分小さければ、2次の項の符号がそのまま左辺の符号になる、つまりf(a + x, b + y) と f(a, b) の大小を決定することになる。これが極値判定の手がかりとなる。

簡単のため:

fxx(a, b) = A

fyy(a, b) = B

fxy(a, b) = H

fxx(a, b)x2 + 2fxy(a, b)xy + fyy(a, b)y2 = Ax2 + 2Hxy + By2 = P

とおく。問題は P の符号がどうなるかである。

• まず A = B = 0 とする。このとき H = 0 だと P 全体が 0 になり、2次の項では判定がつかない。そこで3次以上の項を調べるなど、他の方法が必要となる。一方、H &= 0 なら P = 2Hxy となる。このとき P は x, y の値に応じて正にも負にもなる。特に y = x

に沿っては P = 2Hx2、y = !x に沿っては P = !2Hx2 となり、(x, y) = (0, 0) では一方が極大、もう一方が極小になる(どちらが極大かは H の符号による)。つまり (a, b) は鞍点になる。

• そこで A,B の少なくとも一方は 0 でないとする。一般性を失うことなく、A &= 0 としよう。すると

P = A

72x +

H

Ay

32

+AB ! H2

A2y2

8

という平方完成の形に分解できる。上の第1項は2

x +H

Ay

32

' 0

であるから、第2項が問題となる。分子の H2 ! AB はこの2次式の判別式である。「判別式」としては、こちらの形のほうが高校以来おなじみなのだが、教科書 p.184 定義 5.3.4 にある「ヘッセ行列式」は、この判別式の正負を逆にしたものである。どちらの符号をとるかは本によって様々であるが、ここでは混乱を避けるため、教科書に合わせて:

" = AB ! H2 = fxxfyy ! f2xy

と定義して用いていく。つまり " > 0 なら2次式は実根を持たず、" < 0 なら2実根を持つ。符号を混同しないように注意!

• " > 0 の場合:このとき第2項は

"A2

y2 ' 0

であり、等号が成り立つのは y = 0 の場合である。また第1項が 0 となるのは

x +H

Ay = 0

の場合、したがって(y = 0 から)x = y = 0 の場合である。つまり P は x = y = 0 の場合にのみ 0 になり、それ以外の場合は P の符号は A の符号と一致する。

31

Page 32: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

• 注: " = AB ! H2 > 0 だから、このとき AB > 0、つまり B も A と同符号で B &= 0 である。

そこで:• A < 0 の場合: このとき P < 0 であり、したがって f(a + x, b + y) ! f(a, b) < 0 である。これが(x, y) &= (0, 0) である任意の (x, y) で成り立つから、f(a, b) は(狭義の)極大である。• A > 0 の場合: 同様にして、このとき f(a, b) は(狭義の)極小である。

• " < 0 の場合:このとき

"A2

< 0

だから、! "A2

= C2 とおくと:

P = A

72x +

H

Ay

32

! C2y2

8= A

9x +

2H

A+ C

3y

:·9x +

2H

A! C

3y

:

となり、P は x, y の1次式の積に分解される。したがって P は直線

x +2

H

A+ C

3y = 0

x +2

H

A! C

3y = 0

の両側で符号が変わるから、(a, b) は鞍点になる。先ほどの A = B = 0, H &= 0 の場合も " = AB ! H2 = !H2 < 0 になるから、この場合に含めて考えることができる。

• " = 0 の場合:このとき

P = A

2x +

H

Ay

32

であり、直線

x +H

Ay = 0

に沿っては 0 になる。したがってこの直線上では P = 0 なので2次項だけでは f(a + x, b + y)! f(a, b)の大小の判定はつかず、3次以上の項を調べるなどが必要となる。また最初の A = B = H = 0 の場合もここに含めて考えることができる。

3次以上の項を調べる必要がある場合、x, y の3次式は x, y の符号によって正にも負にもなるから、3次項が 0 でなければ極大・極小点ではないことになる。一方、4次項の場合には符号が正または負に決まる場合があるから、そこで極大・極小になりうる。一般に初めて 0 でなくなるのが奇数次の項なら符号は正負いずれにもなるので極大・極小点にはなりえない。一方、初めて 0 でなくなるのが偶数次の項の場合は、その項の判別式によって極値かそうでないかを判定することになる。しかし一般に高次の項の判別式を求めてそこから計算するのは大変なので、関数の性質など、他の情報を利用して考えたほうがよい。

• 参考:「2次形式」上では直接的に論じたが、線形代数の立場から言えば:

P = Ax2 + 2Hxy + By2 = (x y)

.A H

H B

/.x

y

/

のように行列・ベクトルの積として表せる。この行列が教科書の「ヘッセ行列」である。このような変数(今の場合、x, y)の2次式で表される関係を「2次形式」と呼ぶ。線形代数の2次形式の理論は、ここで述べたような話を一般化して、一般の n 次元(n 変数)の場合についても扱うものであり、多変数関数の極値判定もそれに帰着される。

32

Page 33: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

2.8.4 極値の判定の手順

ある点が極値を与えるかどうかを判定する、より一般的には停留点として分類するには以下の手順をとる。

• 微分不能な点がある場合、直接的な考察によって極値等になるかを考える。たとえば

z =-

x2 + y2

の場合、(x, y) &= (0, 0) なら x2 + y2 > 0 だから、原点 (0, 0) は極小点(かつ関数全体の最小点)である。しかしこれは (0, 0) では微分不能だから、停留点ではない。

• 微分可能な場合、停留点を求める。これには

fx(x, y) = 0fy(x, y) = 0

という連立方程式を満たす (x, y) を求めればよい。これは一般には(高次の)非線形方程式、さらには超越方程式(三角関数や指数関数を含む方程式)になるので、解析的に解くのは容易ではない。解析的に解けない場合にはコンピュータなどを使って数値的に解を求める必要がある。

• 求められた停留点 (a, b) について、

fxx(a, b) = A

fyy(a, b) = B

fxy(a, b) = H

を求め、上の判定方法を利用する。判定方法をまとめておくと:" = AB ! H2 に対し:

• " > 0: A < 0 なら極大点、A > 0 なら極小点。• " < 0: (a, b) は鞍点。• " = 0: 2次項では判定がつかないので、他の方法で調べる。

• 最後の「他の方法」については、3次、4次の項ぐらいまでを調べる、関数の性質を直接的に解析する、数値計算で調べるなどの方法がある。

2.8.5 具体例

いくつかの具体的な例題をやっておこう。

• f(x, y) = x2 + y2

これは先ほどの-

x2 + y2 と同様に、直接的に答えを得ることもできるが、上の判定方法を使うと:

fx(x, y) = 2x

fy(x, y) = 2y

したがって fx = 0 となるのは x = 0 の場合、fy = 0 となるのは y = 0 の場合であり、停留点は (0, 0)ただ1つである。

fxx(x, y) = 2fyy(x, y) = 2fxy(x, y) = 0

したがって判別式は " = 2 · 2 ! 02 = 4 > 0。A = 2 > 0 だからこれは極小点になる。なお、解答には x, y 座標だけでなく、その点の関数値(極大・極小点なら極大・極小値)も書いておくとよい。今の場合、極小値は 02 + 02 = 0 である。

• f(x, y) = x4 + y4

これも結果は明らかではある。しかし今度の場合、微分による判定方法を使うと:

fx(x, y) = 4x3

fy(x, y) = 4y3

33

Page 34: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

したがって停留点は (0, 0) のみ。ところが

fxx(x, y) = 12x2

fyy(x, y) = 12y2

fxy(x, y) = 0

となって、(0, 0) では A = B = H = 0 になってしまう。したがって3次項を考えると:

fxxx(x, y) = 24x

fyyy(x, y) = 24y

他の3階偏微分は 0

これも (0, 0) ではすべて 0 になるので、さらに4次項を考える。

fx4(x, y) = fy4(x, y) = 24他の4階偏微分は 0

これから、2次の場合の判定法を応用すれば (0, 0) が極小点であることがわかる。

• f(x, y) = x2y ! 2xy2 + 4xy ! 3y

今度は数式を眺めていても埒があかないので計算してみる。

fx(x, y) = 2xy ! 2y2 + 4y = 2y(x ! y + 2)fy(x, y) = x2 ! 4xy + 4x ! 3

まず fx = 0 になるのは y = 0 か、x ! y + 2 = 0 の場合である。y = 0 の場合、fy は

fy = x2 + 4x ! 3 = 0

これは x = !2 ±)

7 が解である。したがって (!2 ±)

7, 0) という2つの停留点が得られた。x ! y + 2 = 0、すなわち y = x + 2 の場合、

fy = x2 ! 4x(x + 2) + 4x ! 3 = 03x2 + 4x + 3 = 0

これは実数解を持たないから、こちらには停留点はない。したがって停留点は最初に求めた2つになる。

fxx(x, y) = 2y

fyy(x, y) = !4x

fxy(x, y) = 2x ! 4y + 4

したがって (!2 ±)

7, 0) の2つをまとめて書いてしまうと(以下複合同順):

fxx(!2 ±)

7, 0) = 0fyy(!2 ±

)7, 0) = 8 + 4

)7

fxy(!2 ±)

7, 0) = ±)

7

判別式:

" = AB ! H2 = 0 · (8 + 4)

7) ! (±)

7)2 = !7 < 0

だから、どちらの場合も鞍点になる。関数値は .... 面倒なので省略。

• f(x, y) = (x2 ! y)(y2 ! x)

fx(x, y) = 2xy2 ! 3x2 + y

fy(x, y) = 2x2y ! 3y2 + x

そこで

2xy2 ! 3x2 + y = 02x2y ! 3y2 + x = 0

34

Page 35: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

という連立方程式を解く。一般にこういった非線形連立方程式の場合、型通りの解き方は(少なくとも人間にとっては)ないので、いろいろ試行錯誤する必要がある。まず (x, y) = (0, 0) が解であるのは明らか。また一方が 0 ならもう一方も 0 になる。したがって、x &= 0, y &= 0 という解を探そう。第1式に x(&= 0)、第2式に y(&= 0) を掛けると:

2x2y2 ! 3x3 + xy = 02x2y2 ! 3y3 + xy = 0

上から下を引くとうまい具合に項が打ち消し合って:

3(y3 ! x3) = 0

これは実数の範囲では y = x だけを解に持つ。そこでこれを元の式に代入すると:

2x3 ! 3x2 + x = 0x(2x2 ! 3x + 1) = x(x ! 1)(2x ! 1) = 0

y = x だから、(x, y) = (0, 0), (1, 1), (1/2, 1/2) が解になる。(0, 0) は除外したから(あるいは最初のものとダブっているから)、停留点は3つあることになる。

fxx(x, y) = 2y2 ! 6x

fyy(x, y) = 2x2 ! 6y

fxy(x, y) = 4xy + 1

• (0, 0) の場合A = B = 0、H = 1 だから、これは鞍点になる(関数値 0)。• (1, 1) の場合A = B = !4、H = 5 で、判別式は:

" = (!4) · (!4) ! 52 = !9 > 0

したがってこれは鞍点になる(関数値 0)。• (1/2, 1/2) の場合A = B = !5/2、H = 2 で、判別式は:

" = (!5/2) · (!5/2) ! 22 = 9/4 > 0

したがってこの点は極大点で、極大値は 1/16 となる。

• 参考: この関数は、y = x2 と x = y2 という2つの(互いに直角な)放物線の上で f(x, y) = 0 になる。また (x2 ! y)、(y2 ! x) のいずれも項も、放物線の「内側」、つまり狭い側の領域で正になり、外側では負になる。したがってそれを掛け合わせた f(x, y) は、下図の “+” とある領域では正、“!” とある領域では負になる。上の極大点はこの真ん中の正の領域での極大点であり、2つの鞍点は両方の放物線の交わる点に対応している。

−1 −0.5 0 0.5 1 1.5−1

−0.5

0

0.5

1

1.5

+

+

+

35

Page 36: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

• f(x, y) = (x ! y)2

これは広義の極小になる例だが、どうなるかをやってみよう。

fx(x, y) = x ! y

fy(x, y) = y ! x

したがって、x = y であれば停留点になる。

fxx(x, y) = 1fyy(x, y) = 1fxy(x, y) = !1

だから " = 1 · 1! (!1)2 = 0 である。そこで2次項まででは判別がつかないわけだが、これ以上続けても埒があかない。3次以上の項ではすべての偏導関数が 0 になってしまうからである。出発点に戻ると、x! y = t と置けば f(x, y) = t2 であり、これは t = 0 のとき極小値 0 をとる。その極小値をとる点が y = x という直線全体の上に広がっている、つまり広義の極小というわけである。

• 練習: f(x, y) = x2y2 について同様の分析をしてみよ。

• f(x, y) = (y ! x2)(y ! 2x2)これも判別式 " = 0 になる例である。実際:

fx(x, y) = 2x(4x2 ! 3y)fy(x, y) = 2y ! 3x2

fx = 0 となるのは x = 0 か y = (4/3)x2 の場合である。前者の場合、fy = 0 になるには y = 0 でなければならない。また後者の場合、

fy =83x2 ! 3x2 = !1

3x2 = 0

だから x = 0 となり、最初の場合に戻る。つまり停留点は (0, 0) のただ1つである。

fxx(x, y) = 6(4x2 ! y)fyy(x, y) = 2fxy(x, y) = !6x

だから、(0, 0) において " = 0 · 2 ! 02 = 0 になる。先に進む前に、奇妙なことを観察しておこう。x = 0のとき f(x, y)は f(0, y) = y2 であり、また y = mx

という直線に沿っては

f(x, y) = (mx ! x2)(mx ! 2x2) = x2(m ! x)(m ! 2x)

だから、十分小さな x、具体的には |2x| < |m| である x に対しては (m! x) と (m! 2x) は同符号になり、したがって x &= 0 なら f(x, y) > 0 になる。f(0, 0) = 0 だから、(0, 0) から出発してどの方向に(直線的に)進んでも、ある範囲内で関数は必ず増加する。すると f(x, y) は (0, 0) で極小値をとるように思えるだろう。しかしそうではない。実際、x2 < y < 2x2 の範囲では f(x, y) < 0 になり、y < x2, y > 2x2 の場合にはf(x, y) > 0 になる。そのような点いずれも (0, 0) のいくらでも近くに存在するから、(0, 0) のいくらでも近くに、関数値が正になるところもあれば負になるところもある(次ページ図参照)。つまり結論を言えば、(0, 0) は(一般的な意味での)鞍点である。

y = (1 + &)x2 (0 < & < 1)

という放物線に沿っての f(x, y) は:

f(x, y) = (y ! x2)(y ! 2x2) = &x2 · (& ! 1)x2 = &(& ! 1)x4

となる。&(&! 1) < 0 だから、これは x = 0 のとき 0 で、それ以外では負になる。つまり、どのような「直線」に沿って (0, 0) に近づいても関数は減少するが、上のような放物線に沿って (0, 0) に近づくと関数は「増加」するのである。言い換えると、直線に沿った変化を見るだけでは一般には不十分である。

36

Page 37: 1 多変数関数(2変数関数)ralit.sakura.ne.jp/note/2013/2013.05.24(%e9%87%911-2)%20...1 多変数関数(2変数関数) 1.1 2変数関数 高校や基礎数学II で扱ってきた1変数関数に対し、入力値が2つ(あるいはそれ以上)ある2変数関数(多

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−1

−0.5

0

0.5

1

1.5

2

2.5

3

+

+

−−

• f(x, y) = sin x cos y

fx(x, y) = cos x cos y

fy(x, y) = ! sinx sin y

fx = 0 となるのは cos x = 0 または cos y = 0 のとき、すなわち:

x =%

2+ n% または y =

%

2+ m%

のとき(n,m は整数:以下同様)。fy = 0 となるのは sinx = 0 または sin y = 0 のとき、すなわち:

x = n% または y = m%

のとき。組み合わせると:

(x, y) =0n%,

%

2+ m%

1.............. (A)

または

(x, y) =0%

2+ n%, m%

1.............. (B)

のとき停留点になる。

fxx(x, y) = fyy(x, y) = ! sin x cos y

fxy(x, y) = ! cos x sin y

だから、

" = (! sin x cos y)2 ! (! cos x sin y)2

= (cos x sin y + sin x cos y)(sin x cos y ! cos x sin y) = sin(x + y) sin(x ! y)

したがって停留点では " は:

sin0(n + m)% +

%

2

1sin

0(n ! m)% ! %

2

1.............. (A")

または

sin0(n + m)% +

%

2

1sin

0(n ! m)% +

%

2

1.............. (B")

になる。各々の sin は ±1 のいずれかである。n + m, n ! m の偶奇は一致するから:

• (A’) の場合、2つの sin の符号は異なるから(一方 +1 でもう一方が !1)、" = !1 < 0 となり鞍点になる。

• (B’) の場合、2つの sin の符号は一致するから(ともに +1 か、ともに !1)、" = 1 > 0 となる。このとき m + n が偶数なら極大、奇数なら極小になる。

詳細は練習とする。

37