一元非线性回归

用非线性回归首先要解决的问题就是回归方程中的参数如何估计

  • polyfit函数

    命令

    说明

    p=polyfit(x,y,n)

    对x、y进行n阶幂函数的拟合

    [p,S]=polyfit(x,y,n)

    结构体S可用作polyval的输入来获取误差估计值

    [p,S,mu]=polyfit(x,y,n)

    返回的mu(1)为mean(x);mu(2)为std(x)

绘制散点图,判断是线性还是非线性

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];
figure
plot(x,y,'*')
xlabel('销售额x/万元','fontsize',12);
ylabel('流通费率y/%','fontsize',12);

结果如图:

由这个图我们可以看出,是一个非线性的模型,而且图像近似指数或者对数,因此我们采用这两种函数进行非线性拟合。

对数形式进行线性拟合

@句柄的用法

  • 画图过程中句柄的用法:

    h = plot(x,y);

    h.Linewidth = 2;即可修改这些值

  • 函数过程中句柄的用法

    相当于传递一个函数,实参传递给形参这种。


本文章使用limfx的vscode插件快速发布