lsqnonlin matlab停止执行

lsqnonlin matlab停止执行,matlab,nonlinear-optimization,Matlab,Nonlinear Optimization,我使用Matlab函数lsqnonlin来估计5个值的向量。 在调用lsqnonlin之前,我正在对这3个参数进行粗略估计,然后使用这三个参数初始化lsqnonlin(其他两个参数为常量) 在某些情况下,以下错误会停止执行: 使用eig时出错 EIG的输入不得包含NaN或Inf 信任错误(第30行) [V,D]=eig(H) trdog中的错误(第110行) [st、qpval、po、fcnt、lambda]=信托(rhs、MM、delta) snls中的错误(第320行) [sx,snod,q

我使用Matlab函数lsqnonlin来估计5个值的向量。 在调用
lsqnonlin
之前,我正在对这3个参数进行粗略估计,然后使用这三个参数初始化
lsqnonlin
(其他两个参数为常量)

在某些情况下,以下错误会停止执行:

使用eig时出错 EIG的输入不得包含NaN或Inf

信任错误(第30行) [V,D]=eig(H)

trdog中的错误(第110行) [st、qpval、po、fcnt、lambda]=信托(rhs、MM、delta)

snls中的错误(第320行)
[sx,snod,qp,posdef,pcgit,Z]=trdog(x,g,A,D,delta,dv

lsqncommon(第150行)[xC,FVAL,LAMBDA,JACOB,EXITFLAG,OUTPUT,msgData]中的错误=

lsqnonlin(第237行)中的错误[xCurrent、Resnorm、FVAL、EXITFLAG、OUTPUT、LAMBDA、JACOB]=


你有什么建议吗?

这个错误是关于这个问题的。你能发布你正在解决的系统吗,因为这可能会解释为什么信赖域算法会生成NAN/INF?我知道两个长度为n的向量(A,B),我正在尝试找到第三个(长度为n的X),它是5个参数的函数(待估计)。这三个向量与卷积A=conv[B,X(估计向量)]相关,因此您的函数是
@(params)A-conv(B,X(params))
?那么这可能是参数值的下限/上限问题。您是否尝试过使用的
lb
ub
选项限制其范围?是的,这两种方式都有限制。我正在为图像的每个像素解决此问题(每次都不相关)我假设在某些像素中,数据非常嘈杂。如果我找到一种绕过这些“有问题”像素的方法(终止该像素中的优化问题,并继续下一个-而不在该像素中获得估计结果)这也会很有帮助。那么,我能看到抛出错误的唯一方法是,如果出于某种原因,这些问题像素是
NaN
Inf
或其他一些无意义的值。我认为将这些像素设置为
0
或某种良性值是解决问题的最佳方法。