教材一覧

合成関数

< 前のページ
次のページ >

合成関数

2つの関数\(f:\mathbb{R} \supset X\rightarrow \mathbb{R} \)と\(g:\mathbb{R} \supset Y\rightarrow \mathbb{R} \)が与えられたとき、\(f\)の値域\(f\left( X\right) \)が\(g\)の定義域\(Y\)の部分集合であるものとします。つまり、\begin{equation*}
f\left( X\right) \subset Y
\end{equation*}すなわち、\begin{equation*}
\forall x\in X:f\left( x\right) \in Y
\end{equation*}が成り立つということです。関数\(f\)が定義域\(X\)のそれぞれの要素\(x\)に対して値\(f\left( x\right) \)を定めますが、上の関係より\(f\left( x\right) \)は関数\(g\)の定義域\(Y\)の要素であるため、\(g\)は\(f\left( x\right) \)に対して値\(g\left( f\left( x\right) \right) \)を定めます。したがって、関数\(f,g\)が上の条件を満たすとき、それぞれの\(x\in X\)に対して値\(g\left( f\left( x\right) \right) \in \mathbb{R} \)を1つずつ定める新たな関数が定義可能です。この関数を、\begin{equation*}
g\circ f:\mathbb{R} \supset X\rightarrow
\mathbb{R} \end{equation*}と表記し、\(f\)と\(g\)の合成関数(composite function)と呼びます。定義より、それぞれの\(x\in X\)に対して、\begin{equation*}
\left( g\circ f\right) \left( x\right) =g\left( f\left( x\right) \right) \in
\mathbb{R} \end{equation*}という関係が成り立ちます。

例(合成関数)
関数\(f,g:\mathbb{R} \rightarrow \mathbb{R} \)はそれぞれの\(x\in \mathbb{R} \)に対して、\begin{eqnarray*}
f\left( x\right) &=&x^{2} \\
g\left( x\right) &=&x+2
\end{eqnarray*}を定めるものとしてそれぞれ定義されているものとします。\(f\)の値域\(f\left( \mathbb{R} \right) \)は明らかに\(g\)の定義域\(\mathbb{R} \)の部分集合であるため、\(f\)と\(g\)の合成関数\(g\circ f:\mathbb{R} \rightarrow \mathbb{R} \)が定義可能です。具体的には、それぞれの要素\(x\in \mathbb{R} \)に対して\(g\circ f\)が定める値は、\begin{eqnarray*}
\left( g\circ f\right) (x) &=&g\left( f\left( x\right) \right) \quad
\because g\circ f\text{の定義} \\
&=&g\left( x^{2}\right) \quad \because f\text{の定義} \\
&=&x^{2}+2\quad \because g\text{の定義}
\end{eqnarray*}となります。
例(合成関数)
関数\(f,g:\mathbb{R} \rightarrow \mathbb{R} \)はそれぞれの\(x\in \mathbb{R} \)に対して、\begin{eqnarray*}
f\left( x\right) &=&3x^{2}-x+10 \\
g\left( x\right) &=&1-20x
\end{eqnarray*}を定めるものとしてそれぞれ定義されているものとします。\(f\)の値域\(f\left( \mathbb{R} \right) \)は明らかに\(g\)の定義域\(\mathbb{R} \)の部分集合であるため、\(f\)と\(g\)の合成関数\(g\circ f:\mathbb{R} \rightarrow \mathbb{R} \)が定義可能です。具体的には、それぞれの要素\(x\in \mathbb{R} \)に対して\(g\circ f\)が定める値は、\begin{eqnarray*}
\left( g\circ f\right) (x) &=&g\left( f\left( x\right) \right) \quad
\because g\circ f\text{の定義} \\
&=&g\left( 3x^{2}-x+10\right) \quad \because f\text{の定義}
\\
&=&1-20\left( 3x^{2}-x+10\right) \quad \because g\text{の定義} \\
&=&-60x^{2}+20x-199
\end{eqnarray*}となります。
例(合成関数)
関数\(f,g:\mathbb{R} \rightarrow \mathbb{R} \)はそれぞれの\(x\in \mathbb{R} \)に対して、\begin{eqnarray*}
f\left( x\right) &=&3x-2 \\
g\left( x\right) &=&\frac{1}{3}x+\frac{2}{3}
\end{eqnarray*}を定めるものとしてそれぞれ定義されているものとします。\(f\)の値域\(f\left( \mathbb{R} \right) \)は明らかに\(g\)の定義域\(\mathbb{R} \)の部分集合であるため、\(f\)と\(g\)の合成関数\(g\circ f:\mathbb{R} \rightarrow \mathbb{R} \)が定義可能です。具体的には、それぞれの要素\(x\in \mathbb{R} \)に対して\(g\circ f\)が定める値は、\begin{eqnarray*}
\left( g\circ f\right) (x) &=&g\left( f\left( x\right) \right) \quad
\because g\circ f\text{の定義} \\
&=&g\left( 3x-2\right) \quad \because f\text{の定義} \\
&=&\frac{1}{3}\left( 3x-2\right) +\frac{2}{3}\quad \because g\text{の定義} \\
&=&x
\end{eqnarray*}となります。

 

