matlab 提示警告如下,是什么意思?

Warning:Rankdeficient,rank=3,tol=8.229687e-010.>Innlinfit>LMfitat300Innlinfitat162War... Warning: Rank deficient, rank = 3, tol = 8.229687e-010.
> In nlinfit>LMfit at 300
In nlinfit at 162
Warning: Some columns of the Jacobian are effectively zero at the solution, indicating that the model is insensitive
to some of its parameters. That may be because those parameters are not present in the model, or otherwise do not
affect the predicted values. It may also be due to numerical underflow in the model function, which can sometimes
be avoided by choosing better initial parameter values, or by rescaling or recentering. Parameter estimates may be
unreliable.
> In nlinfit at 222
展开
 我来答
tianxiawulang
2013-10-16 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2573万
展开全部

这个警告信息是说,模型(拟合函数)对某些参数不敏感。

可能的原因包括:

(1)拟合函数中的某些参数对函数值没影响,这种情况应该考虑修改拟合函数的形式。

(2)数值计算出现下溢(underflow),这种情况有可能通过修改参数初值或者对数据进行归一化处理等方式解决。

 

一般来说,第一种情况可能性更大一些,具体要看你的数据和拟合函数是怎样选的。

 

举例来说,样本数据是x^2,现在用f(x)=a*x^2+b来拟合:

>> x=1:10;
>> y=x.^2;
>> f=@(b,x)b(1)*x.^2+b(2);
>> b = nlinfit(x,y,f,[2 1])
b =
    1.0000    0.0000

 

这样没有问题。如果把拟合函数改成f(x)=a*x^2+b*0,就会出现警告:

>> f=@(b,x)b(1)*x.^2+0*b(2);
>> b = nlinfit(x,y,f,[2 1])
Warning: Rank deficient, rank = 1,  tol =   4.2621e-013.
> In nlinfit>LMfit at 295
  In nlinfit at 167
Warning: Rank deficient, rank = 1,  tol =   4.2431e-013.
> In nlinfit>LMfit at 295
  In nlinfit at 167
Warning: Rank deficient, rank = 1,  tol =   4.2412e-013.
> In nlinfit>LMfit at 295
  In nlinfit at 167
Warning: Rank deficient, rank = 1,  tol =   4.2410e-013.
> In nlinfit>LMfit at 295
  In nlinfit at 167
Warning: The Jacobian at the solution is ill-conditioned, and some
model parameters may not be estimated well (they are not identifiable).
Use caution in making predictions.
> In nlinfit at 224
b =
    1.0000    1.0000
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式