2017年7月25日火曜日

逆関数や合成関数の概念



高校1年に2次関数を学びましたが、
高校2年になると、3次関数や4次関数や分数関数を学び、
三角関数も学びました。

そして、指数関数や対数関数も学びます。

高校2年では、このように多くの関数を学びますが、
以下の関数の概念も覚えましょう。

「微分積分学入門」(著者:横田 壽)の18ページ近くに、関数の定義が書いてあります。
 (注:横田教授が芝浦工業大学を退官したため、この教科書を無料で掲載していたWebページが無くなりました。この本は書店で購入できます。

(大学1年生向けの参考書の「やさしく学べる微分積分」(石村園子) ¥2000円 も、間違いが無く、高校2年生が初めて関数及び微分積分を勉強するのにも、適切な参考書だと思います)

1.1 関数の定義(definition of function)
 2 つの集合の間の関係を決める規則を関数といいます.ここでは,実数の集合を考えます.
Rを実数全体の集合とします.
ある実数の集合D に属する各数x に対して,実数y が1 つ定まるような規則f を、
D からR への1 価関数(single-valued function),または、1変数(の1価)関数(←「やさしく学べる微分積分」2ページ)、または単に関数といいます.

「微分積分学入門」(著者:横田 壽)(又は、「やさしく学べる微分積分」(石村園子))は、とても明瞭(かつ、正確)に数学の関数・極限・微分・積分を説明してくれていますので、
高校2年生でも、関数や微分・積分がよくわかるようになると思います。

(補足)
 関数の定義によると、実数の変数xに対して、複素数のyの値の関数値f(x)を与える関係f(x)も関数です。 

 関数f(x)=xというように、数xを使って値を求める演算が関数であるというように感じていた人も多いと思います。その様に変数xの演算によって定義されている関数は、xが複素数であっても、その演算が定義され、演算可能なあらゆる数に対して演算結果の値を関数値として対応付ける、あやゆる数に対して定義された関数です。

 上で定義した関数の定義では、変数xの演算の内容が明確で無くても、変数xに対してf(x)の値を対応付ける関係さえあれば、それも関数であると定義して、関数の概念を広く定義しています。
 そのように関数の概念を広くした結果、変数xに対応する関数値を定義する変数xの集合の範囲(変数xを想定する範囲)を明確化する(変数xの「定義域」を指定する)必要が生まれました。

 それにより、有理数の変数xに対してのみ、実数のyの値の関数値g(x)を与える関係g(x)も関数であると定義できます。その関数の変数xの定義域は「有理数」であって、その変数xの定義域には無理数は含まれていません。

 また、変数xを実数に限り、変数xが実数以外の複素数の場合については考えない関数も定義できます。(そういう関数の方が、普通に考えられている関数のイメージに近いと思います。)

 また、関数は変数xの定義域の各変数値に対して関数値f(x)を対応付けさせる関係の事ですので、f(x)をxで演算する演算が同じであっても、定義域が異なれば異なる関数である事になり、関数が変数xの定義域の数だけ複数の関数が作れる事になります。


 後に学ぶ、微分の定義によると、変数xのある値の近傍の全ての実数の値に対してg(x)の値が定義されている事が微分係数g’(x)を計算できる前提条件になります。そのため、有理数の変数xに対してのみ定義されている(無理数の変数xに対して定義されていない)関数g(x)は微分可能ではありません。
また、極限の定義においても、変数xの定義域が有理数のみであって無理数を含まない関数には極限がありません。

ただし、関数g(x)の変数xの定義域は、より広い数の概念である複素数にまで定義域を広くしないでも、定義域を実数のみにしても、その関数g(x)に極限があり、また、微分係数g’(x)も計算できます。

【問題1】
関数f(x)は、整数mと、0以外の整数qに関して、
有理数x=m/qの場合に、
f(x)=0
となる関数である。それ以外のxの場合にこの関数f(x)は値を持たない。
この関数f(x)は、
x→0における極限値を持つか?

【解答】
 この関数f(x)の値を与える有理数x=m/qが何であっても、その有理数xの値より0に近い無理数yが必ず存在する。そして、その無理数yに対して値f(y)を持たない。
よって、この関数f(x)は、xを限りなく0に近くしても関数値が定まらず、極限値が存在しない。
(解答おわり)

(実数が、直線上にすきま無く並べる事ができる)
 有理数全体は、x座標を表す直線上に密集している。しかし、有理数全体だけでは、直線上にすきま無く並べることができない。
 無理数全体も、x座標を表す直線上に密集している。しかし、無理数全体だけでは、直線上にすきま無く並べることができない。
 実数全体が、直線上にすきま無く並べることができるのである。

【連続関数の正しい定義】
 特に、微分積分の命綱を握っているのが
連続関数の概念です。
その連続関数の高校数学での定義が間違っているので注意が必要です。
 連続関数の定義が間違っているので、連続関数という言葉を使ったあらゆる定理が無意味になります。また、その無意味になった定理を少しでも使ったあらゆる定理が無意味になるので、微分積分が分からなくなります。

 その連続関数の正確な定義を把握しましょう。 

下図の3つの原始関数F(x)が連続関数です。
1つながりのグラフが1つの連続関数です。
上図のグラフでは3つの別々の連続関数があります。

 連続関数について、しっかりした説明が欲しいと思っている人には、参考書として、学生が微分積分を無駄なく学べるよう工夫がこらされている大学生向けの参考書:小平邦彦「[軽装版]解析入門Ⅰ」をお勧めします。その本の80ページから88ページまで親切丁寧に連続関数を説明していますので、是非、そのページだけでも一読する事をお勧めします。

(微分積分を使いものにする言葉について)
 数学者の小平邦彦「[軽装版]解析入門Ⅰ」では、微分積分を使いものになる道具にするため、数学の定理で連続関数を使うときに必ず使う形に整合させて連続関数を定義しています。
「定義域」という言葉を使うかわりに、
中学生以来「定義域」という言葉で感覚的に示して来た、
実数が完全に埋まっている範囲を意味する「区間」という概念を「定義域」に置き換えて使い、連続関数の定義を明確に
(1)第1の定義の連続関数
(2)第2の定義の連続関数
に限っています。
すなわち、連結区間で連続な1つながりの関数のみを連続関数と定義し、それ以外の連続関数の定義を排除しています。

 また、使いものにならなくなっている「不連続点」と言われている言葉を使わず、微分積分の概念の理解のために役立つ言葉で、連続点以外の点をあらわす「連続で無い点」という言葉を使っています。そのため、当ブログでも、小平邦彦「[軽装版]解析入門Ⅰ」に従って、「不連続点」という言葉は使わず、「連続で無い点」という言葉を使います。
(不連続点の当初の定義も、連続で無い点の定義と同じでした。藤原松三郎の「微分積分学 第1巻」によると、「f(x)がx=ξで連続でない場合に、x=ξをf(x)の不連続点という。」と定義されていました。)

(注意)連続関数の定義には、
(1)第1の定義の連続関数:
(連結した)開放された区間(a<x<b)で連続な関数f(x)。その開放区間内のどの点でも完全に連続な関数。
すなわち、両端が開放された連結区間で1つながりに連続する関数。
(2)第2の定義の連続関数:
(連結した)閉区間( a≦x≦b)で連続な関数。a<x<bとなるどの点でもf(x)が完全に連続。x=aとx=bとの端点では、片側連続である関数f(x)。
すなわち、端点を持つ連結区間で1つながりに連続する関数。
との2通りの定義があるので要注意です。

《区間という用語の意味》
 また、「区間」という数学用語は、実数の集合として定義されている用語である事に注意が必要です。
a≦x≦bを満足するxの区間という表現は、a≦x≦bの範囲内の全ての実数xという意味です。
-∞<x<∞という区間もあります。
区間はxの値の範囲を限定するためのa≦x≦bという式とは意味が異なることに注意する必要があります。
(A)「0≦x≦2の区間の変数xで定義された関数f(x)がその区間の各点で連続であるとき,f(x)は連続関数である」という文では、
f(x)は、0≦x≦2の区間で1つながりに連続した関数f(x)として定義されます。
一方で、
(B)「変数xの0≦x≦2の範囲内の値で関数f(x)が定義されていて、その関数f(x)が定義域の各点で連続であるとき,f(x)は誤解された連続関数である」という文では、f(x)は、例えば、
0<x<1で f(x)=0, この定義域内の各点で連続。
1<x<2で f(x)=1, この定義域内の各点で連続。
結局、0≦x≦2の範囲内の全ての定義域の各点で連続な誤解された連続関数f(x)として定義されます。
 この例の様に、「区間」という用語は変数xの集合をあらわす用語であって、変数xの範囲をあらわす用語では無いことに注意する必要があります。

 区間a≦x≦bが命題の中に記載されている場合は、その範囲内の全ての実数xについて命題を検討する必要があります。被積分関数f(x)が定義されていない変数xの点があっても、その点も、その命題が検討されるべき点の1つです。

【連続関数の誤った定義が問題を起こしている】
 高校の教科書では「定義域」という言葉を使って、
「関数 f(x) が、定義域のすべての x の値で連続であるとき、 f(x) は連続関数である、という。」 
と書かれていると思います。
 しかし、中学生のときから教わって来た「定義域」という言葉の定義が、高校以上の数学では、所定の区間を指すだけではない、様々な場合を含むように変わりました。
変数が自然数だけの関数の定義域は自然数だけといったぐあいです。
定義域が自然数だけの関数の連続性を考えるのは、とても不自然です。
上図の、y=f(x) ≡ 1/xは、x=0で不連続ですが、
x=0での関数値が無い、すなわち、x=0は定義域に含まれない。
そして、x=0以外の、全ての定義域の点で連続なので、高校での誤った定義では「連続関数」と呼ばれています。
定義域という言葉は、関数f(x)の値が存在する変数xの値の集合に限る言葉です。それで把握できる点には限界がありますが、区間で考えれば、定義域のxの値の集合に含まれないxの値0も把握できます。すなわち、区間が含む点x=0の関数値f(x)が無い(定義されていない)場合、x=0において関数f(x)が連続では無いと把握でき、x=0の点は、連続で無い点と把握できます。

(注意)
「不連続点」の定義は、その不連続な値で関数値f(x)がある事と決められているため、上の例のx=0のように関数値f(0)が存在しない点は不連続点とは呼ばれません。
 連続点は数学の重要な概念であり、数学的に厳密に定義されています。不連続点という言葉は、その重要な連続点の定義に従属して、その反対の性質を持つ点として定義する必要があります。
 しかし、「不連続点」の定義では、そうせず、たいした根拠も無く、上の例のように関数値が存在しない点は「不連続点」とは呼ばず、連続点の概念とは無関係な言葉として定義されています。
 そのように定義した「不連続点」という概念によっては、上のf(x)≡1/xという関数の例のように、xのある値x0でf(x0)が存在しないことで関数がx=x0で連続で無いという関数の不連続性が把握できなくなっています。
 数学センスがある学生は、関数の連続点の否定を表すのではない「不連続点」という言葉は数学的に無意味で数学研究に役立たないと見抜き、「不連続点」という言葉は使わず別の言葉「連続で無い点」を自分で独自に定義して自分の研究に役立てると思います。


 そのため、当ブログでは、上の例のx=0の点は、連続で無い点と呼び、「不連続点」という不完全な言葉は使わない事にします。
(不連続点の当初の定義も、連続で無い点の定義と同じでした。藤原松三郎の「微分積分学 第1巻」によると、「f(x)がx=ξで連続でない場合に、x=ξをf(x)の不連続点という。」と定義されていました。)


【原始関数の誤解される定義】
 後に積分を学ぶ際に、原始関数を学びますが、その関数の定義があいまいで不正確なので要注意です。
関数F(x)の定義域が分からない定義:
 ある関数F(x)を微分すると、
F’(x)=f(x)
になるとき、関数F(x)を関数f(x)の原始関数と呼ぶ。
(原始関数の定義おわり)

【原始関数の正しい定義】
 上の原始関数の定義は、誤解されるあいまいな不正確な定義であり、原始関数F(x)の定義域がどの領域かが示されていない(定義域が決まらなければ関数が定義されない)、明確さを欠いているので、まともな定義とは言い難いものです。
 正確な当初の原始関数の定義は:
関数F(x)が、連結区間a<x<bのどの点でも連続、かつ、微分可能な関数であれば、F(x)を微分して導関数f(x)が求められる。この場合に、F(x)を関数f(x)の原始関数と言う、
と定義されていました。
藤原松三郎の「微分積分学 第1巻」)
これが、あいまいでは無い原始関数の定義です。
 すなわち、原始関数はその連結区間における連続関数であり1つながりのグラフであると定義されています。