合成関数の定義域

繰り返しになりますが、関数\(f:\mathbb{R} \supset X\rightarrow \mathbb{R} \)の値域\(f\left( X\right) \)と関数\(g:\mathbb{R} \supset Y\rightarrow \mathbb{R} \)の定義域\(Y\)の間に、\begin{equation*}
f\left( X\right) \subset Y
\end{equation*}すなわち、\begin{equation*}
\forall x\in X:f\left( x\right) \in Y
\end{equation*}という関係が成り立つ場合には、\(f\)の定義域\(X\)のそれぞれの要素\(x\)に対して値\(g\left( f\left( x\right) \right) \in \mathbb{R} \)が必ず1つずつ定まるため、合成関数\(g\circ f\)の定義域もまた\(X\)となります。一方、関数\(f,g\)の間に上の関係が成り立たない場合、すなわち、\begin{equation*}
\exists x\in X:f\left( x\right) \not\in Y
\end{equation*}が成り立つ場合、関数\(g\)はそもそも上の\(f\left( x\right) \)において定義されていないため\(g\left( f\left( x\right) \right) \)は定義不可能であり、したがって合成関数\(g\circ f\)は上の\(x\)において定義されていません。以上を踏まえると、一般に、合成関数\(g\circ f\)の定義域は、\begin{equation*}
D\left( g\circ f\right) =\left\{ x\in X\ |\ f\left( x\right) \in Y\right\}
\end{equation*}となります。極端な話、上の集合\(D\left( g\circ f\right) \)が空集合であるならば、合成関数\(g\circ f\)はそもそも定義不可能です。

