Matlab非线性拟合函数——nlinfit

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

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

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

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

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

beta0:回归系数的初始值

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

R:残差

J:modelfun雅可比矩阵

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

MSE:均方差

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

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

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

需要拟合的函数:

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

代码如下:

x=1:16;
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];
y1=@(b,t) b(1)*exp(-t/b(2))+b(3)*exp(-t/b(4))+b(5);
b0=[-1 1 -1 1 1];%初始参数
[beta,R,J,CovB, MSE,ErrorModelInfo]=nlinfit(x,y,y1,b0)%所求出的回归系数
xp=1:0.1:16;
yp=y1(beta,xp);
plot(x,y,'.k',xp,yp,'r')

结果:

 

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

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

猜你喜欢

转载自blog.csdn.net/m0_64087341/article/details/126807477