一年多前学的东西,现在全都忘了,也没有时间深入。。。

现在有一个连续可导的函数f(x1,x2,...)f(x_ 1,x_ 2,...)。
给出一些限制条件gi(x1,x2,...)=0g_ i(x_ 1,x_ 2,...)=0。
求ff的最大值(最小值同理)。

一些定义:
∂f∂xi\frac{\partial f}{\partial x_ i}代表ff对xix_ i的偏导。
∇f=[∂f∂x1,∂f∂x2,...]\nabla f=[\frac{\partial f}{\partial x_ 1},\frac{\partial f}{\partial x_ 2},...]表示ff的梯度向量

可以发现一个极大值点他的梯度向量一定为0,否则总可以沿着梯度向量的方向走足够小的一段距离达到更大的值。

合法范围如果不连续直接求就是了。
边界情况还没考虑清楚,但有些地方并不完全适用。

结论:如果这个点是合法范围的一个极值点,那么∇f\nabla f一定能被∇g\nabla g线性表示出来。
感性理解:把∇g\nabla g表示出来的空间想象成一个超平面。x⃗\vec x可以向这个超平面的法向量方向走一步,而不引起gg的变化,却因为走的这一步不和∇f\nabla f垂直(否则∇f\nabla f在超平面内)导致ff的值可以发生变化。
所以∂f∂xi=∑jλj∂gj∂xi,∀i,j\frac{\partial f}{\partial x_ i}=\sum_ j \lambda j \frac{\partial g_ j}{\partial x_ i},\forall i,j
与gg的限制联立可以得到典型方程组:

{∂f∂xi=∑jλj∂gj∂xi∀i,jgj(x1,x2,...)=0∀j\left\{ \begin{array}{rcl} \frac{\partial f}{\partial x_ i} & = & \sum_ j \lambda_ j \frac{\partial g_ j}{\partial x_ i} & \forall i,j \\ g_ j(x_ 1,x_ 2,...) & = & 0 & \forall j \end{array}\right.


如果g只有一项的话,等式就变成了这个样子:

{∂f∂xi=λ∂g∂xi∀i,jg(x1,x2,...)=0∀j\left\{ \begin{array}{rcl} \frac{\partial f}{\partial x_ i} & = & \lambda \frac{\partial g}{\partial x_ i} & \forall i,j \\ g(x_ 1,x_ 2,...) & = & 0 & \forall j \end{array}\right.

对于一个λ\lambda,可以根据根据第一条算出每一个xix_ i。
假如gg对于λ\lambda单调,可以通过二分λ\lambda的形式来逼近限制。