冷启动:三条不等式围出的是一个三角形
题面给的是三条二元一次不等式:
{ x − 3 y + 4 ≥ 0 3 x − y − 4 ≤ 0 x + y ≥ 0 \begin{cases}
x-3y+4\ge 0\\
3x-y-4\le 0\\
x+y\ge 0
\end{cases} ⎩ ⎨ ⎧ x − 3 y + 4 ≥ 0 3 x − y − 4 ≤ 0 x + y ≥ 0
每一条都是一条直线的一侧 (半个平面),三条同时成立就是三个半平面的公共部分——本题交出来的是一个三角形 (包含三条边)。要在这块地里把 z = 3 x + 2 y z=3x+2y z = 3 x + 2 y 顶到最大。
先确认「最大值存在」。 这不是废话:可行域 若朝 z z z 变大的方向伸到无穷远,最大值就不存在(那种题的答案是「无最大值」)。本题的可行域 是三角形 ,有界 ,闭且有界的区域上连续函数必取到最大值,所以问「最大值是多少」是问得通的。
本题真正的陷阱在选项里。 三角形 的三个顶点算出来是 ( − 1 , 1 ) (-1,1) ( − 1 , 1 ) 、( 1 , − 1 ) (1,-1) ( 1 , − 1 ) 、( 2 , 2 ) (2,2) ( 2 , 2 ) ,
对应的 z z z 值恰好是 − 1 -1 − 1 、1 1 1 、10 10 10 ——四个选项里有三个是顶点的 z z z 值 。
于是「算出一个顶点就填」的人有三分之二的概率填错,而且填的还是个「看起来对得上」的数。
这道题考的不是会不会算交点,是算完之后有没有把三个都比一遍 。
⚠️ 这一节不在现行教材里。 承载它的「二元一次不等式(组)与平面区域」不在现行人教A版 5 册内。浙江自主命题时代它是固定考点,按现行教材备考的读者要先知道这一点(真题页顶部挂着同样的提示)。
解法一:画可行域 ,把目标直线推到停不动
怎么想到的。 z = 3 x + 2 y z=3x+2y z = 3 x + 2 y 里 z z z 一给定,3 x + 2 y = z 3x+2y=z 3 x + 2 y = z 就是一条直线 ;z z z 变,这条直线只是平行地挪 (斜率恒为 − 3 2 -\dfrac32 − 2 3 )。所以「求 z z z 的最大值」就变成了:这一族平行线里,还能碰到可行域 的那条,最远能推到哪里 。
① 三条边界直线,各定一侧。 把不等号换成等号得三条直线:
x − 3 y + 4 = 0 , 3 x − y − 4 = 0 , x + y = 0. x-3y+4=0,\qquad 3x-y-4=0,\qquad x+y=0 . x − 3 y + 4 = 0 , 3 x − y − 4 = 0 , x + y = 0.
哪一侧?拿一个不在线上的点代进去看符号最省事。取 ( 1 , 1 ) (1,1) ( 1 , 1 ) :
约束 把 ( 1 , 1 ) (1,1) ( 1 , 1 ) 代进左边 符号 结论 x − 3 y + 4 ≥ 0 x-3y+4\ge 0 x − 3 y + 4 ≥ 0 1 − 3 + 4 = 2 1-3+4=2 1 − 3 + 4 = 2 正 ( 1 , 1 ) (1,1) ( 1 , 1 ) 在这一侧,取含 ( 1 , 1 ) (1,1) ( 1 , 1 ) 的半平面3 x − y − 4 ≤ 0 3x-y-4\le 0 3 x − y − 4 ≤ 0 3 − 1 − 4 = − 2 3-1-4=-2 3 − 1 − 4 = − 2 负 同上 x + y ≥ 0 x+y\ge 0 x + y ≥ 0 1 + 1 = 2 1+1=2 1 + 1 = 2 正 同上
三条都过了,所以 ( 1 , 1 ) (1,1) ( 1 , 1 ) 在可行域 内——它可以当「区域在哪边」的路标。
② 三条边界两两联立,得三个顶点。
{ x − 3 y + 4 = 0 3 x − y − 4 = 0 ⇒ ( 2 , 2 ) , { x − 3 y + 4 = 0 x + y = 0 ⇒ ( − 1 , 1 ) , { 3 x − y − 4 = 0 x + y = 0 ⇒ ( 1 , − 1 ) . \begin{cases}x-3y+4=0\\ 3x-y-4=0\end{cases}\Rightarrow(2,2),\qquad
\begin{cases}x-3y+4=0\\ x+y=0\end{cases}\Rightarrow(-1,1),\qquad
\begin{cases}3x-y-4=0\\ x+y=0\end{cases}\Rightarrow(1,-1). { x − 3 y + 4 = 0 3 x − y − 4 = 0 ⇒ ( 2 , 2 ) , { x − 3 y + 4 = 0 x + y = 0 ⇒ ( − 1 , 1 ) , { 3 x − y − 4 = 0 x + y = 0 ⇒ ( 1 , − 1 ) .
三个点都要回代验一遍 是否满足另一条约束(本题三个全都满足,故三角形 的顶点就是这三个)。
③ 把目标直线写成斜截式,看清「推哪边 z z z 变大」。
3 x + 2 y = z ⟺ y = − 3 2 x + z 2 . 3x+2y=z\ \Longleftrightarrow\ y=-\frac32x+\frac z2 . 3 x + 2 y = z ⟺ y = − 2 3 x + 2 z .
z 2 \dfrac z2 2 z 是这条直线的纵截距 ,而 z z z 与纵截距同增同减。所以:直线往上(往右上)平移,z z z 变大 。
(这一步别背方向,要现推:把 z z z 解成截距,看截距前面的系数是正是负。本题 y y y 的系数 2 > 0 2>0 2 > 0 ,所以「往上 = 变大」;若目标是 z = 3 x − 2 y z=3x-2y z = 3 x − 2 y ,同样的平移反而让 z z z 变小。)
④ 推到停不动的那一刻。 从三角形 内部开始把这条斜率 − 3 2 -\dfrac32 − 2 3 的直线往右上推,最后离开区域前碰到的是顶点 ( 2 , 2 ) (2,2) ( 2 , 2 ) (三条边界的斜率是 1 3 \dfrac13 3 1 、3 3 3 、− 1 -1 − 1 ,都不等于 − 3 2 -\dfrac32 − 2 3 ,所以目标直线不会与任何一条边重合 ,最后接触的只会是一个顶点,不会是一整条边)。代入:
z max = 3 × 2 + 2 × 2 = 10. z_{\max}=3\times2+2\times2=10 . z m a x = 3 × 2 + 2 × 2 = 10.
与选项 C 相同。
解法二:解出三个顶点,全代一遍
怎么想到的。 上一条路的最后一步「推到停不动」其实只用到一件事:答案落在某个顶点上 。既然可行域 只有三个顶点,那就别推了——把三个顶点的 z z z 全算出来,取最大的 。选择题里这条路更机械、更不容易看错图。
① 三个顶点。 与解法一第 ② 步同,得 ( − 1 , 1 ) (-1,1) ( − 1 , 1 ) 、( 1 , − 1 ) (1,-1) ( 1 , − 1 ) 、( 2 , 2 ) (2,2) ( 2 , 2 ) 。
② 逐个代进 z = 3 x + 2 y z=3x+2y z = 3 x + 2 y 。
顶点 z = 3 x + 2 y z=3x+2y z = 3 x + 2 y 落在哪个选项 ( − 1 , 1 ) (-1,1) ( − 1 , 1 ) 3 × ( − 1 ) + 2 × 1 = − 1 3\times(-1)+2\times1=-1 3 × ( − 1 ) + 2 × 1 = − 1 A ( 1 , − 1 ) (1,-1) ( 1 , − 1 ) 3 × 1 + 2 × ( − 1 ) = 1 3\times1+2\times(-1)=1 3 × 1 + 2 × ( − 1 ) = 1 B ( 2 , 2 ) (2,2) ( 2 , 2 ) 3 × 2 + 2 × 2 = 10 3\times2+2\times2=10 3 × 2 + 2 × 2 = 10 C
三个数里最大的是 10 10 10 ,故 z max = 10 z_{\max}=10 z m a x = 10 ,选 C 。
③ 为什么只看顶点就够(这才是要带走的东西)。 三角形 里任何一点 P P P 都能写成三个顶点 V 1 , V 2 , V 3 V_1,V_2,V_3 V 1 , V 2 , V 3 的凸组合 :
P = λ 1 V 1 + λ 2 V 2 + λ 3 V 3 , λ i ≥ 0 , λ 1 + λ 2 + λ 3 = 1. P=\lambda_1V_1+\lambda_2V_2+\lambda_3V_3,\qquad \lambda_i\ge 0,\ \lambda_1+\lambda_2+\lambda_3=1 . P = λ 1 V 1 + λ 2 V 2 + λ 3 V 3 , λ i ≥ 0 , λ 1 + λ 2 + λ 3 = 1.
而 z = 3 x + 2 y z=3x+2y z = 3 x + 2 y 是一次的,代进去就把系数原样带过去:
z ( P ) = λ 1 z ( V 1 ) + λ 2 z ( V 2 ) + λ 3 z ( V 3 ) ≤ ( λ 1 + λ 2 + λ 3 ) max i z ( V i ) = max i z ( V i ) . z(P)=\lambda_1z(V_1)+\lambda_2z(V_2)+\lambda_3z(V_3)\le(\lambda_1+\lambda_2+\lambda_3)\max_i z(V_i)=\max_i z(V_i) . z ( P ) = λ 1 z ( V 1 ) + λ 2 z ( V 2 ) + λ 3 z ( V 3 ) ≤ ( λ 1 + λ 2 + λ 3 ) i max z ( V i ) = i max z ( V i ) .
所以整块区域上的 z z z 都不超过顶点上的最大值 ——一个顶点都不用画图就能比。这条推理对任何有界凸多边形、任何线性目标都成立,这就是「线性目标的最值在顶点取到」的全部理由。
④ 一个不画图的封顶(自检用)。 把 10 − z 10-z 10 − z 配成两条约束的非负组合:
10 − ( 3 x + 2 y ) = 9 8 ( x − 3 y + 4 ) + 11 8 ( 4 − 3 x + y ) . 10-(3x+2y)=\frac98\,(x-3y+4)+\frac{11}{8}\,(4-3x+y) . 10 − ( 3 x + 2 y ) = 8 9 ( x − 3 y + 4 ) + 8 11 ( 4 − 3 x + y ) .
(展开验一遍:x x x 的系数 9 8 − 33 8 = − 3 \dfrac98-\dfrac{33}8=-3 8 9 − 8 33 = − 3 ✓,y y y 的系数 − 27 8 + 11 8 = − 2 -\dfrac{27}8+\dfrac{11}8=-2 − 8 27 + 8 11 = − 2 ✓,常数项 36 8 + 44 8 = 10 \dfrac{36}8+\dfrac{44}8=10 8 36 + 8 44 = 10 ✓。这两个系数不是猜的——把它们设成未知数 λ 1 , λ 2 \lambda_1,\lambda_2 λ 1 , λ 2 ,让 x x x 、y y y 、常数三处的系数各自对上,解一个二元一次方程组就出来了。)
题面给的是 x − 3 y + 4 ≥ 0 x-3y+4\ge 0 x − 3 y + 4 ≥ 0 与 3 x − y − 4 ≤ 0 3x-y-4\le 0 3 x − y − 4 ≤ 0 ,即右边两个括号都 ≥ 0 \ge 0 ≥ 0 ,于是
10 − z ≥ 0 ⟹ z ≤ 10 , 10-z\ge 0\ \Longrightarrow\ z\le 10 , 10 − z ≥ 0 ⟹ z ≤ 10 ,
且等号成立当且仅当两个括号同时 为零,即 ( x , y ) = ( 2 , 2 ) (x,y)=(2,2) ( x , y ) = ( 2 , 2 ) 。这一行既证了上界、又证了最优点唯一,还一根线都没画。
这两条路差在哪。 解法一是看图 :优点是「z z z 往哪边变大」看得见,可行域 一旦不是三角形 (四条五条约束、或者无界)也照样能推;代价是要把图画准,作图歪一点就会停错顶点——原卷的【点睛】提醒的正是这件事。
解法二是算数 :把无穷多个点压成三个数,选择题里最省心;代价是它依赖「顶点已经全找齐」——四条以上约束时,两两联立会得到一堆不在可行域 里 的假交点,必须逐个回代筛掉(本题三条边界两两只交出三个点,且三个都可行,所以格外便宜)。
记一句话版本:线性目标只在顶点上分出胜负;顶点少就直接代,顶点多就画图推。
🕳️ 避坑
本题四个选项恰好是四种停错位置的产物:
选项 它是什么 错在哪 A − 1 -1 − 1 顶点 ( − 1 , 1 ) (-1,1) ( − 1 , 1 ) 的 z z z 值 那是最小值 ——平移方向推反了(或者把「最大」看成了「最小」) B 1 1 1 顶点 ( 1 , − 1 ) (1,-1) ( 1 , − 1 ) 的 z z z 值 停错了顶点 :算出一个交点就填,没把三个比一遍C 10 10 10 顶点 ( 2 , 2 ) (2,2) ( 2 , 2 ) 的 z z z 值 正确 D 12 12 12 任何顶点都取不到 既然 z ≤ 10 z\le 10 z ≤ 10 ,12 12 12 在可行域 上根本取不到——多半是把 ( 2 , 2 ) (2,2) ( 2 , 2 ) 代成了 3 × 2 + 2 × 3 3\times2+2\times3 3 × 2 + 2 × 3 ,或把目标函数的系数抄成了 3 3 3 与 3 3 3
平移方向要现推,不要背。 把 z z z 解成纵截距(本题 y = − 3 2 x + z 2 y=-\dfrac32x+\dfrac z2 y = − 2 3 x + 2 z )再看符号:y y y 的系数为正时「往上推 z z z 变大」,为负时正好相反。这是本题最容易丢分的一步,A 就是它的产物。
顶点必须回代验。 两两联立得到的交点只是候选 :它满足联立的那两条,第三条不一定满足。约束一多,假交点就冒出来了;把假交点当顶点,可能算出一个比真最大值还大的数(比如本题的 12 12 12 那种「像答案的数」)。
别把「有界」当理所当然——但要问清是 哪一条在封口。 本题封口的不是 x + y ≥ 0 x+y\ge 0 x + y ≥ 0 :
只留 x − 3 y + 4 ≥ 0 x-3y+4\ge 0 x − 3 y + 4 ≥ 0 与 3 x − y − 4 ≤ 0 3x-y-4\le 0 3 x − y − 4 ≤ 0 时,两条一起要求 3 x − 4 ≤ x + 4 3 3x-4\le\dfrac{x+4}{3} 3 x − 4 ≤ 3 x + 4 ,即 x ≤ 2 x\le 2 x ≤ 2 ,
区域是以 ( 2 , 2 ) (2,2) ( 2 , 2 ) 为顶点、朝左 张开的楔形——上界 z ≤ 10 z\le 10 z ≤ 10 照旧成立(解法二第 ④ 步那个恒等式
压根没用到 x + y ≥ 0 x+y\ge 0 x + y ≥ 0 ),最大值还是 10 10 10 。真正会变成「无最大值」的删法是删掉 3 x − y − 4 ≤ 0 3x-y-4\le 0 3 x − y − 4 ≤ 0 :
那时区域朝右无界,沿边界 y = − x y=-x y = − x 走有 z = 3 x + 2 y = x → + ∞ z=3x+2y=x\to+\infty z = 3 x + 2 y = x → + ∞ 。
所以看到「求最大值」,该问的不是「约束够不够多」,而是**「z z z 变大的那个方向,被哪条约束挡住了」**。
选项互相印证。 三个选项都是顶点值这件事本身就是提示:它说明命题人料到了「只算一个顶点」这种错。反过来用——若你算出的数与另外两个选项都不同,那大概是算错了坐标。
对照选项 A. − 1 -1 − 1 、B. 1 1 1 、C. 10 10 10 、D. 12 12 12 ,故选 C 。