例(合成関数の定義域)
関数\(f:\mathbb{R} \rightarrow \mathbb{R} \)はそれぞれの\(x\in \mathbb{R} \)に対して、\begin{equation*}
f\left( x\right) =x^{2}
\end{equation*}を定め、関数\(g:\mathbb{R} \backslash \left\{ 0\right\} \rightarrow \mathbb{R} \)はそれぞれの\(x\in \mathbb{R} \backslash \left\{ 0\right\} \)に対して、\begin{equation*}
g\left( x\right) =\frac{1}{x}
\end{equation*}を定めるものとしてそれぞれ定義されているものとします。合成関数\(g\circ f\)の定義域を特定します。関数\(g\)は点\(0\)において定義されていないため、\(f\left( x\right) =0\)を満たす実数\(x\)は\(g\circ f\)の定義域には含まれません。つまり、\(g\circ f\)の定義域は、\begin{eqnarray*}
D\left( g\circ f\right) &=&\left\{ x\in
\mathbb{R} \ |\ f\left( x\right) \not=0\right\} \\
&=&\left\{ x\in
\mathbb{R} \ |\ x^{2}\not=0\right\} \quad \because f\text{の定義} \\
&=&\mathbb{R} \backslash \left\{ 0\right\}
\end{eqnarray*}となります。その上で、\(g\circ f\)は定義域のそれぞれの要素\(x\in \mathbb{R} \backslash \left\{ 0\right\} \)に対して、\begin{eqnarray*}
\left( g\circ f\right) \left( x\right) &=&g\left( f\left( x\right) \right)
\quad \because g\circ f\text{の定義} \\
&=&g\left( x^{2}\right) \quad \because f\text{の定義} \\
&=&\frac{1}{x^{2}}\quad \because g\text{の定義}
\end{eqnarray*}を値として定めます。
例(合成関数の定義域)
関数\(f:\mathbb{R} \rightarrow \mathbb{R} \)はそれぞれの\(x\in \mathbb{R} \)に対して、\begin{equation*}
f\left( x\right) =-x^{2}-1
\end{equation*}を定め、関数\(g:\mathbb{R} _{+}\rightarrow \mathbb{R} \)はそれぞれの\(x\in \mathbb{R} _{+}\)に対して、\begin{equation*}
g\left( x\right) =\sqrt{x}
\end{equation*}を定めるものとしてそれぞれ定義されているものとします。関数\(f\)がそれぞれの\(x\)に対して定める値\(f\left( x\right) \)は負の実数ですが、関数\(g\)は任意の負の実数において定義されていないため、合成関数\(g\circ f\)は定義不可能です。

 

関数を合成する順番

2つの関数\(f,g\)が与えられたとき、それらから生成され得る合成関数としては\(g\circ f\)と\(f\circ g\)の2通りがあり、これらは区別して考える必要があります。具体的には、関数\(f,g\)がそれぞれ、\begin{eqnarray*}
f &:&\mathbb{R} \supset X\rightarrow
\mathbb{R} \\
g &:&\mathbb{R} \supset Y\rightarrow
\mathbb{R} \end{eqnarray*}であるとき、合成関数\(g\circ f\)の定義域は、\begin{equation*}
D\left( g\circ f\right) =\left\{ x\in X\ |\ f\left( x\right) \in Y\right\}
\end{equation*}であり、これはそれぞれの\(x\in D\left( g\circ f\right) \)に対して、\begin{equation*}
\left( g\circ f\right) \left( x\right) =g\left( f\left( x\right) \right)
\end{equation*}を像として定めます。一方、合成関数\(f\circ g\)の定義域は、\begin{equation*}
D\left( f\circ g\right) =\left\{ x\in Y\ |\ f\left( x\right) \in X\right\}
\end{equation*}であり、これはそれぞれの\(x\in D\left( f\circ g\right) \)に対して、\begin{equation*}
\left( f\circ g\right) \left( x\right) =f\left( g\left( x\right) \right)
\end{equation*}を像として定める関数です。\(g\circ f\)と\(f\circ g\)は異なる関数であり、また、一方が存在する場合でも他方は存在するとは限りません。関数を合成する順番が変われば得られる関数も変わるため、関数を合成する際には注意が必要です。

例(関数を合成する順番)
関数\(f,g:\mathbb{R} \rightarrow \mathbb{R} \)はそれぞれの\(x\in \mathbb{R} \)に対して、\begin{eqnarray*}
f\left( x\right) &=&x^{2} \\
g\left( x\right) &=&x+2
\end{eqnarray*}を定めるものとして定義されているものとします。\(f\)の値域\(f\left( \mathbb{R} \right) \)は明らかに\(g\)の定義域\(\mathbb{R} \)の部分集合であるため、合成関数\(g\circ f\)の定義域もまた\(\mathbb{R} \)であり、これはそれぞれの\(x\in \mathbb{R} \)に対して、\begin{eqnarray*}
\left( g\circ f\right) (x) &=&g\left( f\left( x\right) \right) \quad
\because g\circ f\text{の定義} \\
&=&g\left( x^{2}\right) \quad \because f\text{の定義} \\
&=&x^{2}+2\quad \because g\text{の定義}
\end{eqnarray*}を値として定めます。一方、\(g\)の値域\(f\left( \mathbb{R} \right) \)は明らかに\(f\)の定義域\(\mathbb{R} \)の部分集合であるため、合成関数\(f\circ g\)の定義域もまた\(\mathbb{R} \)であり、これはそれぞれの\(x\in \mathbb{R} \)に対して、\begin{eqnarray*}
\left( f\circ g\right) (x) &=&f\left( g\left( x\right) \right) \quad
\because f\circ g\text{の定義} \\
&=&f\left( x+2\right) \quad \because g\text{の定義} \\
&=&\left( x+2\right) ^{2}\quad \because f\text{の定義}
\end{eqnarray*}を値として定めます。

 

3つ以上の関数の合成

3つ以上の関数を合成することもできます。関数\(f,g,h\)がそれぞれ、\begin{eqnarray*}
f &:&\mathbb{R} \supset X\rightarrow
\mathbb{R} \\
g &:&\mathbb{R} \supset Y\rightarrow
\mathbb{R} \\
h &:&\mathbb{R} \supset Z\rightarrow
\mathbb{R} \end{eqnarray*}で与えられているとともに、これらの間に、\begin{eqnarray*}
\forall x &\in &X:f\left( x\right) \in Y \\
\forall y &\in &Y:g\left( y\right) \in Z
\end{eqnarray*}という関係がともに成り立つものとします。関数\(f\)は定義域\(X\)に属するそれぞれの要素\(x\)に対して値\(f\left( x\right) \)を定めますが、\(f\left( x\right) \)は関数\(g\)の定義域\(Y\)に属するため、\(g\)はこの\(f\left( x\right) \)に対して値\(g\left( f\left( x\right) \right) \)を定めます。さらに、この\(g\left( f\left( x\right) \right) \)は関数\(h\)の定義域\(Z\)に属するため、\(h\)はさらにこの\(g\left( f\left( x\right) \right) \)に対して値\(h\left( g\left( f\left( x\right) \right) \right) \)を定めます。つまりこのとき、\(X\)の要素\(x\)に対して\(h\left( g\left( f\left( x\right) \right) \right) \)を値として定める関数が定義可能であるため、これを、\begin{equation*}
h\circ \left( g\circ f\right) :X\rightarrow
\mathbb{R} \end{equation*}で表記します。定義より、これはそれぞれの\(x\in X\)に対して、\begin{eqnarray*}
\left( h\circ \left( g\circ f\right) \right) (x) &=&h\left( \left( g\circ
f\right) \left( x\right) \right) \\
&=&h\left( g\left( f\left( x\right) \right) \right)
\end{eqnarray*}を値として定めます。

上の議論では最初に\(f\)と\(g\)を合成して\(g\circ f\)を作り、続いて\(g\circ f\)と残りの\(h\)を合成して\(h\circ \left( g\circ f\right) \)を作りましたが、最初に\(g\)と\(h\)を合成して\(h\circ g\)を作り、続いて\(h\circ g\)と残りの\(f\)を合成すれば、以下のような合成関数\begin{equation*}
\left( h\circ g\right) \circ f:X\rightarrow
\mathbb{R} \end{equation*}が得られます。定義より、これはそれぞれの\(x\in X\)に対して、\begin{eqnarray*}
\left( \left( h\circ g\right) \circ f\right) (x) &=&\left( h\circ g\right)
\left( f\left( x\right) \right) \\
&=&h\left( g\left( f\left( x\right) \right) \right)
\end{eqnarray*}を値として定めますが、これは\(\left( h\circ \left( g\circ f\right) \right) (x)\)と一致します。つまり、3つの関数\(f,g,h\)が与えられたとき、隣り合う2つの関数のうちのどちらを先に合成するかに応じて合成関数は\(h\circ \left( g\circ f\right) \)と\(\left( h\circ g\right) \circ f\)の2通りが存在しますが、これらは関数として等しくなります。

