clear
x0=[128453 129227 130765 129988 131448 132129 132802 133450 134091 135404];
pre_num=10;
n=length(x0);
disp('级比检验')
lambda=x0(1:end-1)./x0(2:end);
range=minmax(lambda)
x1=cumsum(x0);
z=0.5*(x1(2:end)+x1(1:end-1));
Y=x0(2:end)';
B=[-z(1:end)' ones(n-1,1)];
u=B\Y; %u=inv(B'*B)*B'*Y
a=u(1)
b=u(2)
x0_pre=[x0(1) ones(1,n+pre_num-1)];
for k=1:n-1+pre_num
x0_pre(k+1)=(x0(1)-b/a)*(exp(-a*k)-exp(-a*(k-1)));
end
err=[x0 - x0_pre(1:n)];
epsilon=abs(err)./x0(1:n).*100
disp('预测值')
disp(x0_pre)
disp('相对误差')
disp(epsilon)
t1=2002:2011;
t2=2002:2021;
plot(t1,x0,'d',t2,x0_pre,'LineWidth',2) %原始数据与预测数据的比较
xlabel('年份')
ylabel('人口')
此模型只能输入十年数据,然后预测十年。求大神修改或者直接给出新的函数。
不用输原始数据么
追答原始数据已经包含在内
追问在哪?。。
本回答被网友采纳