如何计算区域的下边界?
Posted archerc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何计算区域的下边界?相关的知识,希望对你有一定的参考价值。
如下图所示,如何计算曲线的下边界?
设输入的数据为 ({(x_n, y_n)}_{n=1}^{N}), 直线方程为 (y = k x + b)。 根据拉格朗日乘子法,求解优化问题
[ egin{align} min_{k, b} quad & f(k, b) = sum_{n=1}^{N}{ (y_n - k x_n - b)^2 } \\text{s.t.} quad & y_n ge k x_n + b, quad n = 1, cdots, N end{align} ]
等价于最小化
[ egin{align} min_{k, b} quad & g(k, b, lambda) = sum_{n=1}^{N}{ [(y_n - k x_n - b)^2 + lambda_n(k x_n + b - y_n)]} \\text{s.t.} quad & lambda_n ge 0, quad n = 1, cdots, N end{align} ]
其最优解满足KKT条件
[ egin{align} 2sum_{n=1}^{N}{(y_n - k x_n - b)x_n} = sum_{n=1}^{N} {lambda_n x_n} 2sum_{n=1}^{N}{(y_n - k x_n - b)} = sum_{n=1}^{N} {lambda_n} \\lambda_n(y_n - k x_n - b) = 0, quad n = 1, cdots, N y_n ge k x_n + b, quad n = 1, cdots, N \\lambda_n ge 0, quad n = 1, cdots, N end{align} ]
其中,关于 (k) 和 (b) 的方程可以写为
[
egin{align}
(2sum_{n=1}^{N}{ x_n ^2}) k + ( 2sum_{n=1}^{N}{ x_n}) b & = 2sum_{n=1}^{N}{y_n x_n} - sum_{n=1}^{N} {lambda_n x_n} (2sum_{n=1}^{N}{x_n} ) k + 2Nb & = 2sum_{n=1}^{N}{y_n} - sum_{n=1}^{N} {lambda_n}
end{align}
]
写成矩阵形式
[
egin{align}
left[egin{array}{cc}
sum_{n=1}^{N}{ x_n ^2} & sum_{n=1}^{N}{ x_n} 2sum_{n=1}^{N}{x_n} & N
end{array}
ight]
left[ egin{array}{c} k \\ b end{array}
ight]
& = left[egin{array}{c}
sum_{n=1}^{N}{y_n x_n} - frac{1}{2} sum_{n=1}^{N} {lambda_n x_n} \\sum_{n=1}^{N}{y_n} - frac{1}{2}sum_{n=1}^{N} {lambda_n}
end{array}
ight]
end{align}
]
以上是关于如何计算区域的下边界?的主要内容,如果未能解决你的问题,请参考以下文章