因此,我正在使用 levenberg-marquardt 算法研究拟合算法,但我对如何处理固定参数感到有些困惑。环顾其他代码,例如 lm 算法的 minpack 版本,看起来它们只是将固定参数的 jacobian 列设置为 0.0,这是有道理的,因为它们没有改变。如果没有任何固定参数,则正在以数字方式计算并且工作正常。
问题是我总是得到一个奇异的不可逆矩阵当我这样做时,例如
[[ 1005, 0, -110500],
[ 0, 0, 0],
[ -110500, 0, 3.013e7]]
(在这种情况下,第二个参数保持不变......)
有人对LM算法有一些经验吗?关于如何处理 jacobian 中的固定参数的任何想法?我应该只创建一个只有自由参数和补丁在固定参数中的雅可比吗?