使用MATLAB进行多元非线性回归——nlinfit函数的使用

帮我对象做数据分析时遇到的问题,发现网上matlab多元非线性回归例子很少,写下来这篇用作参考

使用beta= nlinfit(x, y, model, beta0) 

——x为自变量,可以是多个自变量

——y为因变量,只能由一个

——model是函数模型

——beta0要求系数的初值

例子:

假定一个回归模型y = beta1*x1^3 + beta2*x2^2 + beta3*log2(x3)

其中beta1, beta2, beta3为想要通过回归得到的系数

Step1:建立回归模型

直接使用内联函数建立:

mymodel = inline('beta(1)*x(:,1).^3 + beta(2)*x(:,2).^2 + beta(3)*log2(x(:,3)','beta','x');

这里x(:1)是取x的第一列数据,相应的x(:,2)取第二列数据...

beta(1),beta(2),beta(3)为所求系数

Step2: 回归

x = [x1,x2,x3]; %自变量x1,x2,x3
beta0= [a1,b1,c1,d1,e1,f1,m1,n1,z1]; %系数初始值
beta = nlinfit(x,y,myfun,temp); %回归得到系数beta

  • 56
    点赞
  • 340
    收藏
    觉得还不错? 一键收藏
  • 23
    评论
matlab中,多元非线性回归可以使用nlinfit函数进行。该函数的基本语法是: beta = nlinfit(X, Y, modelfun, beta0) 其中,X是预测变量,Y是响应值,modelfun是指定的模型,beta0是参数的初始值。 nlinfit函数还可以指定其他的参数,如评估算法的选择等。除了返回参数估计值beta之外,nlinfit函数还可以返回残差R、雅可比矩阵J、估计方差-协方差矩阵CovB、均方差MSE和误差模型拟合信息ErrorModelInfo。 下面是一个示例: X = 1 : 10; Y = [0 4 8 17 29 34 54 62 80 99]; mymodel = inline('beta(1) * X .^ beta(2)', 'beta', 'X'); beta0 = [1, 2]; beta = nlinfit(X, Y, mymodel, beta0); 在这个示例中,假设模型为beta(1) * X .^ beta(2),参数的初始值为[1, 2],然后使用nlinfit函数进行拟合,得到参数估计值beta。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [matlab多元非线性回归教程.docx](https://download.csdn.net/download/apple_51426592/85741923)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Matlab多元非线性回归(nlinfit 函数)](https://blog.csdn.net/L_J_Kin/article/details/103922880)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值