天天看點

非線性/線性函數拟合 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;
           

繼續閱讀