灰色Verhulst预测模型
clc,clear;
x0=[4.93 2.33 3.87 4.35 6.63 7.15 5.37 6.39 7.81 8.35];
x1=cumsum(x0);
n=length(x0);
z=0.5*(x1(2:n)+x1(1:n-1));
B=[-z',z'.^2];
Y=x0(2:end)';
u=B\Y
syms x(t)
x=dsolve(diff(x)+u(1)*x==u(2)*x^2,x(0)==x0(1));
xt=vpa(x,6)
yuce=subs(x,t,[0:n-1]);
yuce=double(yuce)
x0_hat=[yuce(1),diff(yuce)]
epsilon=x0-x0_hat
delta=abs(epsilon./x0)
writematrix([x0',x0_hat',epsilon',delta'],'data.xlsx')
result
u =
-0.35763
-0.0041037
xt =
43.5735tanh(0.178813t - 1.40701) + 43.5735
yuce =
4.93 6.8822 9.5179 13 17.468 22.996 29.533 36.86 44.597 52.27
x0_hat =
4.93 1.9522 2.6357 3.4816 4.4686 5.5283 6.5364 7.3268 7.7374 7.6734
epsilon =
0 0.37782 1.2343 0.86836 2.1614 1.6217 -1.1664 -0.93675 0.07257 0.67662
delta =
0 0.16216 0.31894 0.19962 0.326 0.22681 0.2172 0.1466 0.0092919 0.081033