【问题标题】:Minimization of convex stochastic values凸随机值的最小化
【发布时间】:2013-08-21 20:31:31
【问题描述】:

我有一个等距值的变量(假设values=0:1e-3:1)。我想从最接近均匀随机值的values 获取值及其对应索引(假设x=rand)。

我可以做[value,vIdx]=min(abs(values-x)),这是我能做的最简单的最小化。 很遗憾,min 函数不会利用数据中的一个属性,即凸性。我不需要搜索所有索引,因为只要找到一个不小于前一个的索引,我就找到了全局最小值。就是说,我不想用 matlab min 函数代替一个循环,该循环会根据它与我将开始的值的距离而变慢。有很多方法可以使用,作为黄金分割,但我不确定使用 matlab fmincon 是否会比min 方法更快。

有没有人有任何提示/想法如何比使用所描述的min 方法更快地获得所需的值?有时间我会检查时间表现,但是如果有人先验地知道一个好的答案,请告诉我。

可能的应用:捕捉到最近的图形数据

【问题讨论】:

    标签: matlab minimize


    【解决方案1】:

    由于您的点是等距的,您可以使用值x 来查找索引:

    vIdx = 1+round(x*(numel(values)-1));
    

    这个想法是您将间隔 [0, 1] 划分为 numel(values)-1 等大小的间隔。现在通过将x 乘以该数字,您将间隔映射到[0, numel(values)-1],您的点被映射到整数值。现在使用 round 得到最接近的索引,加上 1 得到 MATLAB 需要的基于 1 的索引。

    【讨论】:

    • 您能否将您的公式更新为更通用的公式,以防值边界不是[0,1]:vIdx = 1+round((x-values(1))*(numel(values)-1)/(values(end)-values(1)))。谢谢你的回答,我想我已经习惯了迭代方法 x(
    猜你喜欢
    • 2021-06-11
    • 1970-01-01
    • 2011-01-15
    • 2019-01-26
    • 2016-06-27
    • 2020-09-02
    • 2015-05-07
    • 2011-02-09
    • 2023-03-25
    相关资源
    最近更新 更多