(原始関数の例)
下図の関数f(x)の原始関数F(x)を考える。
上図の関数f(x)の原始関数F(x)は、下図の様に3つある。
1つながりのグラフが1つの原始関数です。その他のグラフは別の原始関数です。上図の様に3つの別々の原始関数があります。
 なお、この例の3つの原始関数F(x)に対応する3つの被積分関数は、各原始関数の定義域の連結区間と同じ定義域を持つ3つの連続関数(連結区間で1つながりに連続な関数)になっています。

(1)逆関数:
逆関数という関数の概念があります。

「微分積分学入門」(著者:横田 壽)の21ページ近くに、逆関数の定義があります。

逆関数(inverse functions)
関数f の定義域D(f) 内の任意の2 数x1, x2 に対して,
x1 ≠ x2 ⇒ f(x1) ≠ f(x2)
が成り立つとき, f は1 対1 の関数(one-to-one function) であるといいます.
(f は(写像として)単射である (injective) とも言います。)


ここで、
x1 ≠ x2 ⇒ f(x1) ≠ f(x2) とは,
x1 とx2 が異なるならば, f(x1) とf(x2) は異なることを意味しています.
この場合,値域R(f) の各数y に対して, y = f(x) であるようなx を1 つ定めるような規則が考えられます(なぜでしょうか).
これをf の逆関数(inverse function)とよび,
f には逆関数が存在するといいます.


