非线性回归分析

使用格式

beta = nlinfit(X,Y,fun,beta0)
[beta,r,J] = nlinfit(X,Y,fun,beta0)

其中X为给定的自变量数据,Y为给定的因变量数据,输入数据X、Y分别为n*m矩阵和n维列向量,fun要拟合的函数模型(句柄函数或者内联函数形式),beta0函数模型中待定系数估计初值(即程序的初始实参),beta返回拟合后的待定系数其中beta为估计出的回归系数;r为残差;J为Jacobian矩阵。

事例

主程序main.m

clear;
clc;
x=[0.5,0.4,0.3,0.2,0.1;0.3,0.5,0.2,0.4,0.6;1.8,1.4,1.0,1.4,1.8]';%每一列为一个变量
y=[0.785,0.703,0.583,0.571,0.126]';
beta0=[1,1,1,1,1]'; %有多少个待定系数,就给多少个初始值
[beta,r,j]=nlinfit(x,y,@myfun,beta0);

函数模型myfun.m

function yy=myfun(beta,x) %参数:待定系数和自变量
x1=x(:,1);  %系数是数组,b(1),b(2),…b(n)依次代表系数1, 系数2,…… 系数n
x2=x(:,2);  %自变量x是一个矩阵,它的每一列分别代表一个变量,有n列就可以最多n
x3=x(:,3);
yy=beta(1)+beta(2)*x1+beta(3)*x2+beta(4)*(x2.^2)+beta(5)*(x3.^2);

你可能感兴趣的:(非线性回归)