在测量平差中,我们知道平差的准则是
VTPT=min,间接平差中,我们的目标依然是
VTPT=min,但在附有限制条件的间接平差中,我们的目标却是
VTPV+2KsT(Cx^−Wx)=min。那么这个后面加上的
2KsT(Cx^−Wx)是什么呢?为什么要加上呢。这就要从说起拉格朗日乘数法
先举个例子
已知
4x2+y2+xy=1,求
2x+y的最大值
这就是一个求极值的问题,但是是在某一个条件下。我们最容易想到的是换元法、消元法等。但在这里我们就可以用到一个新的方法——拉格朗日乘数法
先就这个问题来看,
f(x)=2x+y是我们的目标函数,
g(x)=4x2+y2+xy−1=0是我们的条件函数,那么我们就可以构造拉格朗日函数
L(x,y,λ)=f(x,y)+λg(x,y)
=2x+y+λ(4x2+y2+xy−1)
由于
g(x)=0,所以
L(x,y,λ)和
f(x,y)就是一样的,求
f(x,y)的最大值,就是求
L(x,y,λ)的最大值
在没有条件的求极值的时候,通常是对每个变量求偏导,然后使得每个偏导同时为零,得到驻点,再进行判断。这里的
L(x,y,λ)已经算一个没有约束的目标了,所以对各个变量求偏导并使其为零
Lx′(x,y,λ)=fx′(x,y)+λgx′(x,y)⋅⋅⋅①
Ly′(x,y,λ)=fy′(x,y)+λgy′(x,y)⋅⋅⋅②
Lλ′(x,y,λ)=g(x,y)=0⋅⋅⋅③
由①②得到④
gx′(x,y)fx′(x,y)=gy′(x,y)fy′(x,y)⋅⋅⋅④
计算得到
y=2x,代入③中得到
x=±1010
,y=±510
,所以
f(x)max=5210
现在我们解决了这个题,我们就可以回到开头,回答间接平差的目标是
VTPV=min,而附有参数的间接平差的目标是
VTPV+2KsT(Cx^−Wx)=min。我们看看附有参数的间接平差的基础方程
v=Bx^−l误差方程
Cx^−Wx=0 条件方程
根据误差方程我们知道
VTPV=min,也就是上面的目标函数
f(x),而这里的条件方程
x^−Wx=0就是间接平差的约束条件,也就是上面的条件函数
g(x),那么就有
L(x,y,λ)=f(x)+λg(x)=VTPV+λ(Cx^−Wx)
这里的
λ换成
2KsT,就得到了
L(x,y,λ)=f(x)+λg(x)=VTPV+2KsT(Cx^−Wx)
式中
KsT是拉格朗日乘子,前面系数
2是为了让结果更简洁
现在我们知道了怎么用拉格朗日乘数法计算条件极值的问题。注意拉格朗日乘数法得到的结果是可能的极值点(偏导存在的极值点),是极大值极小值或者没有极值的情况,需要根据题目和函数判断
那么为什么这样可以得到约束下的极值。下面的图中蓝色的虚线是
f(x,y)=p的图像,红色的是约束条件
g(x)的图像
(图源:https://en.wikipedia.org/wiki/Lagrange_multiplier)
如我们要在图中找到一个极值,也就是这个
d1,我们可以发现
f(x)和
g(x)相切了。如果蓝色的圈还小于
d1,则根本没有满足约束条件
g(x),而当在
d2或
d3位置时如果是极值,那么沿着红线移动又会与其他的
di相交,所以
d2或
d3一定不是极值点。所以就得到了极值点
f(x)和
g(x)相切。就意味着两个函数的法线在切点重合,也就是两个函数的法向量相差一个系数
λ,就得到
(fx′,fy′)=λ(gx′,gy′),也就是拉格朗日乘数法的几何上的理解
拉格朗日乘数法的推广
目标函数:
f(x1,x2,x3⋅⋅⋅xn)
约束条件:
g1(x1,x2,x3⋅⋅⋅xn)
g2(x1,x2,x3⋅⋅⋅xn)
⋅⋅⋅
gn(x1,x2,x3⋅⋅⋅xn)
拉格朗日函数:
L(x,y,λ)=f(x1,x2,x3⋅⋅⋅xn)+λ1g1(x1,x2,x3⋅⋅⋅xn)+λ2g2(x1,x2,x3⋅⋅⋅xn)+⋅⋅⋅+λngn(x1,x2,x3⋅⋅⋅xn)
令以下式子为零:
Lx1′=0
Lx2′=0
⋅⋅⋅
Lxn′=0
Lλ1′=0
Lλ2′=0
⋅⋅⋅
Lλn′=0
则满足的点就可能是极值点
参考:
https://zhuanlan.zhihu.com/p/38625079
https://liam.page/2018/10/12/Lagrange-Multiplier-Method/