y=f(x)
という関数があれば、
関数の値が減少から増加に転ずる点がある場合は、
その点で関数を2つに分割する必要があります。
そうしないと、
その点の前後で複数のxに同じyが対応することになってしまうからです。
複数のxに同じyが対応してしまうと、その関数には、以下で説明する逆関数が作れなくなってしまうので都合が悪いからです。

そのようにて、1対1対応の関数として定義した関数には「逆関数」が存在します。
x=f -1(y)
という逆関数があります。

逆関数は、変数xとyの立場を入れ替えることで作れます。
その逆関数の形を以下の式3のグラフで描くことができます。
式3が逆関数の形をあらわしています。

「ある関数 f に対して逆関数 f-1 が存在する」という表現はくせものです。
なぜなら、ある関数 y=f(x) のグラフがあれば、そのグラフのxとyを入れ替えたグラフを考えて、その入れ替えたグラフから、以下のようにして、逆関数 f-1 のグラフを考え出すことができるからです。
(1)逆関数 f-1 のグラフが1つの変数に対して2つの値を持つ場合には、グラフを分割して、分割された逆関数 f-1 のグラフでは、1つの変数に対して1つの値しか持たないようにする。そして、その元の関数 y=f(x) のグラフもそれに対応して分割する。
(2) そうすれば、分割された元の関数 y=f(x) が、分割された逆関数 f-1 のグラフに対応する逆関数 f-1 を持つ。
(3)そうすれば、どの関数も逆関数を持つことにできるのではないか?
という疑問が生まれるうさんくささがあるからです。

