合成関数

2 つの関数\(f:\mathbb{R} \supset X\rightarrow \mathbb{R} ,\ g:\mathbb{R} \supset Y\rightarrow \mathbb{R}\)の間に、\begin{equation*}
\forall x\in X:f\left( x\right) \in Y
\end{equation*}という関係が成り立つものとします。関数\(f\)は定義域\(X\)に属するそれぞれの要素\(x\)に対して値\(f\left( x\right) \)を定めますが、これは関数\(g\)の定義域\(Y\)の要素であるため、\(g\)はさらにこの\(f\left( x\right) \)に対して値\(g\left( f\left( x\right) \right) \)を定めます。したがって、関数\(f,g\)が上の条件を満たすとき、\(X\)のそれぞれの要素\(x\)に対して\(\left( g\circ f\right) \left( x\right) =g\left( f\left( x\right) \right) \in \mathbb{R}\)を値として定める合成写像\(g\circ f:\mathbb{R} \supset X\rightarrow \mathbb{R}\)を定義できるため、これを\(f\)と\(g\)の合成関数(composite function)と呼びます。定義より、任意の\(x\in X\)に対して、\begin{equation*}
\left( g\circ f\right) (x)=g\left( f\left( x\right) \right)
\end{equation*}という関係が成り立ちます。

例(合成関数)
関数\(f:\mathbb{R} \rightarrow \mathbb{R}\)が\(f\left( x\right) =x^{2}\)で、関数\(g:\mathbb{R} \rightarrow \mathbb{R}\)が\(g\left( x\right) =x+2\)でそれぞれ与えられているとき、合成関数\(g\circ f:\mathbb{R} \rightarrow \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*}となります。
例(合成関数)
関数\(f:\mathbb{R} \rightarrow \mathbb{R}\)が\(f\left( x\right) =x^{2}\)で、関数\(g:\mathbb{R} \rightarrow \mathbb{R}\)が\(g\left( x\right) =\sin x\)でそれぞれ与えられているとき、合成関数\(g\circ f:\mathbb{R} \rightarrow \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{の定義} \\
&=&\sin x^{2}\quad \because g\text{の定義}
\end{eqnarray*}となります。
例(合成関数)
関数\(f:\mathbb{R} \rightarrow \mathbb{R}\)が\(f\left( x\right) =x^{2}\)で、関数\(g:\mathbb{R} \rightarrow \mathbb{R}\)が\(g\left( x\right) =\log x\)でそれぞれ与えられているとき、合成関数\(g\circ f:\mathbb{R} \rightarrow \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{の定義} \\
&=&\log x^{2}\quad \because g\text{の定義}
\end{eqnarray*}となります。

 

合成関数の定義域

繰り返しになりますが、2 つの関数\(f:\mathbb{R} \supset X\rightarrow \mathbb{R} ,\ g:\mathbb{R} \supset Y\rightarrow \mathbb{R}\)の間に、\begin{equation*}
\forall x\in X:f\left( x\right) \in Y
\end{equation*}という関係が成り立つ場合には、\(f\)の定義域である集合\(X\)上の任意の点\(x\)に対して像\(g\left( f\left( x\right) \right) \)が存在するため、合成関数\(g\circ f\)の定義域もまた\(X\)となります。一方、関数\(f,g\)の間に上の条件が成り立たない場合には、すなわち、\begin{equation*}
\exists x\in X:f\left( x\right) \not\in Y
\end{equation*}が成り立つ場合には、上の\(x\in X\)に対して\(f\)が定める値\(f\left( x\right) \in \mathbb{R}\)は\(g\)の定義域に含まれないため、\(g\left( f\left( x\right) \right) \)はそもそも定義不可能です。この場合、合成関数\(g\circ f\)の定義域は、\begin{equation*}
\{x\in X\ |\ f\left( x\right) \in Y\}
\end{equation*}となります。極端な話、上の集合が空集合であるならば合成関数\(g\circ f\)はそもそも定義不可能です。

例(合成関数の定義域)
関数\(f:\mathbb{R} \rightarrow \mathbb{R}\)が\(f\left( x\right) =x^{2}\)で、関数\(g:\mathbb{R} \backslash \{0\}\rightarrow \mathbb{R}\)が\(g\left( x\right) =\frac{1}{x}\)でそれぞれ与えられているものとします。\(g\)は点\(0\)において定義されていないため、\(f\left( x\right) =0\)を満たすような実数\(x\)は合成関数\(g\circ f\)の定義域に含まれません。つまり、それぞれの実数\(x\)に対して、\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*}を値として定める合成関数\(g\circ f\)の定義域は、\begin{eqnarray*}
\{x\in \mathbb{R} \ |\ f\left( x\right) \not=0\} &=&\{x\in \mathbb{R} \ |\ x^{2}\not=0\} \\
&=&\mathbb{R} \backslash \{0\}
\end{eqnarray*}となります。
例(合成関数の定義域)
関数\(f:\mathbb{R} \rightarrow \mathbb{R}\)が\(f\left( x\right) =-x^{2}-1\)で、関数\(g:\mathbb{R} _{+}\rightarrow \mathbb{R}\)が\(g\left( x\right) =\sqrt{x}\)でそれぞれ与えられているものとします。\(f\)がそれぞれの点\(x\)に対して定める値\(f\left( x\right) =-x^{2}-1\)は負の実数ですが、\(g\)は負の実数において定義されていないため、合成関数\(g\circ f\)は定義不可能です。

 

合成の順番

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

例(合成関数)
関数\(f:\mathbb{R} \rightarrow \mathbb{R}\)が\(f\left( x\right) =x^{2}\)で、関数\(g:\mathbb{R} \rightarrow \mathbb{R}\)が\(g\left( x\right) =x+2\)でそれぞれ与えられているとき、合成関数\(g\circ f:\mathbb{R} \rightarrow \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*}となります。一方、合成関数\(f\circ g:\mathbb{R} \rightarrow \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つ以上の関数を合成することもできます。3 つの関数\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) \)を値として定める関数が定義可能であるため、これを\(h\circ \left( g\circ f\right) :X\rightarrow \mathbb{R}\)で表します。定義より、任意の\(x\in X\)に対して、\begin{equation*}
\left( h\circ \left( g\circ f\right) \right) (x)=h\left( g\left( f\left( x\right) \right) \right)
\end{equation*}という関係が成り立ちます。

