我正在学习物理学并遇到了一个非常有趣的问题。我不是编程方面的专家,所以请在阅读本文时考虑到这一点 我真的希望有人可以帮助我解决这个问题,因为我现在在这个问题上挣扎了大约2个月并且没有看到任何成功。
我从数值计算得到了一堆数据集(超过2个,少于20个)。该组由x给出测量值。我有一组传感器,想要为我的传感器找到最佳位置x,使得插值的积分尽可能接近数值数据集的积分。
这听起来像是一个典型的数学问题,我开始寻找一些定理,但我没有找到任何东西。 所以我开始编写一个基于SLSQP最小化器的python程序。我选择它是因为它可以处理边界和约束。 (注意,传感器始终为0,一个传感器为1)
约束:传感器阵列必须始终保持排序,使x_i小于x_i + 1,x的间隔归一化为[0,1]。
在进行整体优化之前,我开始寻找好的起点并搜索给定数据集的最大值,最小值和线性区域。但是,超过40个值的优化结果却产生了不好的结果。
在我的第二次尝试中,我开始搜索这些点并定义了某些区域。所以我用1到40个传感器优化了每个区域。然后我比较了结果并决定了哪个区域值得投入更多的传感器。我最后一步我想再次进行整体优化。但是这些想法似乎也不是正确的解决方案,因为优化也存在收敛问题。
最大的问题是,我的优化器打破了界限。我通过中断优化来解决这个问题,因为一旦这个边界被打破,结果最终就不正确了。如果发生这种情况,我会重置初始设置和均匀分布。在此之后通常没有边界的暴力,但结果似乎也是一个均匀的分布,通常这显然不是完美的分布。
由于我的算法适用于简单的示例,而且模拟更复杂的数据,我认为存在一个普遍的问题,而不仅仅是编码中的一些错误。有没有人知道如何继续前进或知道关于这个问题的一些理论上的东西?
附图显示了不同颜色的区域。功能显示在底部,传感器位置表示为点。值y = 1的点来自优化,其中一个传感器2表示具有2个变量的优化结果。因此,当程序达到更高的传感器数量时,整个过程变得越来越均匀。
很容易看出,如果n是传感器的数量且n变为无穷大,则总的均匀分布。但据我所知,这不应该只发生10个传感器。