しかし、以下の事例のように、グラフを分割する操作では対応し切れず、本当に逆関数が存在し得ない場合もあります。

下の図のグラフのように、xの値が少し変わっても t の値が同じ値になる関数の部分では、
複数のxに1つの t が対応します。

その関数の部分には逆関数が存在出来ません。
無理に逆関数のグラフを作ろうとすると、そのグラフは下の図のように、垂直に立つグラフになってしまい、1つの変数 t に対して複数の値が与えられることになってしまうからです。
1つの変数に1つの値を対応させる関数のグラフにすると下の図のように、形が変わってしまいます。
この場合には、絶対に逆関数が存在し得ないグラフの部分(関数の一部分)がありました。

 一方で、以下のグラフの不連続関数f(x)であっても逆関数を持ちます。
 以下のグラフの不連続な点を持つ関数f(x)も1つの一体の関数として逆関数を持ちます。
 以下のグラフABCDで表す不連続な点を持つ関数f(x)は、所定の点で2つの関数に分割することで、分割されたそれぞれの関数が逆関数を持つようにできます。
そのために関数を分割する点は、点Bで関数を分割しても良いし点Cで関数を分割しても良いです。

(2)合成関数:
 合成関数という関数の概念があります。

「微分積分学入門」(著者:横田 壽)の21ページ近くに、合成関数の定義が書いてあります。 

