[MATLAB]非线性回归--自配函数(nlinfit)

当谈到非线性回归模型的时候,同学们应该紧密的将线性回归紧密结合在一起,因为非线性回归很容易过拟合。那我们从一个案例谈一下非线性
在这里插入图片描述
拿到题目看到一个变量x一个y,非线性问题步骤应该是这样子的:

  • 画出散点图
  • 根据散点图确定须配曲线的类型;
  • 估计其中的未知参数

散点图

>> x=2:16;
y=[6.42 8.20 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.60 10.80 10.60 10.90 10.76];
beta0=[8 2]';
>> plot(x,y,'k+')

在这里插入图片描述

配曲线

一共有六类曲线可以配一下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其实大家看这六张图有几张图会很眼熟,比如狐狸–兔子模型,人口模型都是属于机理分析可以配成上面几张图的。配图也是看着像配那个,美其名曰,六种备胎任你选,喜欢谁用谁!
最后选用了倒指数模型,代码如下

在volum.m写下配的函数类型:

function yhat=volum(beta,x)
yhat=beta(1)*exp(beta(2)./x);

在主程序选择调用:

beta0=[8 2]';
[beta,r,J]=nlinfit(x',y','volum',beta0);

现在的代码由上至下应该是这样子滴!

x=2:16;
y=[6.42 8.20 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.60 10.80 10.60 10.90 10.76];
beta0=[8 2]';
% plot(x,y,'k+')
[beta,r,J]=nlinfit(x',y','volum',beta0);

其中nlinfit使用:
在这里插入图片描述
总结:nlinfit函数的外部调用,也就是自己写.m文件的时候,要注意beta0是什么,有兴趣的同学,可以任取beta0的值试试看,会发现,大家不用太在意beta0到底取什么值,简而言之,可以慢慢尝试出来!

  • 10
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值