Matlab 对于雅可比矩阵,lsqcurvefit实际返回的是什么?

Matlab 对于雅可比矩阵,lsqcurvefit实际返回的是什么?,matlab,Matlab,当使用lsqcurvefit执行非线性最小二乘拟合,并将雅可比矩阵作为输出(即[x,resnorm,残差,exitflag,output,lambda,Jacobian]=lsqcurvefit(…))时,我得到雅可比矩阵的6x6。我估计的状态中的参数数量是6,测量中的维度数量是2,所以我希望是2x6矩阵。这是怎么回事?所以,我想起来了。由于我有三个2x1观测值,因此内部lsqcurvefit将它们存储为6x1向量,而不是我所想的方式(2x3矩阵)(参见)。这部分是因为文件不清楚,部分是因为我对

当使用
lsqcurvefit
执行非线性最小二乘拟合,并将雅可比矩阵作为输出(即
[x,resnorm,残差,exitflag,output,lambda,Jacobian]=lsqcurvefit(…)
)时,我得到雅可比矩阵的6x6。我估计的状态中的参数数量是6,测量中的维度数量是2,所以我希望是2x6矩阵。这是怎么回事?

所以,我想起来了。由于我有三个2x1观测值,因此内部
lsqcurvefit
将它们存储为6x1向量,而不是我所想的方式(2x3矩阵)(参见)。这部分是因为文件不清楚,部分是因为我对最小二乘法的误解


无论如何,返回的雅可比矩阵基本上是三个2x6雅可比矩阵(观测集i相对于6维状态的部分),彼此叠加,这是最小二乘雅可比矩阵的预期行为。如果我有第四个观测点,雅可比数将是8x6。

你有多少个观测点?@macduff在这种情况下我有三个观测点。你的优化设置是什么?当我调用此函数时,我得到的维度类似于
状态数
X
观察数
,您能否发布问题的精简版本,以便我可以重新创建它?