合成関数(composite functions)
 関数どうしのつなぎ方として,
合成法則(composition) とよばれる方法について考えます.
まず, f(x) とg(x)2 つの関数を用意します.
次に任意のx に対して規則g を用いて1 つの実数g(x) を取り出します.
もしこのg(x) が関数f(x) の定義域に入っていれば,
規則f を用いて1 つの実数f(g(x)) を取り出すことができるでしょう.
ところで,この実数f(g(x)) は何なのでしょうか.
もしg(x) の値域がf(x) の定義域に含まれていれば,
g(x) の定義域内の各数x に対して, f(g(x)) を作ることができます.
これはg(x) の定義域内の各数x に対し,ただ1 つの実数f(g(x)) を定める規則と考えられます.
よってこの規則をf とg の合成関数(composite function) といい,
f ◦ g で表わすと(f ◦ g)(x) = f(g(x)) となります.


以下に合成関数の例をあげます。
 上の式はxの関数hを合成関数の形で表現しました。
関数hは、gというパラメータ関数を使って、式1と式2とであらわした、結局は式3の形のxの関数です。
hは、式1の形と式3の形との2つの形の式であらわすことができます。
 この関数hは、以下の形の合成関数の形であらわすこともできます。
 式3の形の関数hは、sというパラメータ関数を使って、式4と式5であらわすことができます。
hは、式4の形でもあらわせます。
パラメータ関数を自由に選ぶことで式3のxの関数hは、式1や式4の形やその他の形の無限に多くの形であらわすことができます。

【逆関数定理】
x1 ≠ x2 ⇒ f(x1) ≠ f(x2)
が成り立ち, f が1 対1 の関数(one-to-one function) であるとき、以下の図の1対1の写像の関係があります。

1対1の写像をする関数 f には逆関数が定義できます。
そこで、関数 f で1対1の写像をした後で、逆関数で定義される1対1の写像をする、合成関数の写像をすれば、以下の図の様に元に戻ります。
また、逆写像の変数yの定義域の変数yに対して逆写像で1対1の写像をした後で、関数 f で定義される1対1の写像をする、合成関数の写像をすれば、以下の図の様に元に戻ります。
これは、逆関数定理と呼ばれています。

