Julia 多变量输出是否使用LsqFit?

Julia 多变量输出是否使用LsqFit?,julia,least-squares,Julia,Least Squares,我想用一些输入/输出(x,y)点拟合一个几何映射参数。模型非常简单: xp = x .+ k.*x.*(x.^2+y.^2) yp = y .+ k.*y.*(x.^2+y.^2) k是唯一的参数,(x,y)是输入点,(xp,yp)是输出点。 我将输入/输出数据数组公式化为: x = [x for x=-2.:2. for y=-2.:2.] y = [y for x=-2.:2. for y=-2.:2.] in_data = [x y] out_data = [xp yp] 然而,我对如

我想用一些输入/输出(x,y)点拟合一个几何映射参数。模型非常简单:

xp = x .+ k.*x.*(x.^2+y.^2)
yp = y .+ k.*y.*(x.^2+y.^2)
k是唯一的参数,(x,y)是输入点,(xp,yp)是输出点。 我将输入/输出数据数组公式化为:

x = [x for x=-2.:2. for y=-2.:2.]
y = [y for x=-2.:2. for y=-2.:2.]
in_data = [x y]
out_data = [xp yp]
然而,我对如何将其转化为LsqFit模型感到困惑,我尝试:

k0=[0.]
@. model(x,p) = [x[:,1]+p[1]*x[:,1]*(x[:,1]^2+x[:,2]^2) x[:,2]+p[1]*x[:,2]*(x[:,1]^2+x[:,2]^2)]
ret = curve_fit(model, in_data, out_data, k0)
但有一个错误:

尺寸不匹配(“尺寸必须匹配:a有DIM(基准尺寸为25), 基本。OneTo(2)),必须在dim 2)处具有单态


所以问题是:是否可以将LsqFit用于多变量输出?(即使这个特殊的问题可以用解析的方法解决)

好了,我们找到了正确的方法。向量输出变量需要叠加在一起,形成一维数组。因此,唯一需要的改变是:

out_data = [xp; yp]

好的,我找到了正确的方法。向量输出变量需要叠加在一起,形成一维数组。因此,唯一需要的改变是:

out_data = [xp; yp]

在我看来,最小化在你的案例中没有很好的定义?在模型拟合方面,您如何比较预测(x,y)与输入数据偏离(0.5,0.5)的模型与偏离(0.25,0.75)的模型?您可能应该考虑计算标量距离概念的适当范数。输入/输出数据点之间的2范数/欧几里德距离不是很好吗?在我看来,在您的例子中,最小化没有很好地定义?在模型拟合方面,您如何比较预测(x,y)与输入数据偏离(0.5,0.5)的模型与偏离(0.25,0.75)的模型?您可能应该考虑计算标量距离概念的适当范数。输入/输出数据点之间的2范数/欧几里德距离不是很简单吗?