код программы:
Код
program ec;
uses crt;
var a,dt,ft,ut,bt,et:real;
bt_1,ut_1,gamma,tau:real;
Ft_Ltau,Ft_1,A1,B,C,Ft_L:real;
function metod_prostogo_exponentialnogo_sglagivaniya(a,dt,ft:real):real;
begin
metod_prostogo_exponentialnogo_sglagivaniya:=a*dt+(1-a)*ft;
end;
function adaptivnoe_sglagivanie_prognoza_Brauna(ut_1,bt_1,gamma,dt,ft,tau:real):real;
var ut,bt,et:real;
begin
et:=dt-ft;
bt:=bt_1+sqr(1-gamma)*et;
ut:=ut_1+bt_1+(1-sqr(gamma))*et;
adaptivnoe_sglagivanie_prognoza_Brauna:=ut+bt*tau;
end;
BEGIN
writeln(' *** метод простого экспоненциального сглаживания ***');
writeln;
repeat
clrscr;
write(' Введите константу сглаживания: 0.1<=a<=1. a=');
readln(a);
until ((0.1<=a) and (a<=1));
write('Введите фактическое значение наблюдаемого показателя. dt=');
readln(dt);
write('Введите прогноз на момент времени ft=');
readln(ft);
writeln('По методу простого экспоненциального сглаживания f(t+tau)=',
metod_prostogo_exponentialnogo_sglagivaniya(a,dt,ft):8:6);
writeln;
writeln(' *** адаптивное сглаживание прогноза Брауна ***');
writeln;
write('Введите показатель линейного роста , bt_1=');
readln(bt_1);
repeat
write('Введите коэффициент дисконтирования 0.1<=gamma<=1, gamma=');
readln(gamma);
until ((0.1<=gamma) and (gamma<=1));
write(' Введите экспоненциальное взвешенное среднее, ut_1=');
readln(ut_1);
write('Введите период упреждения прогноза , tau=');
readln(tau);
writeln('по методу адаптивного сглаживания прогноза Брауна f(t+tau)=',
adaptivnoe_sglagivanie_prognoza_Brauna(ut_1,bt_1,gamma,dt,ft,tau):8:6);
writeln;
writeln(' *** Сезонно-декомпозиционная модель Хольта-Уинтерса ***');
writeln;
writeln('Введите коэффициенты А, В, С');
write('A='); readln(A1);
write('B='); readln(B);
write('C='); readln(C);
write('Введите значение коэффициента сезонности F(t-L+tau)=');
readln(Ft_Ltau);
write('Введите F(t-1)=');
readln(Ft_1);
write('Введите F(t-L)=');
readln(Ft_L);
writeln;
writeln('Оценка стационарного фактора (т.е. оценка среднеежемесячного');
writeln(' значения независимо от времени года, ut=', A1*dt/Ft_1+(1-A1)*(ut_1+bt_1):8:6);
ut:=ut_1+bt_1+(1-sqr(gamma))*et;
writeln;
writeln('Оценка линейного роста на основе модели роста Хольта, bt=',B*(ut-ut_1)+(1-B)
*bt_1:8:6);
writeln;
writeln('Оценка сезонного фактора (адаптация коэффициента сезонности).');
writeln('Она равен ',dt/ut:8:6);
writeln;
writeln('Экспоненциальное взвешенное среднее текущего значения коэффи-циента ');
writeln(' сезонности: F(t)=',C*dt/ut+(1-C)*Ft_L:8:6);
writeln;
bt:=bt_1+sqr(1-gamma)*et;
writeln('Прогноз. f(t+tau)=',(ut+bt*tau)*Ft_Ltau:8:6);
repeat
until keypressed;
END.
uses crt;
var a,dt,ft,ut,bt,et:real;
bt_1,ut_1,gamma,tau:real;
Ft_Ltau,Ft_1,A1,B,C,Ft_L:real;
function metod_prostogo_exponentialnogo_sglagivaniya(a,dt,ft:real):real;
begin
metod_prostogo_exponentialnogo_sglagivaniya:=a*dt+(1-a)*ft;
end;
function adaptivnoe_sglagivanie_prognoza_Brauna(ut_1,bt_1,gamma,dt,ft,tau:real):real;
var ut,bt,et:real;
begin
et:=dt-ft;
bt:=bt_1+sqr(1-gamma)*et;
ut:=ut_1+bt_1+(1-sqr(gamma))*et;
adaptivnoe_sglagivanie_prognoza_Brauna:=ut+bt*tau;
end;
BEGIN
writeln(' *** метод простого экспоненциального сглаживания ***');
writeln;
repeat
clrscr;
write(' Введите константу сглаживания: 0.1<=a<=1. a=');
readln(a);
until ((0.1<=a) and (a<=1));
write('Введите фактическое значение наблюдаемого показателя. dt=');
readln(dt);
write('Введите прогноз на момент времени ft=');
readln(ft);
writeln('По методу простого экспоненциального сглаживания f(t+tau)=',
metod_prostogo_exponentialnogo_sglagivaniya(a,dt,ft):8:6);
writeln;
writeln(' *** адаптивное сглаживание прогноза Брауна ***');
writeln;
write('Введите показатель линейного роста , bt_1=');
readln(bt_1);
repeat
write('Введите коэффициент дисконтирования 0.1<=gamma<=1, gamma=');
readln(gamma);
until ((0.1<=gamma) and (gamma<=1));
write(' Введите экспоненциальное взвешенное среднее, ut_1=');
readln(ut_1);
write('Введите период упреждения прогноза , tau=');
readln(tau);
writeln('по методу адаптивного сглаживания прогноза Брауна f(t+tau)=',
adaptivnoe_sglagivanie_prognoza_Brauna(ut_1,bt_1,gamma,dt,ft,tau):8:6);
writeln;
writeln(' *** Сезонно-декомпозиционная модель Хольта-Уинтерса ***');
writeln;
writeln('Введите коэффициенты А, В, С');
write('A='); readln(A1);
write('B='); readln(B);
write('C='); readln(C);
write('Введите значение коэффициента сезонности F(t-L+tau)=');
readln(Ft_Ltau);
write('Введите F(t-1)=');
readln(Ft_1);
write('Введите F(t-L)=');
readln(Ft_L);
writeln;
writeln('Оценка стационарного фактора (т.е. оценка среднеежемесячного');
writeln(' значения независимо от времени года, ut=', A1*dt/Ft_1+(1-A1)*(ut_1+bt_1):8:6);
ut:=ut_1+bt_1+(1-sqr(gamma))*et;
writeln;
writeln('Оценка линейного роста на основе модели роста Хольта, bt=',B*(ut-ut_1)+(1-B)
*bt_1:8:6);
writeln;
writeln('Оценка сезонного фактора (адаптация коэффициента сезонности).');
writeln('Она равен ',dt/ut:8:6);
writeln;
writeln('Экспоненциальное взвешенное среднее текущего значения коэффи-циента ');
writeln(' сезонности: F(t)=',C*dt/ut+(1-C)*Ft_L:8:6);
writeln;
bt:=bt_1+sqr(1-gamma)*et;
writeln('Прогноз. f(t+tau)=',(ut+bt*tau)*Ft_Ltau:8:6);
repeat
until keypressed;
END.