命題(関数の合成に関する結合律)
関数\(f,g,h\)がそれぞれ、\begin{eqnarray*}
f &:&\mathbb{R} \supset X\rightarrow
\mathbb{R} \\
g &:&\mathbb{R} \supset Y\rightarrow
\mathbb{R} \\
h &:&\mathbb{R} \supset Z\rightarrow
\mathbb{R} \end{eqnarray*}で与えられており、なおかつこれらの間には、\begin{eqnarray*}
\forall x &\in &X:f\left( x\right) \in Y \\
\forall y &\in &Y:g\left( y\right) \in Z
\end{eqnarray*}という関係が成り立つものとする。このとき、以下の2つの合成関数\begin{eqnarray*}
h\circ (g\circ f) &:&\mathbb{R} \supset X\rightarrow
\mathbb{R} \\
(h\circ g)\circ f &:&\mathbb{R} \supset X\rightarrow
\mathbb{R} \end{eqnarray*}がともに存在するとともに、両者は関数として等しい。
証明を見る(プレミアム会員限定)

上の命題より、\(f\)と\(g\)を合成して得られる関数に\(h\)を合成して得られる関数は、\(g\)と\(h\)を合成して得られる関数に\(f\)を合成して得られる関数と等しくなります。これは、関数の合成\(\circ \)を演算と解釈したとき、この演算は結合律を満たすということです。3つの関数\(f,g,h\)の合成関数をつくる際には\(f\)と\(g\)を先に合成してもよいし、\(g\)と\(h\)を先に合成しても得られる関数は同じであることが明らかになりました。合成の順番は結果に影響を与えないということを踏まえた上で、\(h\circ (g\circ f)\)と\((h\circ g)\circ f\)を代表して、\begin{equation*}
h\circ g\circ f
\end{equation*}と表記することができます。

例(3つ以上の関数の合成)
関数\(f,g,h:\mathbb{R} \rightarrow \mathbb{R} \)はそれぞれの\(x\in \mathbb{R} \)に対して、\begin{eqnarray*}
f\left( x\right) &=&2x \\
g\left( x\right) &=&\cos x \\
h\left( x\right) &=&x^{3}
\end{eqnarray*}を定めるものとして定義されているものとします。\(f\)の値域\(f\left( \mathbb{R} \right) \)は明らかに\(g\)の定義域\(\mathbb{R} \)の部分集合であり、\(g\)の値域\(g\left( \mathbb{R} \right) \)は明らかに\(h\)の定義域\(\mathbb{R} \)の部分集合であるため、合成関数\(h\circ g\circ f:\mathbb{R} \rightarrow \mathbb{R} \)が定義可能であり、これはそれぞれの\(x\in \mathbb{R} \)に対して、\begin{eqnarray*}
\left( h\circ g\circ f\right) (x) &=&h\left( g\left( f\left( x\right)
\right) \right) \quad \because h\circ g\circ f\text{の定義}
\\
&=&h\left( g\left( 2x\right) \right) \quad \because f\text{の定義} \\
&=&h\left( \cos \left( 2x\right) \right) \quad \because g\text{の定義} \\
&=&\left[ \cos \left( 2x\right) \right] ^{3}\quad \because h\text{の定義}
\end{eqnarray*}を値として定めます。

4つの関数\(f,g,h,i\)を合成する際には隣り合う2つの関数のうちのどれを先に合成するかに応じて最終的に得られる合成関数として様々なパターンが存在しますが、先の命題を繰り返し適用することにより、それらはいずれも関数として等しくなるため、それらを代表して\begin{equation*}
i\circ h\circ g\circ f
\end{equation*}と表記します。5つ以上の写像を合成する場合も同様です。

次回は合成可能性の収束可能性について解説します。

次へ進む 質問・コメント(プレミアム会員限定) 演習問題(プレミアム会員限定)
Share on facebook
Share on twitter
Share on email
< 前のページ
次のページ >

プレミアム会員だけが質問やコメントを投稿・閲覧できます。

関数