2

我正在使用 Matlab 中的 lsqcurvefit 函数对一些实验数据进行建模。数据具有特定的形状,因此算法只是调整该形状的系数以改变其幅度等。

该模型工作正常并且非常适合(我已经计算了 chi-sq)。Levenberg-Marquardt 算法的其他实现将协方差作为输出,但在 Matlab 中它不是输出的选项(只有一阶最优性,没有迭代,Lambda 和 Jaccobian 以及边界)。

有人知道如何通过 lsqcurvefit 或独立地从给定的输出(我不是 100% 了解 lambda 和 jaccobian 的用途或一阶最优性)计算协方差矩阵吗?

任何帮助将不胜感激,谢谢!

4

1 回答 1

2

我想我自己已经解决了这个问题,但是如果其他人遇到同样的问题,我会在这里发布。

协方差矩阵可以通过雅可比行列式计算:

C = inv(J'*J)*MSE

其中 MSE 是均方误差:

MSE = (R'*R)/(Np)

其中 R = 残差,N = 观察次数,p = 估计的系数数。

或者可以通过迭代计算 MSE。

希望这将有助于将来的其他人。

如果有人发现错误,请告诉我。谢谢

于 2015-06-10T15:00:32.707 回答