(陰関数の定義)
「微分積分学入門」(著者:横田 壽)の192ページに、陰関数の定義が書いてあります。
 (注:横田教授が芝浦工業大学を退官したため、この教科書を無料で掲載していたWebページが無くなりました。この本は書店で購入できます。

6.8 陰関数(implicit functions)
 方程式3x+2y +1 = 0 から,

x の関数としてのy、
つまりy = −(1 + 3x)/2 を考えることができます.
 

 一般に2 変数関数 f(x, y) に対して,1 変数関数 y = g(x) が常に f(x, g(x)) = 0 を満たすとき,
y = g(x) を、

方程式 f(x, y) = 0 から定まる陰関数(implicit function) といいます.

方程式 f(x, y) = 0 から定まる陰関数 y = g(x) を求めることは, f(x, y) = 0 をy について解くことと同じです.


(円の方程式の陰関数の例)
円の方程式は、
f(x, y) ≡+yー1=0 (1)
ですが、
この方程式から求める、
f(x, g(x)) = 0 を満たす1 変数関数 y = g(x) が、
この円の方程式から定まる陰関数です。

円の方程式自体は、方程式なのであって、それ自体は陰関数とは呼ばないのです。

f(x, g(x)) = 0 を満たす1 変数関数 y = g(x) は、
複素数のyの値を許容すると、以下の図の様に、xの二乗>1の場合の虚数のyを与える関数も含むようになります。
この式2aと式2bで定めた1変数関数
y=g(x)
は、常に f(x, g(x)) = 0 を満たすので、円の方程式1から定まる陰関数です。

なお、式1を満たす陰関数の式は、それだけでは無く、以下の式2c、2dも式1を満たします。
これらの式2cと2dを使って、式1を満たす他の陰関数も作れます。
 また、式2aと式2cを一緒に使った関数を作って、変数xの1つの値に対して関数値g(x)が2つある2価関数(円全体を表す式)を作ることもできます。 
 また、関数値を虚数だけにした、式2bと式2cを一緒に使った関数を作って、変数xの1つの値に対して関数値g(x)が2つある虚数の関数値を持つ双曲線の形をした2価関数を作ることもできます。

(補足) 
 方程式3x+2y +1 = 0 から,
変数変換して、
変数t≡3x+2y の関数としてのy、
すなわち、t=-1を考えることができます。
この方程式は、特定のtの値に関するyの値が無限に多くあることをあらわす直線の式です。

この直線の式は、ty-座標平面において、傾きが無限大の直線をあらわしています。
この直線の式をあらわす関数は、もはや、tの1価関数ではありません。
なぜなら、t=-1に対する、yの値が2個以上あるからです。

このように、1価関数であるか否かということは、観察する座標系をどう定めるかによって変わる関係なのです。
また、関数とは、座標系を変える事によって変わる、座標系の「変数」を与える座標軸の座標値と、「関数値」を与える座標軸の座標値との関係なのです。

リンク:
高校数学の目次

3 件のコメント:

  1. 定義域ごとで関数が
    異なるものを
    何 関数と呼ぶのでしょうか?

    どうやって検索すれば
    そういうのがでてくるのか
    知りたいのです。

    返信削除
    返信
    1. 個別の定義域内の個別の関数同士を定義域の接続部分でつないで1つの関数にした関数の名前があるかというご質問と思います。
      私の知る限りでは、特に、~~関数と名付けた言い方の規定は無かったと思います。

      「個別関数を接続した関数」とか、
      「個別関数をつないだ関数」とか呼べば良いと思います。
      その関数とは別に定義されている「合成関数」と言うと、別の意味を持ってしまうので、「合成関数」とは呼ばないようにして欲しいと思います。

      削除
    2. どういう検索をすれば良いかですが、、、
      関数を定義域の接続部分で特に滑らかにつなぐ特別な繋ぎ方として、
      「解析接続」
      と言っていますので、
      「接続」とか「つなぐ」と言えば良いと思います。
      検索するキーワードは「解析接続」です。

      削除