2024-06-11 05:46:06 发布
网友
我有一个参考浮动列表,例如
x_ref = [-0.1, 1.0, 1.2, 3.5, 7.5, 12.0]
我想找到一个x的列表,这样可以实现两件事:
x
dist
x_ref
1/2 sum((x_ref[i] - x[i]) ** 2) -> min
我做了些东西,但它太臃肿了,可能有马车。也许这里有个简单的方法。有什么提示吗
首先,您需要确定列表中的每个严重拥挤区域,最大的子序列(i,j)如下
(x[j] - x[i]) / 2.0 < j-i
编辑 尼科的评论恰到好处:我没有考虑在一端有一个有效的空位。我认为调整间隙识别将达到目的
(x[j] - x[i]) / 2.0 < j-i-1
编辑结束
在您给定的示例中,只有一个这样的位置,值为-0.1到3.5,差为3.6,其中要求排列为6.0。最小排列将由闭合区间[0,(j-i)]k的数p + 2.0 * k组成
p + 2.0 * k
您现在有了错误的表达式:
sum for k = 0, (j-i) (x[k] - (p + 2k))^2
所有x[k]值都已知,所有2k值都已知。展开表达式,求解p,并最小化导数并将其设置为0。得到的p值为x[i]提供了一个新值,其他值也随之产生
x[k]
2k
p
x[i]
首先,您需要确定列表中的每个严重拥挤区域,最大的子序列(i,j)如下
编辑 尼科的评论恰到好处:我没有考虑在一端有一个有效的空位。我认为调整间隙识别将达到目的
编辑结束
在您给定的示例中,只有一个这样的位置,值为-0.1到3.5,差为3.6,其中要求排列为6.0。最小排列将由闭合区间[0,(j-i)]k的数
p + 2.0 * k
组成您现在有了错误的表达式:
所有
x[k]
值都已知,所有2k
值都已知。展开表达式,求解p
,并最小化导数并将其设置为0。得到的p
值为x[i]
提供了一个新值,其他值也随之产生相关问题 更多 >
编程相关推荐