📄 gm2.m
字号:
function f=gm2(x,K)
n=length(x);
x1(1)=x(1);
for i=2:n
x1(i)=x1(i-1)+x(i);
Y(i-1)=x(i);
end
for i=3:n
p(i)=x(i)/x1(i-1);
end
if p(3:n)<0.5
'光滑条件满足'
else
p;
max(p)
'光滑条件不满足'
end
for i=3:n
o(i)=x1(i)/x1(i-1);
end
if o(3:n)<=1.5 & o(3:n)>=0.5
'准指数规律满足'
else
o;
max(o)
min(o)
'准指数规律不满足'
end
for i=1:n-1
B(i,1)=-0.5*(x1(i)+x1(i+1));
B(i,2)=1;
end
ab=inv(B'*B)*B'*Y';
a=ab(1);
b=ab(2);
for i=0:n-1
x1(i+1)=(x(1)-b/a)*exp(-a*i)+b/a;
end
x0(1)=x(1);
for i=2:n
x0(i)=x1(i)-x1(i-1);
end
for i=2:n
e(i)=x(i)-x0(i);%绝对误差
k(i)=abs(x(i)-x0(i))/x(i);%相对误差
end
x;
x0;
'绝对误差平方和'
s=e*e'
'平均相对误差'
ss=sum(k(2:n))/(n-1)
if K>n
x1(K)=(x(1)-b/a)*exp(-a*(K-1))+b/a;
x1(K-1)=(x(1)-b/a)*exp(-a*(K-2))+b/a;
x0(K)=x1(K)-x1(K-1);
'预测值'
x0(K)
else
'预测值'
x0(K)
end
'模拟方程'
'x1(k)=(x(1)-b/a)*exp(-a*(k-1))+b/a'
'x0(k)=x1(k)-x1(k-1)'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -