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

多変数関数(2変数関数)
1
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
のように表すことができる。また 7→ を使えば
f : x, y 7→ z
のように書ける。もっともこれだと少しまとまりが悪いので、
f : (x, y) 7→ z
のように主変数をカッコで囲った「入力値の組」として表すのが普通である。
2変数関数の具体例はいろいろある。
• 氏名、つまり姓、名が与えられれば特定の人が決まる:
(姓,名) 7−→ 人
もっとも実際には同姓同名の人がいるから、姓名を与えただけでは人物が特定できるとは限らない。そ
の意味では「関数」としては問題がある。
• 大多数の自動販売機では、コインを投入するだけでなく、商品選択ボタンを押して初めて商品が出てく
る。したがってこれは:
(金額,選択ボタン) 7−→ 商品
という2変数関数である。もっとも実際には釣り銭も出るから、出力のほうも2つの値があるとは言える。
• ある地点における標高。
平面上の地点は x, y 2つのパラメタを指定すれば決まる。(実際には地表面のように球面上でもよい)。
x, y は平面座標でもいいし、緯度・経度のようなものでもよい。その各地点での標高を z とすればこれは
(x, y) 7→ z
という関数になる。この場合、地形そのものが関数のグラフになっている。
うるさいことを言えば、z は一意に決まる必要があるから、ハングオーバー(傾き 90 以上の崖)があっ
てはならない(下図で縦方向を上向きとすると、x の地点では標高が一意に決まらない)。
x
1
常に f (x, y) = f (y, x) が成り立つ、つまり変数の順番を区別する必要のない関数を「対称関数」と呼ぶ。
1
• 与えられた時刻におけるある地点の気温、気圧等。
これは基本的には上の標高と同じである。気圧の場合、等高線を書けば「天気図」になる。
さらに時刻や高さごとの値まで考えようとすれば、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項係数 n Cr は特殊な中置記法と言えるだろう。絶対値 |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
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) が連続関数の場合、そのグラフは空間内の曲面になる(連続
関数、グラフについては後述)。
2
また点 P(x, y)(注 )を(位置)ベクトル 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) の断面」と呼ぶことにする(これはここだけの用語だ
から、一般に通用するとは限らない)。またこれを f x=a (y) と書くことにする。つまり
f x=a (y) = f (a, y)
2 これは「関数 P(x, y)」という意味ではなく、
「点 P の座標が (x, y)」という意味である。点を表すには P のようにローマン体を用
い、P のようなイタリック体は用いない。
3
である。さらに x による断面ではあるが、a の値を特定しないときには f x (y) と書くことにする。同様にし
て、y による断面:f y=b (x) = f (x, b),
f y (x) などを考えることもできる。
• 補足: さらには任意の方向、つまり直線 ax + by + c = 0 による断面や、任意の曲線 g(x, y) = 0
(パラメタ表示すれば x = x(t), y = y(t))による断面を考えることもできる。
• 例: f (x, y) = xy の x = a による断面は f x=a (y) = ay であり、特に a = 0 のときは f x=0 (y) = 0
という定数関数、a = 1 のときは f x=1 (y) = y という恒等関数になる。
図形的には f x=a (y) は z = f (x, y) のグラフを平面 x = a で切断したときの切り口であり、1変数関数
z = f x=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−(x
2
+y 2 )
という関数を用いる。これは極大・極小点を1つずつ持つ関数である(練習)。以下の図ではこの関数のデー
タを matlab で以下のようにして作成してある。
>> [x,y] = meshgrid([-2:0.1:2]);
>> z = x .* exp(-x.^2 - y.^2);
1.4.1
断面の図を重ねる
まず f (x, y) の断面、f x (y), f y (x) を考えてみよう。これらは1変数関数だから、ふつうの意味でのグラフ
が描ける。下の左は x = 1 での断面 z = e−1−y 、右は y = 0 での断面 z = xe−x のグラフである。
2
2
x = 1 での断面
y = 0 での断面
1
0.5
0.9
0.4
0.8
0.3
0.7
0.2
0.6
0.1
0.5
0
0.4
−0.1
0.3
−0.2
0.2
−0.3
0.1
0
−2
−0.4
−1.5
−1
−0.5
0
0.5
1
1.5
−0.5
−2
2
4
−1.5
−1
−0.5
0
0.5
1
1.5
2
0.1 置きの断面を重ね合わせて描くと下のようになる。なお plot(z) のようにあるのはそれを描くための matlab
のコマンドである。
x による断面
plot(z)
y による断面
plot(transpose(z))
0.5
0.5
0.4
0.4
0.3
0.3
0.2
0.2
0.1
0.1
0
0
−0.1
−0.1
−0.2
−0.2
−0.3
−0.3
−0.4
−0.4
−0.5
0
5
10
15
20
25
30
35
40
−0.5
45
0
5
10
15
20
25
30
35
40
45
このままでは立体的な様子はうかがえないが、各断面を縦方向に少しずつずらしながら表示すると次のように
なる。これだといくらか立体感が感じられるだろう。
plot(z + x*0.3)
plot(transpose(z + y*0.3))
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.2
0
0
−0.2
−0.2
−0.4
−0.4
−0.6
−0.6
−0.8
0
5
10
15
20
25
30
35
40
−0.8
45
0
5
10
15
20
25
30
35
40
45
このような表示の仕方は、時間とともに変化する関数を図示する場合などによく用いられる。
1.4.2
メッシュ図
メッシュ図(別名ワイヤーフレーム図)とは、簡単に言えば上の断面の図を x, y の両方向に作成し、つない
だものである。作り方は下の通り。
2
1.5
1.5
1
1
0.5
0.5
0
1
0
1
0.5
1
0.5
0.5
0
1
0.5
0
0
−0.5
0
−0.5
−0.5
−1
−0.5
−1
−1
5
−1
まず、ある方向(視点)から見た座標系を用意し、xy 平面を格子状に区切る(上の左図)。各格子点 (a, b)
から縦(z 方向)に、関数値 f (a, b) だけ離れた点をプロットする(右図)。これをすべての格子点について実
行し、格子上で横または縦に隣り合ったプロット点をつないでいく。
これは関数の曲面を格子上で平面で近似し、その輪郭を描いたことにあたる。作成の手間はともかくとして、
方法自体は単純だが、それでも結構立体感のある図ができ、グラフの大まかな様子は見て取れる。
• 隠線・隠面消去
実はこれだけではまだ、これまで見てきたようなメッシュ図にはならない。面の裏側にある線も透けて見え
てしまうからである。これでは見づらいので、裏側にある線は消す必要がある。これを隠線消去(裏側の面を
消す場合には隠面消去)と言う。下の左には上の通りに描いたメッシュ図、右には隠線消去したメッシュ図を
示す。
mesh(x,y,z)
hidden off
mesh(x,y,z)
hidden on
0.5
0.5
0
0
−0.5
2
−0.5
2
1
2
1
1
0
2
1
0
0
−1
0
−1
−1
−2
−1
−2
−2
−2
隠線・隠面消去をどのように行うかはコンピュータグラフィックスの重要な課題であり、様々な手法が研究・
開発されてきた。今の場合には、メッシュを奥行きの遠い側から描いていき、手前側の面に重なる線は重なっ
た部分を消してしまえばそのまま隠線消去ができる。言い換えれば、手前側の面を次々に塗りつぶしていけば
よい。したがって隠線消去は比較的単純に実行できるが、もっと入り組んだ複雑な場合には隠線消去はかなり
難しくなる。
隠線消去のため、1つの方向からの図だけでは必ずしもグラフの全容がつかみにくいこともある。その場合
には、いくつかの視点からの図を併置するとよい。下に同じグラフを異なる視点から見た例を示す。GUI 上で
は、マウス操作によって座標軸を回転させることもできる。
view(20,30)
view(50,40)
0.5
0.5
0
0
−0.5
−2
2
1
−0.5
−2
1.4.3
−1.5
2
−1
1
0
0
0
−1
−0.5
−1
0
0.5
1
1.5
2
1
−2
−1
2
−2
立体的な見取り図を作る
ふつうの絵や写真や漫画、あるいは手書きで描く立体の見取り図にあたる。滑らかな曲面だと単に輪郭を書
いただけでは様子がわからないので、一定方向から光を当てて陰影をつけたりする(陰影と言っても、面の明
6
るさの濃淡を示すだけで、影そのものはふつうは描かない(かえって見にくくなるので))。また等高線代わり
に、高さに応じて色(あるいは濃淡)をつける方法もある。
コンピュータで見取り図を描く場合、基本になるのは上のメッシュ図(のデータ)である。メッシュ図では
格子上の部分を平面で近似していた。表面を滑らかに見せるにはそれだけ多くの点のデータが必要となるが、
メッシュそのものは比較的粗くとり、汎用のグラフィックス機能で間を滑らかにつなぐ(補間する)こともで
きる。この場合、補間部分は関数値そのものを用いているわけではないので、元のグラフが忠実に再現される
かには注意する必要がある。
matlab で見取り図を描くコマンドとしては
• surf(x,y,z): 色(濃淡)を高さにしたがってつける。
• surfl(x,y,z): ある方向から光を当て、各点での明るさにしたがって色(濃淡)をつける。
などがある(光の方向の指定法は省略)。また面の描き方は shading コマンドで指定する。なお、何も指定し
なければ shading faceted になるので、これは省略してもよい。
surf(x,y,z)
shading faceted
surfl(x,y,z)
shading faceted
0.5
0.5
0
0
−0.5
2
−0.5
2
1
2
1
1
0
2
1
0
0
−1
0
−1
−1
−2
−1
−2
−2
surf(x,y,z)
shading interp
−2
surfl(x,y,z)
shading interp
0.5
0.5
0
0
−0.5
2
−0.5
2
1
2
1
1
0
2
1
0
0
−1
−1
−1
−2
1.4.4
0
−1
−2
−2
−2
等高線図
上はいずれも、グラフの立体的な見取り図を作るものだった。これと別の方法として、平面上に関数の等高
線を描くものがある。地図の等高線はその典型的な例だし、天気図の等圧線は、高さの変わりに気圧について
の等高線である。
matlab で等高線を描くには、contour(x,y,z,n) とする。n は等高線の本数で、省略すると自動設定され
る。下に本数の異なる等高線図を示す。
7
contour(x,y,z)
contour(x,y,z,30)
axis(’square’)
axis(’square’)
2
2
1.5
1.5
1
1
0.5
0.5
0
0
−0.5
−0.5
−1
−1
−1.5
−1.5
−2
−2
−1.5
−1
−0.5
0
0.5
1
1.5
−2
−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.4
0.3
0.5
0.2
0.1
0
0
−0.1
−0.5
−0.2
−0.3
−1
−0.4
2
1
2
−1.5
1
0
0
−1
−2
−2
1.5
−1.5
−1
−0.5
0
0.5
1
1.5
−1
−2
2
−2
関数の極限
1変数関数の極限は下のように定義されていた。
• lim f (x) = α
x→a
∀ε > 0 に対し、十分小さく δ > 0 をとれば、すべての x ∈ R:0 < |x − a| < δ に対し、|f (x) − α| < ε
8
ここで絶対値記号: |a − b| は(数直線上での)2点 a, b の距離を表している。
これを2次元に拡張しよう。記法を簡単にするため、2次元平面上の座標を(位置)ベクトルで表す。つま
り点 A(xa , ya )、B(xb , yb ) 等を、ベクトル:
(
)
(
)
xa
xb
a=
b=
ya
yb
と同一視する。ベクトル a の長さは ∥ a ∥ と表す(これを「ノルム (norm)」とも呼ぶ)。したがって2点 a, b
の間の距離は ∥ a − b ∥ となる。明らかに ∥ a − b ∥=∥ b − a ∥ である。
これを使うと、2変数関数の極限は下のように表せる。
• lim f (x) = α
x→a
∀ε > 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, θ) = θ という関数は、θ が一定のとき、つまり原点から放射状に延びる直線上では一定値をとる
から、
lim f (r, θ) = lim θ = θ
r→0
r→0
である。つまり特定の方向から近づけば r → 0 の極限は確定するが、それらの値は方向によってすべて異なっ
ており、したがって関数全体としての原点に近づく極限値は存在しない。
後で見るように、f (r, θ) は原点で不連続である。
1.5.1
距離
2点 P(xa , ya ), Q(xb , yb ) ただし:
(
)
(
)
xa
xb
a=
b=
ya
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) (三角不等式)
たとえば
1
dp (a, b) = (|xa − xb |p + |ya − yb |p ) p (ただし p ≥ 1)
9
で表される dp は距離の公理を満たす。p = 2 の場合、つまり d2 はユークリッド距離に他ならない。また
d1 (a, b) = |xa − xb | + |ya − yb |
d∞ (a, b) = lim dp (a, b) = max(|xa − xb |, |ya − yb |)
p→∞
なども距離の例である。d2 距離(ユークリッド距離)で原点からの距離が等しい点は下左図のように同心円状
に並ぶのに対し、d1 距離では下中図のように、菱形(正方形を 45◦ 回転したもの)、d∞ 距離では下右図のよ
うに、正方形になる。
2
2
2
1.5
1.5
1.5
1
1
1
0.5
0.5
0.5
0
0
0
−0.5
−0.5
−0.5
−1
−1
−1
−1.5
−1.5
−1.5
−2
−2
−1.5
−1
−0.5
0
0.5
1
1.5
−2
−2
2
−1.5
−1
−0.5
0
0.5
1
1.5
−2
−2
2
−1.5
−1
−0.5
0
0.5
1
1.5
2
これらは、一方を十分小さくすればもう一方に含まれるようにできるという点で、収束に関しては同じ結果
をもたらす。特に点列の収束について、
(
)
xn
xn =
yn
に対し、
(
lim xn = a =
a
n→∞
)
b
⇐⇒
lim xn = a かつ
n→∞
lim yn = b
n→∞
となる。これの証明には
d∞ (a, b) ≤ d2 (a, b) ≤ d1 (a, b)
であることを用いる(練習)。
1.6
連続関数
2変数関数 f (x, y) が点 (a, b) で連続とは、
lim
f (x, y) = f (a, b)
(x,y)→(a,b)
であることを言う。これも1変数の場合の定義:
lim f (x) = f (a)
x→a
とほとんど同じである。しかし前と同様、(x, y) → (a, b) という近づき方には多様性があり、上はそのすべて
の場合について、それが成り立つことが求められている。
1変数の場合、a への近づき方は右側から(x → a + 0)、左側から(x → a − 0)の2通りしかなく、これ
に応じて不連続点には以下の場合がある。
•
lim f (x) も lim f (x) も存在するが、 lim f (x) ̸= lim f (x)。
x→a−0
x→a+0
x→a−0
x→a+0
この場合、f (a) がそのどちらかに等しければ片側連続(右側連続ないし左側連続)になる。また f (a) が
どちらにも等しくない場合には、x = a は孤立した不連続点になる(つまり十分小さく ε, δ をとれば、
0 < |x − a| < δ のとき |f (x) − f (a)| > ε になる)。
• lim f (x), lim f (x) の一方しか存在しない。
x→a−0
x→a+0
この場合、上に戻って極限が存在する側で片側連続である可能性はある。
10
•
lim f (x),
x→a−0
lim f (x) のいずれも存在しない。
x→a+0
1
1
たとえば f (x) = , f (x) = sin など。いずれも f (0) = 0 と定義しておく(値は実際には何でもよい)。
x
x
1
1
f (x) = の場合には x = 0 は孤立した不連続点になるが、f (x) = sin の場合には原点のどんな近く
x
x
にも f (x) が f (0) = 0 にいくらでも近い(それどころか f (x) = 0 である点さえ)点が存在するが、そ
れでも原点では不連続なのである。
2変数関数の場合にはこのような簡単な分類はできない。a に近づくたった1つの方向からだけでも不連続
な場合には全体が不連続になるからである。
{
1 ((x, y) = (0, 0))
•
f (x, y) =
0 ((x, y) ̸= (0, 0))
これは原点であらゆる方向から不連続であり、原点は孤立した不連続点である。
{
1 (xy = 0)
•
f (x, y) =
0 (xy ̸= 0)
これは原点で x{軸、y 軸の方向にのみ連続であり、他のあらゆる方向には不連続である。
1 (xy = 0, ただし (x, y) ̸= (0, 0))
•
f (x, y) =
0 (xy ̸= 0 または (x, y) = (0, 0))
今度は原点で x 軸、y 軸の方向にのみ不連続であり、他のあらゆる方向には連続である。
• 前に掲げた f (r, θ) = θ (0 ≤ θ < 2π) の場合、 lim f (r, θ) = θ だから、原点では不連続である。
r→0
仮に f (0, θ) = 0 と定義すると、原点では θ = 0 の方向にのみ連続であり、他のすべての方向では不連続
である。一方、θ = 0 の上の点は(原点も含めて)すべて不連続点である。実際:
lim f (r, θ) = 2π
θ→2π
f (r, 2π) = f (r, 0) = 0
上の例にもあるが、2変数関数の場合、不連続点が連なって曲線(直線も含む)をなす場合もある。むしろ
このほうが2変数関数の不連続性としては認識しやすいだろう。この場合、
「不連続線」の両側では関数がそれ
ぞれ連続であるなら、不連続線は垂直に落ちる「崖」のようなイメージになる。
• 参考: matlab のような数学ソフトで不連続関数の図を描くのは意外と厄介である。上のような不連続線
に沿っては、上の側と下の側の両方の関数値を指定しないと「垂直な崖」はできないが、メッシュ図な
どにはそのような2値指定をする機能がないからである。
「ある領域において連続な関数」は「領域の各点において連続な関数」として定義される。「ある点で連続」
というのは極めて局所的な性質であるのに対し、それを領域の各点に適用するだけで、「グラフはつながった
曲面になる」といった大域的な性質が成り立つことは、不思議と言えば不思議である。
なお有界な閉領域での連続関数については:
• 最大・最小定理: 有界な閉領域で連続な関数は領域内で最大値・最小値をとる。
• 一様連続定理: 有界な閉領域で連続な関数は領域内で一様連続である。
が成り立つのは1変数関数の場合と同様である。これらは2変数関数の微積分、特に積分で大きな役割を果
たす。
• 練習
• 有界閉領域で不連続な関数で、最大・最小値をとるもの、とらないものの例を示せ。
• 開領域で連続だが一様連続でない関数の例を示せ。
11