给定y轴上的缩放和x轴上的平移(t)的参数,当目的是最大化曲线叠加(不是最小化距离)时,如何缩放和对齐两条不重合的曲线?
正如@DWin所说,这可以改名为"如何与R完美地玩俄罗斯方块",尽管它的应用程度远远超过了赢得俄罗斯方块游戏.
这个问题的变体可能涉及任意数量的刚体变换(旋转,平移和缩放).
给定曲线1
curve1<-data.frame(x=c(1,1,2,2,3),
y=c(9,6,6,3,3))
with(curve1, plot(x=x, y=y, type="l", xlim=c(0,10), ylim=c(0,10)))
Run Code Online (Sandbox Code Playgroud)

和曲线2
curve2<-data.frame(x=c(4,5,5,6,6,7),
y=c(2,2,1,1,2,3))
with(curve2, plot(x=x, y=y, type="l", xlim=c(0,10), ylim=c(0,10)))
Run Code Online (Sandbox Code Playgroud)

我希望找到最大化两条曲线之间叠加的s和t.
理想情况下,该方法将在R中使用optim.
在这个组成的例子中,t = 3且s = 1/3,所以
t=3
s=1/3
with(curve2, plot(x=x, y=y, type="l", xlim=c(0,10), ylim=c(0,10)))
with(curve1, lines(x=x+t, y=y*s, col="red"))
Run Code Online (Sandbox Code Playgroud)

注意,为了获得这样的拟合,可以具有共识的区域必须具有比不能叠加的区域更高的参数化权重,并且共识区域越大,权重越高.
我一直在探索的小径:
使用最大似然的方法的加分点(假设误差的正态分布).