拉格朗日乘数法与一个100元最值问题探究
bmatrix
·
·
学习·文化课
前言
主播备考羟基时遇到了这么一道题:
已知 99 个实数 a_1,a_2,\dots,a_{99},\forall i,a_i\in[-2,2],\sum\limits_{i=1}^{99}a_i=0,求 \sum\limits_{i=1}^{99} a_i^3 的最大值。
答案给的方法是,构造局部不等式:x\in[-2,2] 时,x^3\le 3x+2,当且仅当 x=2 或 x=-1 时取等。然后我们有:
\sum_{i=1}^{99}a_i^3\le\sum_{i=1}^{99}(3a_i+2)=99\times 2=198
当且仅当 a_1,a_2,\dots,a_{99} 中有 33 个为 2,66 个为 -1 时取等号。故最大值为 198。
然而这个取等条件看起来很凑巧,当元素个数变为 100 个时就无法取到了。那么有没有方法能得到 n=100 时的最大值呢?
偏导数
对于二元函数 f(x,y),定义
\lim_{\Delta x\rightarrow0}\frac{f(x_0+\Delta x,y_0)-f(x_0,y_0)}{\Delta x}
为 f(x,y) 在 (x_0,y_0) 处对 x 的偏导数,在本文中,我们将其记作 f_x(x_0,y_0)。类似地,我们也可以定义 f_y(x_0,y_0)。
例如,对于 f(x,y)=xy^2,有 f_x(x,y)=y^2,f_y(x,y)=2xy。
这容易推广到自变量更多的情况,不再赘述。
拉格朗日乘数法
对于多元函数 f:\R^n\rightarrow \R,我们要求在满足以下条件时的极值:
\begin{cases}
\varphi_1(x_1,x_2,\dots,x_n)=0\\
\varphi_2(x_1,x_2,\dots,x_n)=0\\
\dots\\
\varphi_m(x_1,x_2,\dots,x_n)=0
\end{cases}
可以采用以下方法:
构造函数 L(x_1,x_2,\dots,x_n,\lambda_1,\lambda_2,\dots,\lambda_m)=f(x_1,x_2,\dots,x_n)+\lambda_1\varphi_1(x_1,x_2,\dots,x_n)+\lambda_2\varphi_2(x_1,x_2,\dots,x_n)+\dots+\lambda_m\varphi_m(x_1,x_2,\dots,x_n), 令 L 的每一维(共 n+m 维)偏导数均为 0,解出的 (x_1,x_2,\dots,x_n) 就可能是 f 的一个极值点。
如果上面的描述过于抽象,可以考虑 n=2,m=1 的例子:
要求 f(x,y) 在 \varphi(x,y)=0 条件下的极值,构造 L(x,y,\lambda)=f(x,y)+\lambda\varphi(x,y),解方程组:
\begin{cases}
L_x(x,y,\lambda)=0\\
L_y(x,y,\lambda)=0\\
L_\lambda(x,y,\lambda)=\varphi(x,y)=0
\end{cases}
解出的 (x_0,y_0) 就可能是 f 的一个极值点。
求最值
显然极值点不一定是最值点,最值还可能在某些自变量取到边界值时取到,因此,要注意验证边界情况。
例题
已知 n=100 个实数 a_1,a_2,\dots,a_{n},\forall i,a_i\in[-2,2],\sum\limits_{i=1}^{n}a_i=0,求 \sum\limits_{i=1}^{n} a_i^3 的最大值。
设 f(a_1,a_2,\dots,a_n)=\sum\limits_{i=1}^na_i^3,\varphi(a_1,a_2,\dots,a_n)=\sum\limits_{i=1}^n a_i,则 L(a_1,a_2,\dots,a_n,\lambda)=\sum\limits_{i=1}^na_i^3+\lambda\sum\limits_{i=1}^na_i。
易知 L_{a_i}(a_1,a_2,\dots,a_n,\lambda)=3a_i^2+\lambda=0,我们要解以下方程组:
\left\{
\begin{aligned}
&3a_1^2+\lambda=0\\
&3a_2^2+\lambda=0\\
&\dots\\
&3a_n^2+\lambda=0\\
&\sum\limits_{i=1}^na_i=0
\end{aligned}
\right.
则 a_i=\sqrt{-\dfrac3\lambda} 或 a_i=-\sqrt{-\dfrac3\lambda}。记 t=\sqrt{-\dfrac3\lambda},t\in[0,2]。
又因为 \sum\limits_{i=1}^na_i=0,那么必然是 \dfrac n2 个 t,\dfrac n2 个 -t。
在这种情况下,f(a_1,a_2,\dots,a_n)=0,显然这不是最大值,因此我们要考虑一些自变量取到边界时的情况。
显然取 -2 一定不优,因此设有 k\,(k\in\N^*) 个自变量取到 2,在剩余的 n-k 个自变量中,有 m\,(m\in\N) 个 t 和 n-m-k 个 -t。
则
\begin{aligned}
&\sum_{i=1}^na_i=2k+mt+(n-m-k)(-t)=2k-(n-k-2m)t&(1)\\
&\sum_{i=1}^na_i^3=8k+mt^3+(n-m-k)(-t)^3=8k-(n-k-2m)t^3&(2)
\end{aligned}
换元令 s=n-k-2m,考虑一下 k 和 s 的范围:
首先 m=-\dfrac12(s+k)+\dfrac n2\in[0,n-k],解得 k-n\le s\le n-k。
又由于 (1) 式为 0,所以 t=\dfrac{2k}s\in[0,2),解得 k<s。
所以 k<s\le n-k。
我们要求的 (2) 式可化为 8k-st^3=8k-2kt^2=(8-2t^2)k,我们要求这个式子的最大值:
固定 k,由于 k>0,我们要求 t 尽可能小。
根据 k<s\le n-k ,容易知道 t=\dfrac{2k}s\ge\dfrac{2k}{n-k},因此我们只需求 g(k)=\left[8-2\left(\dfrac{2k}{n-k}\right)^2\right]k 的最大值。
用 Geogebra 画出 g(k) 和 g'(k) 的图像,当 n=100 时,g'(k) 的零点是 \dfrac{100}{33},在区间 (33,34) 内。
此外,如果我们令 $n=99$,则 $g'(k)$ 的零点为 $33$,正对应着前言的那道题。