复合函数
先做 g 再做 f,写成 f(g(x)):一台机器的输出接进另一台机器。链式法则处理的就是这种结构。
9 分钟思维方法: 化归
把没见过的问题变形成见过的问题
这一片为什么存在
你已经会算 f(3) 了。真正让你卡住的从来不是 f(3),而是 sqrt(x²+9) 的导数、sin(2x) 的图像、一堆看起来'没学过'的复杂函数。它们其实都不是新函数——它们是几个你早就会的旧函数接在一起。这一片要给你的不是一个新定义,而是一副拆解的眼睛:看到一个陌生表达式,能立刻说出'外层是谁、内层是谁、谁先动手'。这副眼睛一旦装上,链式法则那句'先对外层求导,再乘内层导数'就不再是要背的口诀,而是一句显而易见的话。代价是先把两件事彻底掰开:f(g(x)) 和 g(f(x)) 不是一回事,f∘g 也不是 f 乘 g。
内容
把函数想成一台机器:投进去一个数,吐出来一个数。复合就是把两台机器用一根管子接起来——前一台的出口对准后一台的入口。
关键是管子有方向。设 g 是'平方'机,f 是'乘 2 再加 1'机。数字 3 先进平方机得 9,再进 f 得 19。反过来接:3 先进 f 得 7,再平方得 49。同样两台机器,接线顺序一换,19 变成 49。这就是为什么 f(g(x)) 和 g(f(x)) 通常不相等——它们是两条不同的流水线,不是同一件事的两种写法。
第二件事:谁离 x 近,谁先动手。f(g(x)) 里 x 被 g 抱在怀里,所以 g 先做、f 后做,尽管读的时候 f 先被念出来。sin(x²) 与 (sin x)² 的全部区别就在这里:前者先平方再取正弦,后者先取正弦再平方。写 (sin x)² 时那对括号不是装饰,它是在指定谁抱着 x。
第三件事最容易漏:接管子的时候,前一台吐出来的东西,后一台得吃得下。sqrt 只吃非负数。如果内层是 x-5,那么 x=3 时内层吐出 -2,sqrt 当场噎住——哪怕 3 本身是 sqrt 完全愿意接受的输入。所以复合的定义域要同时满足两条:x 能进内层,且内层的输出能进外层。只盯着外层的定义域看,是最常见的丢分方式。
最后,那个小圆圈是'接线',不是'相乘'。f(3)·g(3)=7·9=63,而 f(g(3))=f(9)=19,两者连长得像都算不上。复合把两台机器串成一台,乘法只是把两个输出数字凑在一起,它们做的根本不是同一件事。
记号。给定函数 f 和 g,它们的复合 f∘g 定义为
(f∘g)(x) = f(g(x)),
读作'f 圈 g'。g 称为内层(先作用),f 称为外层(后作用)。∘ 是一个独立的运算符号,与乘号无关。
定义域。x 属于 f∘g 的定义域,当且仅当两条同时成立:
(1) x ∈ dom(g);
(2) g(x) ∈ dom(f)。
即 dom(f∘g) = { x ∈ dom(g) : g(x) ∈ dom(f) }。条件 (2) 正是那根管子的接口检查:内层的输出必须落在外层能接受的范围内。dom(f∘g) 一般是 dom(f) 的子集之外的东西——它由内层和外层共同决定,不能只看外层。
两条性质,一真一假。
结合律成立:(f∘g)∘h = f∘(g∘h),两边都是 x ↦ f(g(h(x))),所以多层复合不必写括号。
交换律不成立:一般 f∘g ≠ g∘f。注意'不成立'的含义是'不恒成立',推翻它只需给出一个反例,不需要对所有 x 都不等。
跟着做一遍
设 f(x)=2x+1,g(x)=x²。(a) 求 f(g(3)) 与 g(f(3));(b) 求 f(g(x)) 与 g(f(x)) 的表达式;(c) 设 h(x)=sqrt(x),k(x)=x-5,求 h(k(x)) 的定义域。纸笔可做,三分钟内。
- 先算内层:g(3)=3²=9。
- 把 9 喂给外层:f(9)=2·9+1=19,所以 f(g(3))=19。
- 换顺序:先 f(3)=2·3+1=7。
- 再 g(7)=7²=49,所以 g(f(3))=49——和第 2 步不同,顺序不能换。
- 不代数字,把整块 x² 塞进 f 的空位:f(g(x))=2x²+1;代 x=3 得 19,与第 2 步对上。
- 反过来把整块 2x+1 塞进 g 的空位:g(f(x))=(2x+1)²=4x²+4x+1;代 x=3 得 49,与第 4 步对上。
- 定义域:h(k(x))=sqrt(x-5);x=3 时内层给出 3-5=-2,sqrt 接不住,所以 3 不在定义域内(尽管 3 在 sqrt 自己的定义域里)。
- 要让内层输出非负需 x-5≥0,故定义域为 x≥5。
结果
f(g(3))=19,g(f(3))=49;f(g(x))=2x²+1,g(f(x))=4x²+4x+1;h(k(x))=sqrt(x-5),定义域是 x≥5,而不是外层 sqrt 的 x≥0。