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

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

一些定义:
fxi\frac{\partial f}{\partial x_ i}代表ffxix_ i的偏导。
f=[fx1,fx2,...]\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的值可以发生变化。
所以fxi=jλjgjxi,i,j\frac{\partial f}{\partial x_ i}=\sum_ j \lambda j \frac{\partial g_ j}{\partial x_ i},\forall i,j
gg的限制联立可以得到典型方程组:

{fxi=jλjgjxii,jgj(x1,x2,...)=0j\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只有一项的话,等式就变成了这个样子:

{fxi=λgxii,jg(x1,x2,...)=0j\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的形式来逼近限制。