当前位置:   article > 正文

Matlab非线性拟合函数——nlinfit

nlinfit

我们平时最常用的非线性拟合函数还是多项式拟合,有一天学弟突然问了我nlinfit 这个函数,然后直接查询matlab官方文档,原来非线性函数还可以用这个函数,下面来看看matlab官方文档的说明:

8027aea511ce4298a9fb994945cad511.png

英文?没关系,下面看一下中文用法:

beta = nlinfit(X, Y, modelfun, beta0)

beta:估计出的非线性函数的系数

modelfun:指定的要拟合的非线性函数

beta0:回归系数的初始值

[beta, R, J, CovB, MSE, ErrorModelInfo] = nlinfit(___) 

R:残差

J:modelfun雅可比矩阵

CovB:估计方差-协方差矩阵

MSE:均方差

ErrorModelInfo:拟合函数与实际值Y的误差信息

中间两个用的不多,如果需要,请大家自行查阅帮助文档。

下面通过一个实例具体说明一下: 

需要拟合的函数:

63e3b3d3050d45738ab55d436b925d5d.png

初值为:[-1 1 -1 1 1] 

代码如下:

  1. x=1:16;
  2. y=[4 6.4 8 8.8 9.22 9.5 9.7 9.86 10 10.2 10.32 10.42 10.5 10.55 10.58 10.6];
  3. y1=@(b,t) b(1)*exp(-t/b(2))+b(3)*exp(-t/b(4))+b(5);
  4. b0=[-1 1 -1 1 1];%初始参数
  5. [beta,R,J,CovB, MSE,ErrorModelInfo]=nlinfit(x,y,y1,b0)%所求出的回归系数
  6. xp=1:0.1:16;
  7. yp=y1(beta,xp);
  8. plot(x,y,'.k',xp,yp,'r')

结果:

12385379af3f4b588e2d2faa9d42064a.png299d938bf4614a1a98f52c834d4866ca.png4891943cca764b4fa48116e1e41c68b5.png

 81531aee3e19451cbc9862011f4f9890.pngd6eaa4d60fa9403593b490fc4d2371c1.png

 

 

23c24a73bd144d7886b14f4db084a8fe.png

由图可以看出,拟合的效果还是不错的。 

该函数的介绍就到这里,更多内容请查询官方帮助文档。

 

 

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号