MATLAB中用nlinfit做多元非线性拟合(回归)

MATLAB中有一个多元非线性拟合的功能是nlinfit
基本语法是:

beta = nlinfit(X,Y,modelfun,beta0)

式子左边的beta可以是一个向量,向量的元素就是要回归的模型中的参数。
式子右边,modelfun是要回归的函数形式。X是函数的自变量数据;Y是函数的因变量数据;beta0是待回归参数的初始值。

modelfun如果是MATLAB内置的函数形式,则直接使用,例如,内置的Hougen-Watson model,形式如下:
Hougen-Watson model

使用时,这么用

beta = nlinfit(X,Y,@hougen,beta0)

这里@是函数句柄的操作符。
因为Hougen-Watson model中有5个待回归的参数( β 1 \beta_{1} β1 β 2 \beta_{2} β2 β 3 \beta_{3} β3 β 4 \beta_{4} β4 β 5 \beta_{5} β5),因此beta0是一个1×5的向量。模型中有3个未知数,因此X是个n×3的矩阵,Y是n×1的矩阵。n是数据的条数。

如果modelfun不是MATLAB内置的函数,就需要自己建立一个函数的形式。例如,下面的语句:

modelfun = @(beta,x)((beta(1)*x1+(1-beta(1))*x2)*beta(2));

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值