冷启动:两个平面,别把它们搞混
题面:a⩾0、b⩾0,且当
⎩⎨⎧x⩾0y⩾0x+y⩽1
时恒有 ax+by⩽1;求以 a、b 为坐标的点 P(a,b) 所形成的平面区域的面积。
第一件事:这道题里有两个平面。 (x,y) 那个平面上住着一个固定的三角形;
(a,b) 那个平面上才是要求面积的区域。x、y 是跑遍三角形的哑变量,a、b 才是主角——
问的是「哪些 (a,b) 能让那句恒成立为真」。
第二件事:那个三角形是什么。 x⩾0、y⩾0、x+y⩽1 围出的可行域是一个
以 (0,0)、(1,0)、(0,1) 为顶点的直角三角形(含边界),有界、闭、凸。
第三件事:目标 ax+by 对 (x,y) 是线性的。 在 (a,b) 固定之后,
f(x,y)=ax+by 是一次函数——它没有内部的极值,最大值只能被「推到边上」。
这句话是下面三条路的共同源头:恒成立 ⟺ 最大值 ⩽1,
而线性函数的最大值好求。

解法一:线性目标在三角形上的最大值只能在顶点取到,三个顶点各给一句话
怎么想到的。 「对区域里每一个点都成立」是一句全称命题,逐点验证是不可能的;
但只要把它换成「最大值 ⩽1」,就只剩一个数要算。而线性函数在有界闭凸多边形上的最值
必在顶点取到——三角形只有三个顶点,于是一句全称命题被压成三个不等式。
① 把可行域与目标写清楚。 可行域
D={(x,y) ∣ x⩾0, y⩾0, x+y⩽1}
是以 (0,0)、(1,0)、(0,1) 为顶点的三角形(含边界),有界且闭。
目标 f(x,y)=ax+by 在 (a,b) 固定后是关于 (x,y) 的线性函数。
② 恒成立 ⟺ 最大值不超过 1。
∀(x,y)∈D: f(x,y)⩽1⟺Dmaxf⩽1
(D 是有界闭集、f 连续,最大值一定存在。)
③ 线性目标的最大值在顶点取到。 由最优解在可行域顶点,
Dmaxf=max{f(0,0), f(1,0), f(0,1)}=max{0, a, b}
④ 三个顶点各给一句话。 max{0,a,b}⩽1 等价于三条同时成立:
0⩽1 (恒真),a⩽1,b⩽1
⑤ 连上题目自带的 a⩾0、b⩾0。 P(a,b) 的区域是
{(a,b) ∣ 0⩽a⩽1, 0⩽b⩽1}
——边长为 1 的正方形(含边界)。
S=1×1=1
⑥ 边界算不算? 算。a=1、b=1 时 ax+by=x+y⩽1 对 D 里每一点成立,
所以顶点 (1,1) 是区域里的点。(边界是一条线,本来也不影响面积,但结论的形状要说对。)
解法二:先代两个特殊点得到必要条件,再用一次放缩把充分性补上
怎么想到的。 不想用任何定理时,「恒成立」有一套万能的两步走:
先随手代几个点,逼出参数的必要条件;再回头证明这些条件确实够用。
两步缺一不可——只做第一步,得到的只是「至少要满足这些」。
① 必要性:代两个顶点。 先确认它们确实在可行域里:
- (x,y)=(1,0):1⩾0、0⩾0、1+0⩽1 ✓,代入得 a⋅1+b⋅0=a⩽1;
- (x,y)=(0,1):同理在可行域里,代入得 b⩽1。
于是必须有 a⩽1 且 b⩽1。(注意这里只用了「恒成立」的两个特例,
所以得到的是必要条件;到此为止还不能说区域就是正方形。)
② 充分性:一行放缩。 反过来设 0⩽a⩽1、0⩽b⩽1。
任取可行的 (x,y),即 x⩾0、y⩾0、x+y⩽1,则
ax+by ⩽ 1⋅x+1⋅y = x+y ⩽ 1
第一个不等号用的是 a⩽1、b⩽1 配上 x⩾0、y⩾0——
x、y 的非负性是它的命根子:若 x 可以取负,ax⩽x 就反过来了。
③ 两步合起来。 必要性说「只能在这个正方形里」,充分性说「正方形里每一点都行」,
于是 P(a,b) 的区域恰好是
{(a,b) ∣ 0⩽a⩽1, 0⩽b⩽1},S=1
④ 为什么只代两个点就够。 因为第 ② 步证明了这两个条件已经充分;
代得再多也不会把区域缩得更小。反过来,如果只代 (x,y)=(21,21),
得到的是 a+b⩽2——这是一个更弱的必要条件,单靠它会把区域说成一个更大的三角形,面积算成 2。
代哪个点、够不够用,只能靠第 ② 步来裁决。
解法三:把三角形切成一族平行线段,先扫线段、再扫 s=x+y
怎么想到的。 不引用任何线性规划的结论,也可以把二元的恒成立降成两次一元的:
三角形可以按 x+y=s 切成一族平行线段(s 从 0 走到 1);
在每条线段上 ax+by 是一元一次函数,最值在端点——这是初中就会的事实。
① 切片。 令 s=x+y。(x,y) 跑遍可行域 ⟺
s 跑遍 [0,1],且在每个 s 上 x 跑遍 [0,s]、y=s−x。
② 每条线段上的最大值。 固定 s,把 y=s−x 代进去:
ax+by=ax+b(s−x)=bs+(a−b)x,x∈[0,s]
这是 x 的一次函数(a=b 时是常值),最大值在区间端点取到:
x∈[0,s]max(bs+(a−b)x)=max{bs, as}=s⋅max{a,b}
(x=0 给 bs,x=s 给 as;取大即可,不必管 a、b 谁大。)
③ 再扫 s。 于是「恒成立」等价于
s⋅max{a,b}⩽1对一切 s∈[0,1]
左边关于 s 是非负系数的正比例函数(max{a,b}⩾0,因为 a,b⩾0),
s=1 时最苛刻,故条件等价于
max{a,b}⩽1⟺a⩽1 且 b⩽1
④ 收尾。 加上 a⩾0、b⩾0,区域是单位正方形,
S=1×1=1
⑤ 这条路用了什么。 只有两件事:「一次函数在闭区间上最值在端点」用了一次(第 ② 步),
「正比例函数在 [0,1] 上最大值在 s=1」又用了一次(第 ③ 步)。
没有用到顶点定理,也没有代任何特例。
三条路回头看。 解法一最快:认出「线性目标 + 凸多边形」,写下三个顶点的值就完事,
max{0,a,b}⩽1 这一行几乎就是答案。解法二不依赖任何定理,
代价是必须把必要与充分两头都走完——它也最能说明「代特例」的边界在哪里。
解法三把二元问题拆成两次一元问题,是三条里最「土」也最不依赖记忆的一条,
而且它顺带给出了一个更一般的结论:在这个三角形上,max(ax+by)=max{0,a,b}(a、b 可正可负时也对)。
几何上看是什么。 当 a>0、b>0 时,直线 ax+by=1 在两轴上的截距是 a1、b1。
条件「三角形整个在 ax+by⩽1 这一侧」就是要这条直线不切进三角形,
即两个截距都不小于 1:a1⩾1、b1⩾1,正是 a⩽1、b⩽1。
a 或 b 一旦超过 1,对应那个截距就小于 1,直线立刻从那个角上切下一块三角形来,
被切下的部分里的点就违反了恒成立。
换个数会怎样。 若把右边的 1 换成 k>0,同样的推理给 0⩽a⩽k、0⩽b⩽k,
面积是 k2;若把可行域换成 x+y⩽c(c>0),顶点变成 (c,0)、(0,c),
条件变成 ac⩽1、bc⩽1,面积是 c21。本题 k=c=1,面积恰好也是 1。
🕳️ 避坑
- 别把两个平面搞混。 三角形画在 xOy 平面上,要求面积的区域画在 aOb 平面上。
算面积的是后者;前者的面积是 21,与答案无关。
- 代一个特例不等于恒成立。 只代 (21,21) 得到 a+b⩽2,
区域会被说成一个面积为 2 的三角形——它是必要条件,不是充要条件。
必要条件只能把区域框大,要收紧必须回头证充分性。
- 放缩 ax⩽x 用到了 x⩾0。 这一步是充分性的全部力气所在;
若可行域允许负的 x,a⩽1 就再也推不出 ax⩽x 了。
- (0,0) 这个顶点不是废话。 它给出的 0⩽1 恒真,但那是因为题目额外给了 a⩾0、b⩾0;
若去掉这两条,a、b 可以任意负,区域会变成一个无界的角形,面积无穷大。
- 边界要不要包含,说清楚。 a=1、b=1 都满足条件(此时 ax+by=x+y⩽1),
所以区域是闭正方形。面积不受影响,但写区域时不要漏掉等号。