math-concepts

合成関数を直感的に理解する:順序、値、定義域

2026年9月28日2分で読めます
合成関数を直感的に理解する:順序、値、定義域

配達サービスが1キロメートルにつき3ドルを請求し、さらに5ドルの予約料を加えるとします。4キロメートルの配達なら、まず4に3を掛け、その結果に5を足します。一つの規則の出力を次の規則に渡しました。これが関数の合成です。

記号は操作そのものより難しく見えるかもしれません。g(x)=3xg(x)=3xが距離に応じた料金を計算し、f(x)=x+5f(x)=x+5が予約料を加えるなら、合計はf(g(4))=f(12)=17f(g(4))=f(12)=17ドルです。内側の規則を先に使います。料金設定がそう指定していない限り、距離に予約料を足してから掛け算することはできません。

内側から外側へ順序を読む

合成関数では、一つの関数が別の関数の中に入ります。

(f∘g)(x)=f(g(x))(f\circ g)(x)=f(g(x))

これは「ffをggの後に使う」と読みます。まずg(x)g(x)を求め、その出力をffの入力にします。丸印は合成を表し、掛け算ではありません。OpenStaxの関数合成の節も操作の定義と順序を明示しています。

f(x)=2x+1f(x)=2x+1とg(x)=x2−3g(x)=x^2-3を考えます。f(g(x))f(g(x))を作るには、ffの入力部分に式x2−3x^2-3全体を入れます。

f(g(x))=2(x2−3)+1=2x2−5f(g(x))=2(x^2-3)+1=2x^2-5

x=4x=4では内側の規則からg(4)=16−3=13g(4)=16-3=13を得て、外側の規則からf(13)=27f(13)=27を得ます。まとめた式でも2(4)2−5=272(4)^2-5=27と一致します。二段階の計算と一つにまとめた式を照らし合わせると、括弧の付け間違いを見つけやすくなります。

関数の記法は、入力を入れる場所をはっきり示します。f(t)=2t+1f(t)=2t+1ならf(x2−3)=2(x2−3)+1f(x^2-3)=2(x^2-3)+1です。入力に使う文字が変わっても規則は変わりません。関数の基礎ガイドでは、規則をつなぐ前に入力、出力、定義域を説明しています。

順序を逆にして比べる

同じ二つの関数でも、g(f(x))g(f(x))は先にffを使います。

g(f(x))=(2x+1)2−3=4x2+4x−2g(f(x))=(2x+1)^2-3=4x^2+4x-2

x=4x=4ではf(4)=9f(4)=9、続いてg(9)=78g(9)=78です。これはf(g(4))f(g(4))で得られる27とは違います。どちらも有効な合成ですが、問われている操作が異なります。計算を展開する前にも違いは分かります。一方は入力を二乗してから2倍し、他方は2倍して1を足してから二乗します。

一つの入力でたまたま値が一致しても、二つの合成関数が同じとは言えません。関数としての一致を示すには、共通の定義域で規則を比較し、定義域自体も同じか確かめます。通常の問題では、両方の式を計算して簡単にしましょう。f(g(x))f(g(x))はg(f(x))g(f(x))でも積f(x)g(x)f(x)g(x)でもありません。

操作の流れはx→gg(x)→ff(g(x))x\xrightarrow{g}g(x)\xrightarrow{f}f(g(x))と書けます。値を代入する前に最初の矢印を書きましょう。内側の規則に分数、根号、値の表がある場合に特に便利です。

表やグラフから値を求める

式がなくても関数を合成できます。次の表を考えましょう。

xx1234
g(x)g(x)3412
f(x)f(x)8697

f(g(2))f(g(2))を求めるには、最初の行でg(2)=4g(2)=4を読みます。次に4をffの入力にするとf(4)=7f(4)=7です。答えは7です。逆順ではf(2)=6f(2)=6ですが、表にはg(6)g(6)の値がありません。したがって、この表からg(f(2))g(f(2))は読み取れません。関数全体が別の場所で定義されていれば、その値が存在する可能性はあります。示された数値だけでは判断できません。

グラフでも同じです。入力2でまずggのグラフの高さを読み、例えば4とします。次にffのグラフで入力4に進み、高さを読み、例えば7とします。最初の高さが次の横軸の座標になります。x=2x=2で二つの高さを読み取って組み合わせてはいけません。必要な入力にどちらかのグラフの点がなければ、そこで合成は定義されません。

「この部分的な表に載っていない」と「定義域の外にある」は区別しましょう。短い表は、存在する値を省略しているだけかもしれません。一方、グラフの白丸や明示された端点は、値が除外されていることを示せます。不明な出力を作り出さず、手元の情報が何を示すか述べてください。

簡単化する前に定義域を確かめる

f(g(x))f(g(x))の定義域には二つの条件があります。まずxxがggの定義域に入らなければなりません。次に、得られたg(x)g(x)がffの入力として許されなければなりません。OpenStaxも、この入出力の受け渡しとして規則を述べています。

ggの値域全体がffの定義域に収まる必要はありません。一部の入力で両段階が働けば、そこで合成が定義されます。例えば二乗はどの実数も受け取り、その後の平方根は非負の出力だけを受け取ります。二乗の結果は非負なので、この組み合わせはどの実数入力でも使えます。内側の規則を引き算に変えると、許される集合は小さくなることがあります。二つの式を別々に見るだけでなく、実際に渡される値を調べましょう。

