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
Matlab多变量自回归
于 2022-03-20 00:51:15 首次发布
该博客介绍了如何利用MATLAB进行非线性曲线拟合。通过设置自回归滞后p阶,读取Excel数据,博主分别运用lsqcurvefit和nlinfit函数对数据进行拟合,并计算了拟合误差,包括平均误差和均方根误差,为数据分析和建模提供了详细步骤。
摘要由CSDN通过智能技术生成