最小化 Java 中的绝对函数
minimize absolute function in Java
我正在研究 Java 中的绝对函数最小化问题。谁能推荐图书馆和解决方案?
我下载了apache common math3
,但是找不到相关函数来创建线性函数来最小化绝对函数。
简单地说,我正在考虑在 Java 中编写以下函数。
f(x) = b + | x - a | + d + | x - c | + f + | x - e |
我已经为我的第二个问题稍微编辑了这个问题,这里 b、d、f 也是线性函数。
b = a1x + b1
d = a2x + b2
f = a3x + b3
如果您对 |x - a_i|
形式的 N 项求和,请将梯度视为 x
从负无穷大增加:
- 在负无穷大处,对于 left-hand 数轴的大部分,梯度为
-N
;
- 当您通过
a_i
值中的最小值时,梯度会略微增加,达到 -N+2
;
- 当您传递
a_i
值中的下一个最小值时,梯度再次增加,达到 -N+4
。
- 每
a_i
通过,梯度增加2;
- 在正无穷大处,梯度为
+N
。
因此,梯度从负开始,在每个 a_i
位置逐步增加,并以正结束;您正在寻找梯度为零的点或范围。这将发生 "in the middle",即在值的中位数 a_i
.
- 如果有奇数个点,则中位数会在一个点上。题中是这样的:最小值在
median(a, c, e)
.
- 如果有偶数个点,则中位数在两点之间。在这种情况下,函数在这些点之间的任何位置被最小化。
我正在研究 Java 中的绝对函数最小化问题。谁能推荐图书馆和解决方案?
我下载了apache common math3
,但是找不到相关函数来创建线性函数来最小化绝对函数。
简单地说,我正在考虑在 Java 中编写以下函数。
f(x) = b + | x - a | + d + | x - c | + f + | x - e |
我已经为我的第二个问题稍微编辑了这个问题,这里 b、d、f 也是线性函数。
b = a1x + b1
d = a2x + b2
f = a3x + b3
如果您对 |x - a_i|
形式的 N 项求和,请将梯度视为 x
从负无穷大增加:
- 在负无穷大处,对于 left-hand 数轴的大部分,梯度为
-N
; - 当您通过
a_i
值中的最小值时,梯度会略微增加,达到-N+2
; - 当您传递
a_i
值中的下一个最小值时,梯度再次增加,达到-N+4
。 - 每
a_i
通过,梯度增加2; - 在正无穷大处,梯度为
+N
。
因此,梯度从负开始,在每个 a_i
位置逐步增加,并以正结束;您正在寻找梯度为零的点或范围。这将发生 "in the middle",即在值的中位数 a_i
.
- 如果有奇数个点,则中位数会在一个点上。题中是这样的:最小值在
median(a, c, e)
. - 如果有偶数个点,则中位数在两点之间。在这种情况下,函数在这些点之间的任何位置被最小化。