如何计算区域的下边界?

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} ]




以上是关于如何计算区域的下边界?的主要内容,如果未能解决你的问题,请参考以下文章

NSSA区域处于边界引入默认路由该怎么处理呢?

Python:沿边界从图像中裁剪区域

如何计算边界矩形的宽度,以使文本包裹以适合特定比例?

HFSS19 官方中文教程系列 L02

百度地图API如何获取行政区域的边界? (转载)

ArcGIS中,可不可以把某一区域的边界由实线转换为虚线?