上の議論では最初に\(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\)を合成して\(\left( h\circ g\right) \circ f\)を作るという順番での合成も可能です。つまり、3 つの関数\(f,g,h\)が与えられたとき、隣り合う 2 つの関数のうちのどちらを先に合成するかに応じて合成関数は\(h\circ \left( g\circ f\right) \)と\(\left( h\circ g\right) \circ f\)の 2 通りが存在し得るということです。ただし、これらは関数として等しくなります。

命題(合成に関する結合律)
関数\(f:\mathbb{R} \supset X\rightarrow \mathbb{R} ,\ g:\mathbb{R} \supset Y\rightarrow \mathbb{R} ,\ h:\mathbb{R} \supset Z\rightarrow \mathbb{R}\)について、\begin{equation*}
h\circ (g\circ f)=(h\circ g)\circ f
\end{equation*}という関係が成り立つ。
証明を見る(プレミアム会員限定)

つまり、\(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\)を代表して\(h\circ g\circ f\)と表すことができます。

例(合成関数)
関数\(f:\mathbb{R} \rightarrow \mathbb{R}\)が\(f\left( x\right) =2x\)で、関数\(g:\mathbb{R} \rightarrow \mathbb{R}\)が\(g\left( y\right) =\cos y\)で、関数\(h:\mathbb{R} \rightarrow \mathbb{R}\)が\(h\left( z\right) =z^{3}\)でそれぞれ与えられているとき、合成関数\(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 2x\right) \quad \because g\text{の定義} \\
&=&\left[ \cos 2x\right] ^{3}\quad \because h\text{の定義}
\end{eqnarray*}となります。

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

次回は合成可能性の収束可能性について解説します。
次へ進む 質問・コメントを投稿する 演習問題(プレミアム会員限定)

Share on facebook
Facebook
Share on twitter
Twitter
Share on email
Email

ワイズをさらに活用するための会員サービス

ユーザー名とメールアドレスを入力して一般会員に無料登録すれば、質問やコメントを投稿できるようになります。さらに、有料(500円/月)のプレミアム会員へアップグレードすることにより、プレミアムコンテンツ(命題の証明や演習問題、解答など)にアクセスできます。
会員サービス

ディスカッションに参加しますか?

質問やコメントを投稿するにはログインが必要です。
ログイン

現在地
目次
アカウント
ログイン