実数値をとるg(x)=x−1g(x)=x-1とf(t)=tf(t)=\sqrt{t}を考えます。内側の規則はどの実数も受け取りますが、外側の平方根が受け取れるのは非負の入力だけです。したがって、

f(g(x))=x−1,x≥1f(g(x))=\sqrt{x-1},\qquad x\geq1

順序を逆にします。今度は先にf(x)=xf(x)=\sqrt{x}を使い、その後ggで1を引きます。

g(f(x))=x−1,x≥0g(f(x))=\sqrt{x}-1,\qquad x\geq0

式も定義域も異なります。x=0x=0では後者の合成は−1-1ですが、前者は実数の範囲で定義されません。単に値が異なる入力を一つ見つけるより、はっきりした比較です。

分母にも条件があります。g(x)=1/(x−2)g(x)=1/(x-2)とf(t)=t+3f(t)=t+3を考えると、f(g(x))=1/(x−2)+3f(g(x))=1/(x-2)+3ですが、x=2x=2は除外されたままです。そこで内側の規則が定義されないためです。

約分しても、もともと除外されていた入力は戻りません。g(x)=(x2−1)/(x−1)g(x)=(x^2-1)/(x-1)はx≠1x\ne1のときだけ定義され、f(t)=t2f(t)=t^2とします。許された入力ではg(x)g(x)をx+1x+1に簡単化できます。合成後の式は(x+1)2(x+1)^2のように見えても、定義域は依然としてx≠1x\ne1です。x=1x=1では元の内側の関数でゼロ除算が生じます。他の点で一致する多項式でも、新しい関数を定義せずにその穴を埋めることはできません。

長い規則を段階に分ける

合成を逆向きに読むと、式がどのように作られたかも分かります。h(x)=3x+2h(x)=\sqrt{3x+2}を考えます。一つの分け方は、まずg(x)=3x+2g(x)=3x+2、次にf(t)=tf(t)=\sqrt{t}です。よってh=f∘gh=f\circ gです。この分解から定義域もすぐ分かります。3x+2≥03x+2\geq0が必要なのでx≥−2/3x\geq-2/3です。

有効な分解は一つとは限りません。内側の一次式を「3倍する」「2を足す」に分け、三番目の段階として平方根を使うこともできます。どの分解でも、示した順序が許された各入力に対して元の規則を再現することが重要です。

グラフの変換ではf(x)=x2f(x)=x^2とf(x−2)=(x−2)2f(x-2)=(x-2)^2を比較します。変化が入力の中にあるため、放物線は右へ2移動します。f(x)+2=x2+2f(x)+2=x^2+2ではffを使った後に足すので、グラフは上へ2移動します。これも合成です。「二乗前に2を引く」と「二乗後に2を足す」は違います。代入に慣れていなければ代数ガイドも参考にしてください。

三つの異なる確認を練習する

1. 二つの順序。 f(x)=x+4f(x)=x+4とg(x)=2xg(x)=2xを考え、両方の合成を求めます。答えはf(g(x))=2x+4f(g(x))=2x+4とg(f(x))=2x+8g(f(x))=2x+8です。x=3x=3では10と14になります。4をどの段階で足すかが順序で変わります。

2. 定義域の条件。 f(t)=1/tf(t)=1/tとg(x)=x2−9g(x)=x^2-9を考えます。するとf(g(x))=1/(x2−9)f(g(x))=1/(x^2-9)です。x=3x=3とx=−3x=-3は外側の分母をゼロにするため除外します。内側の多項式自体はすべての実数を受け取れます。

3. 表の値。 上の表を使ってg(f(3))g(f(3))を求めます。まずf(3)=9f(3)=9です。表にはg(9)g(9)の欄がないので、与えられた情報では不足です。これは完全な答えであり、計算に失敗したわけではありません。

各問題で、どの規則を先に使い、どんな値が出て、次の規則がその値を受け取れるかを声に出して確認しましょう。さらに一つの具体的な入力を代数式の答えで確かめます。Math Zenの関数の練習では合成と定義域・値域の問題が並ぶので、受け渡しを独立した技能として練習できます。

逆関数は、適切な定義域で一方の規則が他方を打ち消す特別な場合です。通常の合成を計算するだけなら逆関数は不要です。このガイドでは、内側の出力を外側の入力にし、最後に定義域を確かめる順序を守れば十分です。

よくある質問

合成関数とは何ですか?
内側の関数の出力を外側の関数へ入力する操作です。f(g(x))ではgを先に計算します。
f(g(x))とg(f(x))は同じですか?
通常は異なります。最初に適用する関数が変わるため、両方の式と定義域を比較してください。
定義域はどう求めますか?
g(x)が存在し、その値をfが受け取れる入力に限ります。約分しても元の除外点は残ります。
表やグラフから合成関数を求められますか?
はい。内側の値を読み、外側への入力にします。部分的な表に必要な値がなければ情報不足です。必要な入力がいずれかの定義域の外なら、その点で合成は未定義です。

実際に解いてみる