Matlab多变量自回归

该博客介绍了如何利用MATLAB进行非线性曲线拟合。通过设置自回归滞后p阶,读取Excel数据,博主分别运用lsqcurvefit和nlinfit函数对数据进行拟合,并计算了拟合误差,包括平均误差和均方根误差,为数据分析和建模提供了详细步骤。
摘要由CSDN通过智能技术生成
clc;
clear;
close all;
p=1 ;%自回归滞后p阶
y=xlsread('F:\data\data.xlsx',1);%y值
x=xlsread('F:\data\data.xlsx',2);%x值,多个环境因子
for n=1:p
    xdata(:,1)=y(:,1);%y值
    xdata(:,2:6)=x(:,1:5);%x值,多个环境因子
end
%函数拟合
%先用lsqcurvefit函数
param0(1,1:(6*p+2))=1;
fun=@(param,xdata)(param(1)*xdata(:,1)+param(2)*xdata(:,2)+param(3)*xdata(:,3)+param(4)*xdata(:,4)+param(5)*xdata(:,5)+param(6)).*exp(param(7)*xdata(:,6))+param(8);
param = lsqcurvefit(fun,param0,xdata,ydata);
%再用nlinfit函数
myfunc=inline('(beta(1)*xdata(:,1)+beta(2)*xdata(:,2)+beta(3)*xdata(:,3)+beta(4)*xdata(:,4)+beta(5)*xdata(:,5)+beta(6)).*exp(beta(7)*xdata(:,6))+beta(8)','beta','xdata');
beta=nlinfit(xdata,ydata,myfunc,param);
%计算拟合误差
ynihe=(beta(1)*xdata(:,1)+beta(2)*xdata(:,2)+beta(3)*xdata(:,3)+beta(4)*xdata(:,4)+beta(5)*xdata(:,5)+beta(6)).*exp(beta(7)*xdat
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值