matlab一元非线性回归

现实应用除了线性方程之外,就是非线性方程了,作为最常用的一元非线性函数的代表,首先介绍的就是对数方程的解法
百货商店销售额与流通费率存在着非线性关系,试求出方程
%百货商店销售额与流通费率
x=[1.5,4.5,7.5,10.5,13.5,16.5,19.5,22.5,25.5];
y=[7.0,4.8,3.6,3.1,2.7,2.5,2.4,2.3,2.2];
plot(x,y,'*','linewidth',2) %布置散点,linewidth表示标点‘*’粗细
set(gca,'linewidth',2)%设置边宽度
%布置横坐标,纵坐标
xlabel('x销售额','fontsize',12)
ylabel('y流通费率','fontsize',12)
m1=@(b,x)b(1)+b(2)*log(x);
nonlinfit1=fitnlm(x,y,m1,[0.01;0.01])
b=nonlinfit1.Coefficients.Estimate;
Y1=b(1,1)+b(2,1)*log(x);
hold on
plot(x,Y1,'--k','linewidth',2)

matlab一元非线性回归_第1张图片

方法二:上面为对数形式非线性回归决定系数R-Squared:0.973
那么非线性回归中还有一种就是指数形式非线性回归
m2='y~b1*x^b2';
nonlinfit2=fitnlm(x,y,m2,[1;1])
b1=nonlinfit2.Coefficients.Estimate(1,1);
b2=nonlinfit2.Coefficients.Estimate(2,1);
Y2=b1*x.^b2;
hold on plot(x,Y2,'r','linewidth',2)
legend('原始数据','a+b*lnx','a*x^b')
%R-Squared:0.993证明指数形式的函数形式更为符合

你可能感兴趣的:(Matlab)