天天看点

非线性/线性函数拟合 Matlab nlinfit

定义列表

定义列表语法1:

[beta,r,J]=nlinfit(x,y,’model’,beta0)

beta: 估计出的回归系数

r:残差

J:Jacobi矩阵

x:n×m矩阵,对一元非线性回归,x为n维列向量

y:n维列向量

model:事先用M文件定义的非线性函数

beta0:回归系数的初始值

定义列表语法2:

[Y, Delta]=nlpredci(‘model’,x,beta,r,J)

用于求取x对应的预测值Y,以及在alpha下的置信区间Delta。

代码块

nlinfit 是一种基于 least squares estimation算法,用于做多元或一元非线性拟合的matlab函数

clear  
clc  
data = [                                                                                           
                                           
                                                    ]';
X=data(:,:); 
y=data(:,); 

b0=[- -  -  ]'; %设定beta的初始值
[beta,r,J]=nlinfit(X,y,'dgytest',b0);
[Y, Delta]=nlpredci('dgytest',X,beta,r,J);
SSE=sum((Y-y).^);
plot(Y,y,'bo')

% 使用M文件建立函数模型
function ypre=dgytest(beta,X)
a=beta();
b=beta();
c=beta();
d=beta();
e=beta();
f=beta();
x1=ones(size(X,),);
x2=X(:,).^;
x3=X(:,);
x4=X(:,).^;
x5=X(:,);
x6=X(:,).*X(:,);
ypre=a*x1+b*x2+c*x3+d*x4+e*x5+f*x6;
           

继续阅读