失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > MATLAB中用nlinfit做多元非线性拟合(回归)

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

时间:2021-03-06 06:03:42

相关推荐

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

MATLAB中有一个多元非线性拟合的功能是nlinfit

基本语法是:

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

式子左边的beta可以是一个向量,向量的元素就是要回归的模型中的参数。

式子右边,modelfun是要回归的函数形式。X是函数的自变量数据;Y是函数的因变量数据;beta0是待回归参数的初始值。

modelfun如果是MATLAB内置的函数形式,则直接使用,例如,内置的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));

如果觉得《MATLAB中用nlinfit做多元非线性拟合(回归)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。