gpt4 book ai didi

algorithm - 以最小偏差匹配曲线的比例因子

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:24:22 27 4
gpt4 key购买 nike

我有几组曲线,其形状与我的目标曲线不同。我试图通过将它们的幅度乘以比例因子来将这些曲线与目标曲线相匹配。我只需要一个最佳比例因子,这样我的数据就可以在指定范围内以最小偏差跟随目标的形状。对于这种情况,我应该使用多目标优化还是有更好的算法可用?

这是我的数据和目标曲线示例向量数组:

x=[ 0.1000  0.1072  0.1149  0.1232  0.1320  0.1415  0.1517  0.1626  0.1742...
0.1868 0.2002 0.2146 0.2300 0.2465 0.2643 0.2833 0.3036 0.3254...
0.3488 0.3739 0.4008 0.4296 0.4605]

data=[0.6080 0.6413 0.668 0.6888 0.6923 0.6490 0.6018 0.6461 0.6862 0.6519 0.7454...
0.9117 0.9508 0.8383 0.6244 0.5010 0.4517 0.4484 0.4131 0.3792 0.3502 0.3300 0.3235]


target=[0.8666 0.8810 0.9026 0.9275 0.9542 0.9828 1.0120 1.0342 1.0578 1.0829 1.1096...
1.1411 1.1749 1.2110 1.2413 1.2713 1.2955 1.2955 1.2817 1.2659 1.2618 1.2559 1.2034]

如果我想在 x=0.2 处匹配振幅,我只需在该点除以曲线的振幅以找到比例因子,然后将数据与该因子相乘,但比例曲线的形状会导致其他目标的较大偏差x 值的范围。实际上,我无法弄清楚如何找到适合 x=0.2 的最佳比例因子以及缩放数据曲线以最小偏差跟随目标。有什么想法吗?

最佳答案

使用fminbnd .它的第一个参数是要最小化的函数的句柄。该函数应该是您的“偏差”,它取决于优化参数,在本例中为 scale

您需要指定您的优化标准(即,您如何定义“偏差”)。我建议你使用 norm为了那个原因。 norm 的第二个参数指示您使用的规范。将其设置为 2 对应于最小化平方误差。有关其他选项,请参阅文档(上面的链接)。

optScale = fminbnd(@(scale) norm(scale*data-target, 2), .1, 10);

根据您的示例数据和 2-norm 标准,最佳比例(最小化曲线之间的平方误差)是

>> optScale = fminbnd(@(scale) norm(scale*data-target, 2), .1, 10)
optScale =
1.6921

关于algorithm - 以最小偏差匹配曲线的比例因子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20927375/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com