Таблица 5.6 - Северо-Кавказский горно

advertisement
В. Ф. КОЛЬВАХ, Д. В. КОЛЬВАХ
ПРОГНОЗИРОВАНИЕ
СЛОЖНЫХ ПРОЦЕССОВ
С ПОМОЩЬЮ
КОМБИНИРОВАННЫХ РЯДОВ
Монография
Владикавказ 2013
0
Министерство образования и науки РФ
Федеральное государственное бюджетное образовательное
учреждение высшего профессионального образования
"Северо-Кавказский горно-металлургический институт
(государственный технологический университет)"
В. Ф. КОЛЬВАХ, Д. В. КОЛЬВАХ
ПРОГНОЗИРОВАНИЕ
СЛОЖНЫХ ПРОЦЕССОВ
С ПОМОЩЬЮ
КОМБИНИРОВАННЫХ РЯДОВ
Монография
Владикавказ 2013
1
УДК 621.372.001.63
ББК 32.85
К62
К62
Кольвах В.Ф.
Прогнозирование сложных процессов с помощью комбинированных
рядов: Монография / В. Ф. Кольвах, Д. В. Кольвах; Северо-Кавказский горно-металлургический институт (государственный технологический университет). – Владикавказ: Северо-Кавказский горно-металлургический институт (государственный технологический университет). Изд-во «Терек», 2013. 214 с.
ISBN 978–5–901585–76–4
В работе рассматривается метод прогнозирования детерминированных и случайных процессов на основе конечных рядов, содержащих произведения степенных и показательных функций. Такие ряды
являются решениями линейных разностных уравнений. Коэффициенты этих уравнений получаются с помощью определенного количества
равноотстоящих точек процесса.
УДК 621.372.001.63
ББК 32.85
Рецензенты:
Кандидат технических наук, зав. сектором ФГБУ Науки
"Центр геофизических исследований"
й" Владикавказского научного центра РАН
и Правительства РСО-А
Харебов К. С.,
Доктор технических наук Северо-Кавказского
горно-металлургического института
(государственного технологического университета),
профессор Дедгкаев А. Г.
 ФГБУ ВПО "СКГМИ (ГТУ)", 2013
 Кольвах В. Ф., 2013
 Кольвах Д. В., 2013
 Оформление, СКГМИ (ГТУ),
Изд-во " Терек ", 2013
ISBN 978–5–901585–76–4
2
Оглавление
Введение ................................................................................................
Глава 1. Исходные понятия ..................................................................
1.1. Основные определения .............................................................
1.2. Классификация процессов........................................................
1.3. Сущность метода.......................................................................
Глава 2. Ряды для детерминированных процессов ............................
2.1. Выбор экстраполирующего ряда .............................................
2.2. Основные соотношения ............................................................
2.3. Нелинейные и параметрические процессы .............................
2.4. Точность прогнозирования ......................................................
2.5. Изменение ряда при усреднении точек ...................................
Глава 3. Ряды для процессов с шумами ..............................................
3.1. Компенсация временных погрешностей точек.......................
3.2. Влияние амплитудных погрешностей точек на компоненты ряда..................................................................................
3.3. Влияние амплитудных погрешностей точек на результаты прогноза ................................................................................
3.4. Компенсация амплитудных погрешностей точек снижением порядка разностного уравнения .....................................
3.5. Оптимизация ряда .....................................................................
3.6. Оптимизация разностного уравнения......................................
Глава 4. Методика прогнозирования реальных процессов ...............
4.1. Классификация процессов на основе корней характеристических уравнений ................................................................
4.2. Этапы получения и обработки первичного ряда....................
4.3. Особенности прогнозирования стационарных процессов ....
4.4. Особенности прогнозирования революционных процессов ...............................................................................................
4.5. Дополнительные меры повышения точности прогноза ........
4.6. Расчет в переменном масштабе времени ................................
4.7. Ряды для неравноотстоящих точек..........................................
4.8. Конверсия исходных точек ......................................................
Глава 5. Практика применения метода ...............................................
5.1. Прогнозирование активности Солнца.....................................
5.2. Прогнозирование среднегодовой и среднемесячной температур .......................................................................................
5.3. Прогнозирование годовых и месячных осадков ....................
3
5
6
–
7
8
10
–
11
20
26
27
30
–
31
38
42
49
52
57
–
59
62
69
70
74
76
77
80
–
85
92
5.4. Прогнозирование годового стока рек ..................................... 98
5.5. Расчёт траекторий летающих объектов ..................................101
5.6. Расчёт разряда гальванического элемента..............................107
5.7. Расчёт термо-э.д.с. термопар ...................................................108
5.8. Расчёт коэффициента линейного расширения сплавов .........110
5.9. Причины ухудшения точности прогнозирования ..................112
Глава 6. Дополнительные приложения метода ..................................113
6.1. Основные возможности ............................................................ –
6.2. Реконструкция процессов ........................................................114
6.3. Расчёт по нерегулярным исходным данным ..........................115
6.4. Спектры сигналов .....................................................................119
6.5. Прогнозирование связанных процессов .................................120
Глава 7. Некоторые вопросы построения рядов ................................128
7.1. Повышение порядка разностных уравнений .......................... –
7.2. Обращение матрицы Вандермонда .........................................129
7.3. Неоднородные разностные уравнения ....................................131
7.4. Теорема Шура и ее следствия ..................................................132
7.5. Получение точных полустационарных рядов ........................135
7.6. Методы прямого получения ряда ............................................136
7.7. Сравнение и усреднение нескольких рядов ...........................138
7.8. Уравнения в конечных разностях ............................................139
Заключение ............................................................................................142
Литература .............................................................................................144
Приложение. Программа прогнозирования APNR12N6 ...................147
1. Общие замечания .............................................................................. –
2. Настройки и управление ..................................................................148
3. Основные подпрограммы .................................................................154
4. Текст программы...............................................................................155
4
Введение
Развитие науки и техники требует глубокого изучения характера
поведения различных объектов и систем, определения тенденций их
развития и возможных вариантов их состояния в будущем. Как правило, мы не имеем точного представления о характере и взаимодействии
явлений, проходящих в рассматриваемой системе, и можем наблюдать
лишь результат их совместного влияния на интересующий нас выходной процесс. Таким образом, исследователь вынужден рассматривать
систему как “черный ящик”, и не имеет возможности построить достаточно точную ее модель. Информация о текущем поведении системы ограничивается регистрацией отдельных групп ее выходных параметров. В процессе наблюдения накапливается некоторое количество
данных. Эти данные можно использовать для расчета поведения системы в будущем или прошлом.
Для практически кажного случая неравноотстоящих точек создан
метод получения рядов аналогичного типа. При этом также используется аппарат разностных уравнений.
Прогнозирование нелинейных, параметрических и случайных
процессов требует дополнительной обработки полученного ряда. Она
сводится к исключению некоторых компонент ряда с последующей
его оптимизацией по различным критериям и схемам. Обычно используется принцип минимального отклонения от исходных точек при одновременном ограничении степени нарастания компонент ряда в зоне
прогноза.
Результаты применения метода свидетельствуют о его высокой
эффективности для процессов различного происхождения. Некоторые
ограничения, свойственные всем известным методам, возникают при
прогнозировании революционных и сильно зашумленных процессов.
5
Глава 1. ИСХОДНЫЕ ПОНЯТИЯ
1.1. Основные определения
Процесс – зависимость какой-либо физической величины от некоторого параметра. В качестве такого параметра обычно выступает
время. Процесс может рассматриваться как реакция некоторой системы на совокупность (вектор) входных воздействий.
Процесс считается сложным, если для него не известно достаточно точного математического описания, позволяющего вести прогнозирование методом прямых вычислений соответствующих точек.
Прогноз – суждение о состоянии какого-либо объекта, ходе процесса или возникновении явления в определенный момент времени в
будущем на основе экстраполяции известных значений процесса.
Реконструкция – суждение о состоянии объекта, ходе процесса
или наличии какого-либо явления в определенный момент времени в
прошлом на основе обратной экстраполяции известных значений процесса.
Можно рассматривать ближний прогноз как определение нескольких точек процесса, непосредственно примыкающих к области
его наблюдения. Дальний прогноз включает в себя оценку процесса на
промежутке, далеко отстоящем от момента окончания наблюдений
(см. рис 1.1).
Рис. 1.1. k – параметр; (0, k1) – область наблюдения процесса; (k1, k2) – область ближнего прогноза; (k3, k4) – область дальнего прогноза.
Прогнозирование – вычисление будущих значений процесса на
основе анализа тенденций его развития. Оно может производиться
различными методами, в зависимости от требований к конечному результату. На выбор метода прогнозирования оказывают влияние характер процесса, объем и точность исходных данных, степень их достоверности и т. д.
6
Ряд – конечная или бесконечная сумма функций одного типа.
Комбинированный ряд представляет собой сумму определенных
сочетаний нескольких различных типов функций. В нашем случае это
конечная сумма произведений показательных (экспоненциальных) и
степенных (Тейлоровских) функций дискретного или непрерывного
времени.
Размер или длина ряда есть общее количество компонент, входящих в его сумму. Обычно размер ряда равен порядку соответствующего ему разностного уравнения.
Ряд считается полным или точным, если его отклонение от всех
исходных точек равно нулю. В противном случае ряд будет неполным
или приближенным.
Объем ряда или число его степеней свободы – общее количество
неизвестных величин, содержащихся во всех его компонентах и подлежащих определению по исходным точкам. Поскольку отдельные
члены ряда могут иметь различное число неизвестных, объем ряда не
всегда определяется количеством его компонент. Минимально возможный объем полного ряда не может превышать количества точек,
использованных для определения этого ряда.
1.2. Классификация процессов
Классификация процессов имеет условный характер и может проводиться по различным их признакам. Можно выделить следующие
типы процессов:
- революционные процессы – имеют внезапно возникающие достаточно большие изменения величины и (или) характера своего хода.
При этом в значительной степени могут меняться: вектор входных
воздействий, вектор состояний и структура самой системы;
- эволюционные процессы - не имеют существенных революционных изменений на всем своем протяжении;
- детерминированные процессы - практически не содержат случайной составляющей;
- случайные (стохастические) процессы – включают в основном
только случайную составляющую;
- смешанные процессы – содержат как случайную, так и детерминированную составляющие в существенных долях;
- стационарные процессы – имеют статистические параметры,
которые практически не меняются с течением времени;
7
- нестационарные процессы, в которых имеет место существенная зависимость хотя бы одного статистического параметра от времени;
- линейные процессы, точное описание которых возможно с помощью линейных дифференциальных или разностных уравнений;
- нелинейные процессы – описываются с помощью нелинейных
дифференциальных или разностных уравнений, коэффициенты которых являются функциями от значений самого процесса;
- параметрические процессы, в которых коэффициенты дифференциальных уравнений являются независимыми функциями времени;
- действительные процессы – значения которых лежат на множестве действительных чисел;
- комплексные процессы, являющиеся комплексными функциями
времени;
- дискретные процессы, которые задаются дискретными множествами отдельных точек;
- непрерывные процессы, в которых интервал между двумя соседними точками может быть взят сколь угодно малым.
Любой реальный процесс может обладать сразу несколькими из
перечисленных признаков. В данной работе рассматриваются в основном детерминированные и смешанные линейные и нелинейные действительные процессы эволюционного и революционного характера.
1.3. Сущность метода
В работе за основу взят метод авторегрессионого анализа, основанный на теории линейных разностных уравнений. Однако определение коэффициентов разностного уравнения еще не означает, что для
получения прогнозируемых точек можно использовать простую рекуррентную процедуру. Ситуация сильно усложняется из-за погрешностей задания исходных точек и неконтролируемых революционных
влияний. Эти факторы можно рассматривать как шумы, сопутствующие идеальному процессу на выходе некоторой системы.
В работе используется гипотеза о том, что на ограниченном временном отрезке процессы в большинстве реальных нелинейных систем можно с заданной точностью описывать линейными дифференциальными или разностными уравнениями достаточно высокого порядка. Решение таких уравнений может быть получено в виде конечного ряда, содержащего степенные и показательные функции дис8
кретного времени [21]. Если этот ряд точно проходит через все исходные точки, он будет содержать максимум информации о детерминированной и случайной составляющих процесса.
В то же время практически неизбежные шумы приводят к появлению в ряде резко нарастающих и затухающих компонент. Именно
этот факт не позволяет использовать для прогнозирования первичный
ряд или исходное разностное уравнение.
Ослабление влияния шумовых составляющих может быть достигнуто специальной обработкой разностного уравнения или первичного ряда. Здесь важную роль играет правильное определение типа
самого процесса, по которому можно ввести ограничения на скорости
нарастания или затухания отдельных компонент ряда. Эти ограничения позволяют достаточно уверенно выявить и ослабить шумовые
компоненты процесса.
На некоторых этапах обработки первичного ряда предусматривается его оптимизация по различным критериям максимального приближения к исходным точкам процесса. Это позволяет сохранить информацию о процессе после исключения, ограничения или преобразования отдельных компонент ряда.
На любом этапе преобразования разностного уравнения или первичного ряда важную роль играет метод пробного прогнозирования.
Он позволяет оценить эффективность отдельных операций и определить точность и достоверность конечного результата. В качестве
пробных используются несколько последних точек исходной числовой последовательности. Количество этих точек не должно быть
меньше числа прогнозируемых. С другой стороны, при слишком малом их количестве снижается достоверность пробного прогноза из-за
возможности случайных совпадений. Обычно достаточно взять 4 – 8
пробных точек. Конечно, они не должны использоваться в расчетах
при получении пробного ряда.
Таким образом, в работе излагается метод прогнозирования на
основе комбинированных рядов, являющихся решениями линейных
разностных уравнений различного вида. Эти уравнения составляются
по исходным, обычно равноотстоящим точкам процесса. Повышение
точности и достоверности результата достигается за счет дополнительной обработки первичного ряда с целью ослабления влияния шумовых факторов и неконтролируемых революционных воздействий.
Итоговый или результирующий ряд используется для получения одного из вариантов прогноза.
9
Глава 2. РЯДЫ ДЛЯ ДЕТЕРМИНИРОВАННЫХ
ПРОЦЕССОВ
2.1. Выбор экстраполирующего ряда
Для каждого конкретного процесса экстраполирующий набор
функций не должен выбираться произвольно. Удобство использования и простота применяемых формул не имеют значения. Очевидно, в
этом наборе должны быть именно те функции, которыми описывается
соответствующий реальный процесс в действительности.
Охватить все многообразие возможных процессов ограниченным
набором функций невозможно. Однако существует очень большая
группа систем, описываемых линейными дифференциальными уравнениями с постоянными коэффициентами. На дискретном множестве
равноотстоящих точек эти уравнения превращаются в линейные разностные уравнения. Процессы в таких системах задаются сочетанием
степенных и показательных функций. Этот набор функций рационально взять за основу построения экстраполирующего ряда вообще
для любых процессов. В работе будет показано, что такой подход хорошо согласуется с нелинейными и параметрическими системами. Повидимому, это связано с тем фактом, что основная часть процесса в
подобных системах также описывается степенными и показательными
функциями.
Таким образом, принимаем за основу описания непрерывного
процесса x(t) экстраполирующий конечный ряд следующего вида [21]:
x(t ) 
q
a
i
cit t mi 1 ,
(2.1)
i 1
где ai - постоянные коэффициенты,
ci - корни характеристического уравнения системы,
t - относительное время,
mi – целые числа, соответствующие кратностям корней ci. mi = 1
для некратных корней, mi = 1 и 2 для корней кратности 2 и т. д.
Реальные процессы могут задаваться своими отдельными значениями или измерениями (точками). Если эти измерения производятся
через промежутки относительного времени, равные единице, появляется возможность привлечь для описания процессов аппарат решетча10
тых функций и разностных уравнений [35]. Это позволит использовать для решения поставленных задач эффективные численные методы.
Дискретный эквивалент x(k) = xk непрерывного процесса x(t) будет описываться следующим рядом:
xk 
q
a
i
cik k mi 1 ,
(2.2)
i 1
где k = 0, 1, 2, … .
Таким образом, важной задачей работы является определение
экстраполирующего ряда (2.2) по отдельным равноотстоящим точкам
процесса. Приближение к реальным объектам обеспечится распространением полученных результатов на параметрические, нелинейные
и стохастические системы. Будут изложены также методы описания
процессов по неравноотстоящим точкам и рассмотрены не только эволюционные процессы, но и процессы революционного (скачкообразного) типа.
2.2. Основные соотношения
Пусть в линейной непараметрической системе на выходе имеется
процесс x(t ) в нормированном времени t . Необходимо по нескольким следующим друг за другом равноотстоящим точкам процесса
x(0) = x0, x(1) = x1 , ... , x(w) = xw определить дальнейший ход этого
процесса и найти его аналитическое описание.
Исходя из условия линейности и непараметричности системы
можно утверждать, что решетчатая функция процесса x(k) = xk, (k = 0,
1, 2, …) подчиняется разностному уравнению с постоянными коэффициентами [21]. Иначе говоря, все последующие значения процесса могут быть вычислены через несколько предыдущих с помощью линейного рекуррентного соотношения. Используем вначале однородное
разностное уравнение [35]. В дальнейшем будет показано, что это
ограничение не имеет принципиального характера.
Среди всего многообразия форм разностных уравнений рационально выбрать следующую:
xqk  f q xq1k    f 2 x1k  f1 xk  0 ,
11
(2.3)
где q – порядок уравнения,
k = 0, 1, 2, …, w – q, … – номер точки процесса.
Соответствующее выражению (2.3) характеристическое уравнение имеет вид [21]:
f c  c q  f q c q1    f 2 c  f1  0 .
(2.4)
Формула для вычисления коэффициентов fi следует из уравнения
(2.3), если известны начальные точки процесса x0, x1 , ..., xw. Полагая
k = 0, 1, …, w - q, получим систему линейных уравнений относительно
неизвестных коэффициентов fi:
 x0
 x
 1


 xwq
 xq 1 
 xq 
 

 xw1 
x1
x2

xwq 1
 f1   xq 
f  

 2    xq 1  ,
   
  

 f q   xw 
(2.5)
или в сокращенном варианте: Х f = x. Эта система будет иметь
точное решение f = Х-1 x, если матрица Ганкеля Х будет квадратной и
не вырожденной. Отсюда следует соотношение между максимально
возможным порядком q разностного уравнения и числом исходных
точек w + 1: q = (w + 1) / 2. Приближенное решение данной системы
для q < (w + 1 ) / 2 так же существует. При этом необходимо использовать соотношение: f = (Хt Х)-1 Хt x (см. п. 3.4 главы 3).
Если число w четное, точного решения системы (2.5) не существует. Поэтому в нее необходимо добавить еще одно уравнение,
определяющее какую-либо дополнительную связь между коэффициентами fi. Наиболее рационально предположить, что один из корней
характеристического многочлена (2.4) должен иметь значение c = 1, то
есть в ряде (2.2) должна присутствовать постоянная составляющая. В
результате система (2.5) примет другой вид:
 x0
 x
 1

 xw  q

 1
x1
x2

xwq 1
1
 xq 1 
 xq 
 
 xw1 

 1 
12
 f1   xq 
 f   xq 1 

 2  

 ,



x
w 
 

f
 q   1 
(2.6)
и точное решение станет возможным при q = (w + 2) / 2.
Некоторые процессы вместо постоянной составляющей могут содержать постоянную знакопеременную компоненту. Тогда один из
корней уравнения (2.4) должен иметь значение c = –1. В этом случае
система (2.5) будет выглядеть так:
 x0
 x
 1

 xw  q

 1
x1
x2

xwq 1
1
 xq 1 
 xq 
 
 xw1 

  1 
 f1   xq 
 f   xq 1 

 2  

 ,


   xw 
 f q    1 


(2.7)
и точное решение получится при том же значении q , что и в предыдущем случае.
Рассмотренные три варианта систем приводят в итоге к получению полного ряда (2.2) минимального объема. Если значение одного
действительного корня с модулем | c | >< 1 для нестационарного процесса известно заранее, можно соответственно задать последнюю
строку в соотношении (2.6) или (2.7). Однако итоговый полный ряд
здесь не будет иметь минимальный объем.
Определение вектора f в случае правильного выбора величины q
уже позволяет вести прогнозирование процесса по уравнению (2.3).
Для этого надо последовательно полагать k = w – q + 1, w – q + 2, … .
Однако, как будет показано дальше, для повышения точности прогноза важно найти аналитическое описание этого процесса в виде ряда
(2.2). Именно преобразования такого ряда, с учетом реального характера самого процесса, имеют решающее значение.
Предположим теперь, что вместо соотношения (2.3), процесс в
системе описывается неоднородным разностным уравнением того же
вида:
xqk  f q xq1k    f 2 x1k  f1 xk  u (k ) ,
(2.8)
где u(k) обычно считается вынуждающим воздействием.
Условимся считать также, что функцию u(k) можно представить в
виде конечного ряда типа (2.2):
u k  
p
d
i 1
13
i
eik k gi1 .
(2.9)
Получение характеристического уравнения для соотношения (2.8)
требует вычисления прямого Z-преобразования от обеих частей этого
выражения. При этом характеристический полином для левой части
примет известный вид (2.4), и полином правой части g(c) будет того
же типа. Он может быть составлен на основе всех своих корней ei ,
входящих в выражение (2.7), т. е. g(c) = (c – e1)(с – е2)…(с – еp). В результате, общий характеристический многочлен для уравнения (2.8) с
соответствующими корнями определится как произведение указанных
полиномов. Следовательно, неоднородное разностное уравнение (2.8)
порядка q будет эквивалентно однородному разностному уравнению
типа (2.3) порядка p + q . Тем самым доказано, что требование однородности исходного разностного уравнения (2.3) не ограничивает
класс рассматриваемых линейных процессов при условии (2.9).
Рассмотрим теперь вопрос выбора величины w , то есть числа исходных точек x0, x1 , …, xw детерминированного линейного процесса
неизвестного порядка q при условии точного решения систем (2.5),
(2.6), или (2.7).
Если число точек больше требуемого, последний столбец матрицы X будет линейной комбинацией ее предыдущих столбцов. Это следует из уравнения (2.3) и приводит к вырождению матрицы. На практике, ввиду неизбежной погрешности задания исходных точек, величина определителя DET{X} резко уменьшается при увеличении w
сверх некоторого граничного значения. Это значение и следует признать минимально необходимым.
Если число начальных точек меньше требуемого, с помощью
данных систем конечно можно получить коэффициенты fi разностного
уравнения меньшего порядка. Однако в этом случае прогноз будет
расходиться с истинным ходом процесса на его следующих известных
точках. Этот факт легко проверить простой подстановкой в уравнение
(2.3).
Таким образом, для линейного детерминированного процесса существует единственное минимально необходимое число исходных
точек w + 1, дающее полный ряд (2.2) наименьшего объема, который
будет соответствовать этому процессу на всем его протяжении. Именно такой ряд, как будет показано в дальнейшем, обладает хорошими
экстраполирующими свойствами для данного процесса при наличии
дополнительных шумов исходных точек.
Продолжение хода задачи связано с решением характеристического уравнения (2.4). При большом порядке уравнения q точное
14
определение его корней встречает серьезные трудности. Для q > 50
наилучшие результаты обеспечивает разработанная автором модификация метода Бэрстоу [21]. При этом из исходного уравнения выделяется множитель c2– uc – v, определяющий два действительных корня
или пару комплексных сопряженных корней. Данная процедура
предусматривает задание начальных приближений u0, v0 и построение
затем последовательности лучших приближений:
u j 1  u j 
v j 1  v j 
bq d q 3  bq 1d q 2
d q22  d q 1d q 3
bq 1d q 1  bq d q 2
d q22  d q 1d q 3
,
,
(2.10)
где величины bk, dk определяются для каждой j + 1-й итерации по следующей рекуррентной процедуре:
bk   f q 1 k  u j bk 1  v j bk  2 ,
d k  bk  u j d k 1  v j d k  2 ,
b1  b 2  d 1  d  2  0,
(2.11)
k  0, 1, 2, , q.
Экспериментально установлено, что среднестатистически
наилучшими начальными приближениями являются следующие случайные выборки:
u0 = 2RND – 1, v0 = RND – 1.
(2.12)
При этом, вычисление коэффициентов u и v необходимо прерывать и повторять заново при отсутствии признаков быстрой сходимости итерационного процесса в формулах (2.10).
После определения коэффициентов u и v с предельно возможной
точностью находится соответствующая пара корней; затем все уравнение делится на квадратный множитель c2 – uc – v, и весь процесс
повторяется.
Следует отметить, что метод Бэрстоу наилучшим образом приспособлен для решения уравнений четных степеней. Поэтому, в слу15
чае нечетной степени исходного уравнения, из него желательно выделять в начале решения один действительный корень. Для этого хорошо подходит устойчивый метод половинного деления отрезка. В итоге
удается обеспечить относительную погрешность вычисления всех
корней не хуже 10-14, при степени уравнения q = 200 и более. Блоксхема программы для основной части метода приведена на рис. 2.1.
После определения корней сi уравнения (2.4) можно приступать к
вычислению соответствующих этим корням коэффициентов ai ряда
(2.2).
В зависимости от количества и типа корней ci (действительные
или комплексно сопряженные, кратные или некратные), этот ряд в
действительном выражении может содержать показательные компоненты (экспоненты), синусоиды (элементы тригонометрического ряда), степенные компоненты (элементы ряда Тейлора), а также их всевозможные сочетания.
Определение неизвестных коэффициентов ai в общем случае
должно производиться по всем исходным точкам x0, x1 , …, xw в соответствии с линейной структурой ряда (2.2):






0 m1 1 C10
0 m2 1 C20
1m1 1 C11

m1 1 w
w C1
1m2 1 C21

m2 1 w
w C2
Cq0 

m 1
 1 p Cq1 

 
m 1
 w p Cqw 
 0
m p 1
 a1   x0 
a   
 2    x1  ,
  
   
aq   xw 
(2.13)
или сокращенно Ca = x.
В данной формуле, как и во всей работе, полагается ØØ = 1 по
аналогии с нулевыми степенями остальных чисел.
Число строк в матрице C всегда больше числа столбцов. Поэтому
решение системы (2.13) ищется в виде: a = (Ct C)-1Ctx (см. п. 3.4). Если
используются корни точного уравнения (2.3), решение также будет
точным. В противном случае, коэффициенты ai будут найдены приближенно. Эти коэффициенты для сопряженных пар корней сi также
будут сопряжены. Рассмотренный подход к получению решения всегда обеспечивает высокую точность результата, несмотря на плохую
обусловленность матрицы C.
На практике, ввиду неизбежных погрешностей задания исходных
точек и ошибок вычислений, кратные корни встречаются редко.
16
Рис. 2.1. Выделение множителя c2 – uc – v из характеристического
многочлена.
17
Если все корни уравнения (2.4) простые, структура ряда (2.2)
упрощается:
xk 
p
a
i
cik ,
(2.14)
i 1
и соответственно упрощается формула (2.13):






C10
C11

C1w
 Cq0 

C21  Cq1 
  

C2w  Cqw 
C20
 a1   x0 
a   
 2    x1  .
  
   
aq   xw 
(2.15)
Приведем действительное выражение для найденного ряда (2.2),
которое требуется при конкретных расчетах. Применяя экспоненциальную форму записи комплексных чисел, с помощью формулы Эйлера можно получить:
xk 
 
q
2
i
 i2

k
2
i coski   i sin ki  k mi 1 ,
(2.16)
i 1
где
ai   i  ji ,
ci  i  ji ,
i  Arg(ci ).
При использовании данной формулы некоторое упрощение достигается за счет того, что комплексные величины ai, ci всегда будут
иметь сопряженные пары. Эти пары будут давать одинаковый вклад в
сумму (2.16).
Пример 2.1
Пусть линейный процесс описывается следующим соотношением:
xk  2  e 0,02k cos0,5 Пk   e 0,01k cos0,3Пk   sin 0,22 Пk . (2.17)
Очевидно, что данный процесс содержит 7 корней, из которых
один положительный единичный и три сопряженные пары. Требуется
18
выбрать q = 7 , т. е. взять w = 13 для формулы (2.5) или w = 12 для
формулы (2.6) . При этом, получаем полное совпадение графиков исходной и аппроксимирующей функций (см. рис 2.2).
Рис. 2.2.
Если теперь на том же временном интервале задать q = 6 , т. е.
взять w = 11 для формулы (2.5) или w = 10 для формулы (2.6), то за
границей интервала будет иметь место явное расхождение графиков
(см. рис 2.3). На этом рисунке график исходной функции изображен
более темной линией.
Рис. 2.3.
19
В заключение необходимо рассмотреть вопрос выбора интервала
между исходными точками на кривой прогнозируемого процесса.
Общее правило состоит в том, чтобы передать всю информацию о
процессе с помощью наименьшего числа точек. На основании теоремы Котельникова [4] можно утверждать, что при сложном колебательном характере процесса следует выбирать три-четыре точки на
минимальном периоде колебаний. Для процессов неколебательного
характера разность между значениями отдельных точек не должна
превышать 10–20 % от максимального значения процесса. Причем,
чем большее число членов ряда q используется в расчетах, тем меньше следует брать разность между значениями отдельных точек. Данные положения подтверждены экспериментально на большом числе
различных примеров.
Избыточное или недостаточное число точек может ухудшить конечный результат.
2.3. Нелинейные и параметрические процессы
Нелинейные и параметрические процессы в сложных системах
также описываются разностными уравнениями. Однако коэффициенты этих уравнений не являются постоянными величинами. Они могут
зависеть от дискретного времени k (параметрические системы) или от
значений самой переменной xk (нелинейные системы). В строго математическом смысле такие процессы нельзя точно описать конечными
рядами (2.1) или (2.2). Но на ограниченном временном интервале их
можно достаточно точно аппроксимировать с помощью этих рядов.
Справедливость данного утверждения непосредственно следует из
общей теории аппроксимации [3].
Наиболее важный экспериментальный факт состоит в том, что если для аппроксимации таких процессов правильно использовать ряд
(2.2), то его экстраполирующие возможности окажутся достаточно
хорошими для получения необходимой точности прогноза заданного
количества неизвестных точек. Это резко отличает принятый подход
от традиционных методов, связанных с применением рядов Тейлора,
Фурье и пр. Известно, что эти ряды могут использоваться для прогнозирования значений аппроксимированной функции не более чем на
четверти или половине интервала дискретности задания исходных точек [3, 21].
20
Задачей данного параграфа является экспериментальное подтверждение хороших экстраполирующих свойств ряда (2.2). Для этого
рассмотрим ряд примеров.
Пример 2.2
Пусть исходный нелинейный процесс описывается следующей
функцией:
xk  e 0,05k sin
1
cos 0,5k .
0,1  0,01k
(2.18)
График функции приведен на рис. 2.4–2.8 более темной линией.
Выберем фиксированный исходный временной интервал задания
точек от k = 0 до k = 12 .
Будем делать пробный прогноз двух значений x13 = 0,4047,
x14 = 0,3733, меняя число исходных точек w внутри выбранного интервала и, соответственно, порядок q разностного уравнения. Для этого
примера использовалась формула (2.6), хотя исходный процесс не содержит в явном виде постоянной составляющей.
Данные расчетов приведены в табл. 2.1 и проиллюстрированы
рис. 2.4, 2.5, 2.6.
Таблица 2.1
№ рисунка
q
Кол-во точек
х13
х14
2,4
4
7
0,4139
0,4025
–
5
9
0,4065
0,3812
2,5
6
11
0,4045
0,3721
-
7
13
0,4047
0,3734
2,6
9
17
0,4047
0,3733
По результатам примера можно сделать следующие выводы:
1. При постоянном исходном временном интервале увеличение
числа заданных точек (числа членов аппроксимирующего ряда) приводит к повышению точности прогноза вблизи этого интервала.
21
2. Увеличение количества исходных точек сверх необходимого
для заданной точности не вызывает потери устойчивости вычислительного процесса, что было характерно для линейных процессов.
Рис. 2.4.
Рис. 2.5.
22
Рис. 2.6.
Пример 2.3
Пусть исходный нелинейный процесс описывается функцией:
xk  e 0, 2k 0,25k  10 2 0,4  0,1k  .
5
(2.19)
График функции приведен на рис. 2.9–2.11 более темной линией.
Выберем фиксированный интервал задания точек от k = 0 до
k = 12. Будем делать пробный прогноз двух значений х13 = –8,087110-3,
х14 = –7,5192-10-2, меняя число исходных точек внутри интервала.
Результаты расчетов приведены в табл. 2.2 и на рис. 2.7, 2.8, 2.9.
Таблица 2.2
№ рисунка
q
Кол–во точек
х13
х14
2,7
2,8
2,9
4
7
13
7
13
25
–2,461510–4
–8,094910–3
–8,087110–3
–5,233210–2
–7,524510–2
–7,518310–2
Эти результаты полностью подтверждают выводы, сделанные в
предыдущем эксперименте.
23
Рис. 2.7.
Рис. 2.8.
Рис. 2.9.
24
Пример 2.4
Для получения исходных точек зададим следующее параметрическое разностное уравнение:
x5 k  0,7164 k x4 k  3,1049 x3 k  3,0592 x2 k 
 2,0600 x1 k  9,4176 xk  0 ,
(2.20)
с начальными условиями: х0 = 0, х1 = 1,4181, х2 = 3,2637, х3 = 2,9229,
х4 = 1,8542.
Последующие точки, полученные с помощью этого уравнения,
будем использовать для построения ряда с целью прогнозирования
при различных значениях q, т. е. при различной длине исходного временного интервала и изменении величины w.
Результаты вычислений приведены в табл. 2.3.
Таблица 2.3
№ рисунка
q
–
6
–
7
–
8
–
9
–
10
–
11
Прогноз
Истинное значение
х11 = 2,4371
х11 = 2,9231
х12 = 0,2914
х12 = 2,7395
х13 = 4,5036
х13 = 4,1668
х14 = 8,7786
х14 = 6,2380
х15 = 9,9759
х15 = 10,9552
х16 = 14,5688
х16 = 21,8815
х17 = 40,705
х17 =43,697
х18 = 63,316
х18 = 89,462
х19 = 192,64
х19 = 193,93
х20 = 426,83
х20 = 442,47
х21 = 1,0550103
х21 = 1,0547103
x22 = 2,6228103
х22 = 2,6204103
В дополнение к полученным ранее выводам можно заключить,
что увеличение количества исходных точек при одновременном росте
задающего временного интервала также приводит к повышению точ25
ности прогнозирования. То же происходит, если увеличивать этот
временной интервал не только в сторону роста величины k (вперед),
но и путем присоединения точек с малыми, в том числе отрицательными, значениями аргумента k (назад). Последнее утверждение иллюстрировано расчетами, приведенными в табл. 2.4 .
Таблица 2.4
№ рисунка
–
–
–
–
–
q
5
6
7
9
11
Прогноз для х21
1,0850103
1,0491103
1,0556103
1,0528103
1,0550103
Прогноз для х22
2,9586103
2,5535103
2,6261103
2,5950103
2,6228103
Рассмотренные примеры наглядно демонстрируют хорошие экстраполирующие возможности ряда (2.2) для случая нелинейных и параметрических процессов. Прогнозирование по крайней мере нескольких точек с высокой точностью вполне реально. Подтверждением этому являются также другие расчеты, приведенные в следующих
главах работы.
2.4. Точность прогнозирования
Для линейных детерминированных процессов, в случае правильного выбора числа членов ряда q, обеспечивается предельно высокая
точность прогнозирования. Эта точность определяется вычислительными погрешностями ЭВМ и может быть повышена рациональным
выбором методов расчета.
В случае нелинейных и параметрических процессов следует учитывать приближенный характер их экстраполяции рядом (2.2). Получение необходимой точности прогнозирования таких процессов может
обеспечиваться различными методами.
В простейшем случае следует использовать зависимость значений
прогнозируемых точек от величины q . Если постепенно увеличивать
число членов ряда за счет присоединения новых начальных точек,
можно добиться того, что очередное изменение прогноза за счет увеличения q окажется меньше требуемой погрешности. С большой долей уверенности можно утверждать, что данное значение q обеспечит
необходимую точность прогноза. В дальнейшем для повышения до26
стоверности результата можно использовать несколько увеличенное
число членов ряда.
Другой вариант оценки предусматривает использование некоторого количества крайних точек исходной числовой последовательности в качестве контрольных для выполнения пробного прогноза. При
этом также добиваются нужной точности пробного прогноза путем
наращивания числа q . Затем полученное значение q используют для
реального прогнозирования с использованием всех известных крайних
точек. Как и в предыдущем способе, число членов ряда для надежности может быть несколько увеличено.
В заключение следует еще раз остановиться на актуальной проблеме снижения вычислительных погрешностей при больших значениях числа q . Автором было установлено, что введение небольшой
шумовой составляющей в значения исходных точек может существенно повысить точность конечного результата. По-видимому, это
связано с особенностями обработки на ЭВМ плохо обусловленных
матриц и численной неустойчивостью методов определения корней
алгебраических уравнений высокого порядка. Оптимальная амплитуда
дополнительных шумов обычно составляет 10-5–10-7 от уровня точек
исходного процесса.
2.5. Изменение ряда при усреднении точек
Метод “скользящего среднего” широко используется при обработке результатов экспериментов. Данный метод является эффективным способом сглаживания процесса в целях борьбы со случайными
погрешностями отдельных измерений [30]. Однако при этом возникают дополнительные искажения первичного процесса. Они состоят в
том, что мгновенные значения xk заменяются средними величинами
x k за некоторый период наблюдений.
Пусть каждая точка x k определяется как среднее арифметическое
от 2m+1 равноотстоящих друг от друга точек первичного процесса:
xk 
m
1
xk l  ,
2m  1 l  m

где ε > 0 – шаг между отдельными измерениями.
27
(2.21)
При наличии w + 1 штук равноотстоящих точек x k , по ним можно построить ряд (2.2). На практике можно считать все корни ci такого
ряда некратными. Тогда ряд (2.2) запишем в виде:
xk 
p
a
cik .
i
(2.22)
i 1
Пусть для аналогичного количества точек первичного процесса xk
также существует ряд подобной структуры:
xk 
p
a
i
cik .
(2.23)
i 1
Используя соотношения (2.21)–(2.23), легко получить связь между первичными и усредненными точками процесса:
p

i 1
ai cik
m  p

1
 ai cik l  .


2m  1 l  m i 1


(2.24)
Из этого равенства определяется связь между рассчитанными
элементами a i , c i и элементами ai, ci неизвестного ряда для первичного процесса:
ci  ci ,
ai  ai 2m  1 /
m
c
l
i
.
(2.25)
l  m
Отметим тот важный факт, что усреднение не влияет на значения
корней ci.
Таким образом, рассмотренная методика усреднения не приводит
к потере информации о первичном процессе. Он может быть точно
восстановлен по результатам расчета усредненного процесса.
На практике иногда используют многократное усреднение.
Например, дважды или трижды вычисляют скользящее среднее значение [30].
Пусть для первичного процесса xk результаты усреднения, полученные на произвольном j-ом этапе, составят x k( j ) . Соответственно, на
28
этом этапе будет использоваться интервал усреднения εj при количестве точек mj:
m
xk( j )
j
1

xk( j l1) .
2m j  1 l   m

(2.26)
Тогда, применяя рассмотренную выше методику, можно связать
элементы ряда конечного процесса x k( n ) с элементами ряда для первичного процесса хk:




n
 2m j  1 
(n)
(n)
(2.27)
ci  ci ,
ai  ai
 mj
.
l j 
j 1 
ci 

l


m
j






И в этом случае информация о первичном процессе сохраняется
полностью.
Таким образом, рассмотренные варианты метода "скользящего
среднего" не приводят к утрате информации о первичном процессе и
его ряде, если число усредненных точек равно числу исходных и используется одинаковый метод получения всех усредненных точек.
Следовательно, применение усреднения как эффективной меры борьбы с шумами вполне допустимо в случае использования для прогнозирования метода комбинированных рядов.
29
Глава 3. РЯДЫ ДЛЯ ПРОЦЕССОВ С ШУМАМИ
3.1. Компенсация временных погрешностей точек
На практике, при выполнении измерений или фиксации значений
процесса иногда сложно выдержать строго одинаковый интервал времени между точками. В этом случае изложенные в предыдущей главе
методы оказываются неприменимыми. Следовательно, предварительно необходимо каким-либо способом перевести исходную последовательность неравноотстоящих точек в другую последовательность с
равноотстоящими значениями аргумента. Естественно, в новой последовательности значения точек будут несколько отличаться от исходных, а информация о первоначальном процессе будет искажена. Эти
искажения можно уменьшить путем оптимизации полученного ряда
по исходным точкам (см. п. 3.5).
Среди всего многообразия задач указанного типа следует остановиться на решении проблемы при следующих условиях:
1. Известные временные отклонения исходных точек от принятого ряда равноотстоящих значений не превышают половины периода
дискретизации.
2. В исходной последовательности отсутствуют пропуски отдельных точек.
Решение поставленной задачи может производиться интерполяционными методами. Хорошие результаты дает метод степенной интерполяции [3]. При этом слишком малые и слишком большие степени
интерполирующих многочленов не обеспечивают хорошей точности
результата. Согласно литературным рекомендациям, автором принят
метод пятиточечной интерполяции по Лагранжу [3]. При этом, по соседним пяти точкам строится интерполяционный многочлен четвертого порядка, с помощью которого может быть получено новое значение
одной центральной точки. Далее производится сдвиг исходной пятиточечной последовательности на один шаг вправо или влево и определяется новое значение еще одной точки и т. д.
Для первых двух и последних двух точек исходной последовательности по интерполяционному многочлену определяется не центральная, а соответствующие боковые точки. При этом один и тот же
многочлен используется для получения сразу трех крайних точек на
конце последовательности. Естественно, точность определения двух
30
крайних точек неизбежно снижается. Эта особенность характерна для
всех интерполяционных методов [3].
Формула Лагранжа для пятиточечной интерполяции имеет следующий вид:
 t  t 
5
x(t ) 
5

i 1
j
j 1, j i
xi* 5
 t
i
tj

,
(3.1)
j 1, j i
где xi*, t i – координаты исходных неравноотстоящих точек в нормированном времени.
Координаты центральных неравноотстоящих точек определяются
в формуле (3.1) как x3*, координаты первых двух точек последовательности как x1*, x2*, последних двух точек как x4*, x5*.
Отметим, что нумерация по индексам i, j в формуле (3.1) не соответствует принятым в работе обозначениям x0 , x1, …, xw и взята для
удобства и простоты написания формулы. Например, для получения
первых трех равноотстоящих точек последовательности в формуле
(3.1) надо использовать точки x0*, x1*, x2* , x3*, x4* исходной последовательности, для получения промежуточных точек x(k) используются
точки xk-2* , xk-1*, xk* , xk+1*, xk+2* и т. д.
Аналогичным способом можно восстанавливать значения точек,
отсутствующих в исходной числовой последовательности. Однако
ввиду малой достоверности результата, практически возможно восстановление не более одной точки по значениям нескольких других, ее
окружающих. Естественно, восстанавливаемые точки не могут находиться на краях числовой последовательности.
Более достоверное восстановление значений утраченных точек
возможно методом их вариаций. Здесь хорошо использовать критерий
наилучшего пробного прогноза нескольких последних известных точек. Однако трудоемкость этого подхода позволяет восстановить значения не более двух точек из всей исходной последовательности.
3.2. Влияние амплитудных погрешностей точек на компоненты
ряда
В отличие от определенных временных сдвигов исходных точек
(см. п. 3.1), их амплитудные погрешности, как правило, не известны.
31
Поэтому задача учета и нейтрализации влияния таких погрешностей
является существенно более сложной.
Происхождение отклонений может быть связано с погрешностями измерений и обработки результатов, но основную роль играют, как
правило, неконтролируемые возмущающие воздействия. Они являются разновидностью революционных влияний небольшого уровня и не
могут полностью компенсироваться усреднением исходных данных
(см. п. 2.5).
Рассмотрим действие бесконечно малых возмущений dxi в исходной последовательности равноотстоящих точек x0, x1,…,xw на компоненты ai, ci первичного полного ряда, не содержащего кратных корней
и найденного с помощью формулы (2.5) :
xk 
q
a
i
cik .
(3.2)
i 1
Искомую связь запишем в виде:
 da1 
 dx0 



 


daq 
   G  ,


 dc1 



dxw 
 
 dcq 
(3.3)
где G – неизвестная квадратная матрица размера 2q, 2q = (w+1).
Для определения матрицы G будем поочередно давать приращения не исходным точкам, а компонентам ряда (3.2).
При изменении коэффициентов ai на величину dai можно найти
dxk  dai cik .
Если производить вариации компонент ci на величину dci , получим dxk  dci ai k cik 1 .
В результате соотношение (3.3) можно записать следующим образом:
32
da1 0
 0 da
2

 

0
 0


G 



da1
da1c1


0 
 0 

 

 dcq 

daq
 daq cq

dc1a1


da1c1w  daq cqw


dcq aq 
,




 dcq waq cqw1 

0
dc1wa1c1w1
0
(3.4)
откуда, после исключения дифференциалов, найдем:



I G Q G 




1

1
0

c1
 cq
a1

c12
cq2
2a1c1


  


w
w
w1
c1  cq wa1c1


aq 
2 a q cq  ,

 
waq cqw1 
0
(3.5)
где I – единичная матрица.
Таким образом, искомая матрица G получается обращением матрицы Q:



G  Q 1  




1
c1
c12

c1w





1
0
cq
a1
2
cq
2a1c1


w
cq wa1c1w1
1

0 

aq 
 2aq cq  . (3.6)


 
 waq cqw1 
Пусть эта матрица будет содержать элементы gij.
Ввиду большого разброса значений ai, ci в исходном ряде (3.2),
вместо абсолютных колебаний этих величин можно рассматривать их
dai dci
относительные изменения
,
.
ai
ci
33
На практике обращение матрицы Q может встретить серьезные
трудности. Это связано с ее большими размерами и плохой обусловленностью. Более рациональный подход к определению матрицы
G=Q-1 связан с прямым вычислением через ряд изменений dai, dci при
малых одиночных вариациях исходных точек. Каждая вариация dxj
дает возможность определить j-й столбец матрицы G:
g ij 
g ij 
dai
, i=1, 2, …, q,
dx j
dci q
dx j
, i=q+1,…, 2q.
(3.7)
В итоге требуется произвести расчет w + 1 вариантов первичного
ряда, после чего можно найти общие изменения dai, dci для вариаций
всех исходных точек:
dai 
w1
g
ij
dx j 1 ,
j 1
dci q 
w1
g
ij
dx j 1 .
(3.8)
j 1
Важной особенностью элементов gij матрицы G являются следующие свойства:
w1

g ij  1 для i<=q ,
j 1
w1
g
ij
 0 для i>q .
(3.9)
j 1
Это означает, что одновременное одинаковое изменение всех исходных точек приводит к такому же изменению всех коэффициентов
аi. При этом корни ряда ci не меняются.
Степень влияния всех исходных точек на компоненты ряда удобно оценивать с помощью интегральных коэффициентов Hi, полученных для одинаковых изменений dxj = dx:
Hi 
1 w1
g ij .
w  1 j 1

34
(3.10)
Для уменьшения вычислительных затрат вместо одиночных вариаций dxj=dx можно использовать одновременные случайные изменения всех точек dxj = (RND – 0,5)dx. Каждый вариант расчетов будет
давать изменения компонент ряда da i( j ) , dc i( j ) , модули которых удобно использовать для приближенной оценки коэффициентов влияния.
Hi 
Hi 
1
dxN
1
dxN
N
a
( j)
i
, i = 1, 2,…, q,
j 1
N
c
( j)
i q
, i = q+1,…, 2q,
(3.11)
j 1
где N – количество вариантов расчетов.
Практика показывает, что приемлемая точность вычислений по
формулам (3.11) достигается при N > 10. Это существенно меньше
общего количества точек w+1.
Основной результат рассмотренного подхода состоит в том, что
данная методика позволяет условно разделить все компоненты первичного ряда на две группы – информационные и шумовые. Первые
несут информацию о самом процессе и мало подвержены действию
дополнительно вводимых шумов. Вторые являются следствием неконтролируемых возмущающих факторов и зависят от дополнительных
шумов в гораздо большей степени. Это различие тем сильнее, чем
меньше уровень возмущающих влияний в исходной числовой последовательности. В итоге, из первичного ряда можно выявить и исключить шумовые компоненты, что существенно повысит точность прогноза после дополнительной обработки этого ряда (см. гл. 4).
Рассмотрим пример.
Пусть исходный процесс задается функцией (2.17). Добавим к
ней шумы 0.01(RND – 0,5) и возьмем q = 18. Если воспользоваться
формулами (3.11) для N = 20, получим следующие относительные коH
H
эффициенты влияния i и i для всех компонент полного первичci
ai
ного ряда:
35
Таблица 3.1
0,2010-1
0,20
0,1710-1
0,5210-2
0,8110-1
0,30
0,1610-1
0,49
0,1210-1
0,14
Hi
ai
0,11
Hi
ci
0,38101
11, 12 13, 14 15, 16 17, 18
0,2710- 4
9, 10
0,4010-3
7, 8
0,2710- 4
5, 6
0,4510-3
3, 4
0,1810- 4
1, 2
0,2910-3
Номеркомп.
Из табл. 3.1 следует, что первые шесть компонент существенно
меньше подвержены действию шумов, чем остальные 12. То есть эти
шесть компонент являются информационными.
Теперь при тех же условиях увеличим уровень шумов исходной
числовой последовательности до величины 0,2(RND – 0,5), т. е. в 20
раз. В результате получим следующую таблицу:
Таблица 3.2
Hi
ci
0,1010-2
0,2310-3
0,9210-3
0,5710-3
0,6210-3
Hi
ai
0,3610-2
0,8810-2
0,6010-2
0,1210-1
17, 18
0,2910-1
15, 16
0,5810-2
13, 14
0,17
11, 12
0,1610- 4
9, 10
0,2310-3
7, 8
0,2510- 4
5, 6
0,44*10-3
3, 4
0,1710- 4
1, 2
0,3010-3
Номеркомп.
В данном случае отличие между информационными и шумовыми
компонентами несколько уменьшилось, но остается вполне достаточным для их уверенного разделения.
Таким образом, если оставить в исходном ряде первые шесть
компонент, точность прогноза должна возрасти. Подтверждением
36
этому служат два графика процесса с дополнительными шумами
0.2(RND – 0,5). На рис. 3.1 показан ход процесса при полном первичном ряде, а на рис. 3.2 – при ряде, усеченном до первых шести компонент.
Рис. 3.1..
Рис. 3.2.
37
Толстая линия графиков на рисунках соответствует исходному
процессу (2.26), лишенному шумов. Конечно, во втором случае требуется дополнительная оптимизация ряда (см. п. 3.5).
В заключение отметим, что помимо изложенного, можно использовать упрощенный подход к определению шумовых компонент ряда.
Такие компоненты обычно имеют небольшие значения коэффициентов ai в сочетании с условием сi  1 , т. е. имеют резко нарастающий
характер в зоне прогноза. Однако всегда имеется вероятность того, что
в реальном процессе могут содержаться информационные компоненты небольшой величины, модули корней которых искажены шумами.
В результате эти компоненты также могут иметь резко нарастающий
характер.
О возможности исключения из ряда какой-либо компоненты
лучше всего судить по результатам пробного прогнозирования. Этот
подход достаточно универсален в случае любого изменения структуры
ряда.
3.3. Влияние амплитудных погрешностей точек
на результаты прогноза
На основе формул, полученных в предыдущем параграфе, можно
установить влияние изменений исходных точек на точки прогноза.
Определим вначале влияние приращения dxe одной исходной точки xe
(e = 0, 1, 2, …, w) на произвольную прогнозируемую точку хw+у (y = 1,
2, …).
Из уравнения (3.3) при известной матрице G можно получить
следующие соотношения:
dai  gi ,e dxe , dci  g qi ,e dxe ,
(3.12)
откуда с помощью ряда (3.2) можно найти изменение прогнозируемой
точки:
dxw y 
q
 (a
i
 dai )(ci  dci ) w y 
i 1
q
a c
w y
i i

i 1
 q

 dxe 
g i ,e  g q i ,e ai ci1 ( w  y ) ciw y   dxe M (e, y ).
 i 1



38
(3.13)
Величину М(е, у) будем называть коэффициентом влияния точки
хе на прогнозируемую точку х2р+у. Этот коэффициент описывается рядом, аналогичным исходному выражению (3.2), и содержит те же полюсы ci.
Рассмотрим пример.
Пусть исходный процесс определяется следующей функцией:
xk  2  e 0,1k cos(0,5Пk )  e 0,05k cos(0,3Пk )  e 0,12k sin( 0,42 Пk ). (3.14)
Этот процесс точно описывается рядом (3.2) для q = 7 , то есть
для полного задания процесса необходимо взять 13 точек x0, x1 , …, x12
(см. формулу (2.6)).
Будем вычислять коэффициенты влияния для следующих прогнозируемых точек: x13 =1,2950, x15=2,1337, x20=1,5831 . В табл. 3.3 приведены результаты расчетов для всех исходных точек (e = 0, 1, … , 12).
Таблица 3.3
е
0
1
2
3
4
5
6
7
8
9
10
11
12
М (е, 1)
–3,399010–1
1,5559
–5,2570
1,2173101
–2,3293101
3,6450101
–4,5747101
5,2880101
–4,5905101
3,7201101
–2,2693101
1,1592101
–4,1167
М (е, 3)
–1,8371
7,0356
–2,2106101
4,7042101
–7,7073101
1,2118102
–1,1317102
1,3876102
–7,9609101
5,9763101
–1,9443101
4,7717
–2,4245
М (е, 8)
–9,7636
4,0203102
–1,2513102
2,7376102
–4,4383102
7,2293102
–6,5378102
8,6438102
–4,8643102
4,0754102
–1,5752102
5,8985101
–6,9938
По результатам расчета можно сделать выводы, которые подтверждаются другими примерами и самой структурой формулы (2.6):
1. Влияние погрешностей первых точек ослабляется вследствие
затухающего характера некоторых компонент экспоненциального ря39
да. Кроме того, количество используемых значений этих точек в матрице формулы невелико.
2. Влияние погрешностей последних точек также ослаблено
вследствие их близости к прогнозируемым точкам и невозможности
достаточного развития процессов отклонения. Число таких точек в
матрице формулы также незначительно.
3. Наибольшее влияние имеют погрешности промежуточных точек исходной последовательности вследствие того, что процессы отклонения успевают достаточно развиться и еще не подвергаются значительному затуханию. Эти точки представлены в матрице в
наибольшем количестве.
4. Влияние погрешностей точек на дальние прогнозируемые точки усиливается.
5. Существуют такие точки в исходной последовательности, изменение которых оказывает наибольшее воздействие на результат
прогнозирования.
Очевидно, результат совместного влияния изменений всех исходных точек может быть найден по принципу суперпозиции:
dxw y 
w
 M e, y  dx
e
,
(3.15)
e 0
однако, это справедливо только для бесконечно малых изменений dxe .
В случае конечных изменений Δxe результат влияния может быть
рассчитан для каждого конкретного случая по формулам предыдущей
главы. Однако некоторые полезные свойства коэффициентов влияния
можно получить в общем виде. Например, в случае любых (конечных
или бесконечно малых) изменений Δxe легко показать, что:
w
 M e, y 1 ,
(3.16)
e0
и не зависит от выбора величины у.
Сумма (3.16) существенно меньше отдельных значений M (e , y) .
Тогда, по закону больших чисел, совместное действие чисто случайных погрешностей исходных точек будет намного меньше, чем влияние погрешности какой-либо одной точки. Так, например, добавление
шумов величины 210-3 (RND – 0.5) к процессу (3.14) вызывает следу40
ющие отклонения прогноза точек Δх13=8,618910-3, Δх15=1,620410-2,
Δх20=1,71510-1. Именно этот факт позволяет надежно прогнозировать
процессы со случайными погрешностями исходных точек.
Наоборот, принудительное небольшое изменение одной или нескольких точек исходной последовательности может резко ухудшить
прогноз. В том же примере, если положить Δx5 =10-3 в процессе без
шумов, получим: Δх13=4,075510-2, Δх15=2,546410-1, Δх20=8,342310-1.
То есть для надежного прогнозирования нужна высокая достоверность
исходных данных.
В то же время, одинаковая систематическая погрешность всех исходных точек сместит на такую же величину только постоянную составляющую процесса. Поэтому, изменение прогноза в данном случае
окажется равным систематической погрешности (см. формулу (3.16)).
Из полученных результатов вытекает способ взаимной компенсации погрешностей путем исключения или добавления небольшого
числа начальных точек. При этом надо получить минимальное значение суммы (3.15) для различных вариантов случайных изменений dxe.
На практике большинство реальных процессов можно отнести к
почти стационарным (см. гл. 4). Следовательно, достаточно подобрать
такое количество исходных точек, при котором модули всех корней ci
будут максимально близки к единице. Поскольку шумовые компоненты ряда резко усиливают свое влияние в области прогноза (имеют
сi  1 ), отсутствие или ослабление нарастающих членов ряда будет
указывать на эффект взаимной компенсации случайных отклонений
исходных точек. Например, если для процесса на рисунке 3.1 вместо
18 исходных точек взять 16 (см.рис.3.3), результат поведения ряда в
зоне прогноза окажется вполне приемлемым даже без усечения его до
шести информативных компонент.
Данный пример наглядно показывает, что выбор оптимального
количества исходных точек процесса по изложенным выше критериям
является весьма эффективным методом борьбы с шумами. При этом из
всех возможных вариантов, обеспечивающих компенсацию, надо выбирать тот, который содержит наибольшее количество точек. В противном случае часть информации о процессе может быть утрачена
неоправданно сильным сокращением исходной числовой последовательности.
41
Рис. 3.3.
3.4. Компенсация амплитудных погрешностей точек
снижением порядка разностного уравнения
Наличие шумов в исходной числовой последовательности требует
увеличения числа точек сверх необходимого, определяемого порядком
процесса. Это позволяет выявить и исключить шумовые компоненты
ряда (см. п. 3.2.). Между тем, имеется возможность нейтрализации
шумовых составляющих процесса ещё на этапе получения разностного уравнения. Этот факт известен из литературы, посвященной регрессионному анализу. Всё сводится к принудительному заданию порядка
разностного уравнения q  p . Такое уравнение должно описывать
другой процесс xk* , имеющий минимальное отклонение от исходного
xk . Коэффициенты этого уравнения всегда могут быть найдены по
наиболее удобной формуле (2.5).
Будем искать коэффициенты разностного уравнения порядка
q  ( w  1) / 2 по принципу минимального среднеквадратического
отклонения процесса xk* от исходных точек. Функция текущей ошибки процесса может быть записана в виде:
x0 , x1, ... , xw.
k  xq k  f q xq1k  ...  f1 xk ,
где k  0, 1, ..., m  w  q .
42
(3.17)
Условие минимума среднеквадратической ошибки определения
коэффициентов разностного уравнения приводит к следующей системе:
d m
2
(3.18)
  k   0 ,
dfi  k 0

для i  1, 2, ..., q.
После выполнения дифференцирования эта система представится
в линейном виде:
m

k
xi 1k  0 ,
(3.19)
k 0
где i  1, 2, ..., q.
Решение этой системы относительно неизвестных коэффициентов
f i может быть найдено матричными методами:
 f1   Z11
 f  Z
 2    21
.... ......
  
 f q   Z q1
........ Z1q 
Z 22 ........ Z 2 q 
...... ........ ......

Z q 2 ........ Z qq 
Z12
1
 Z1 
Z 
 2 ,
 ....
 
 Z q 
(3.20)
где
Z ij 
m
x
ik
Zj 
x j k ;
k 0
m
x
ik
xq  k .
k 0
Можно показать, что в предельном случае, когда q  (w  1) / 2 ,
данная формула переходит в соотношение (2.5). Наоборот, вместо решения системы (2.5), согласно (3.20) для любого значения q можно
записать: f = (Хt Х)-1 Хt x, где Хt – транспонированная матрица от матрицы Х.
Критерием выбора величины q  ( w  1) / 2 для почти стационарных процессов может служить максимальное приближение модулей всех корней характеристического уравнения к единице. В случае
нестационарных процессов таким критерием может служить приближение к единице только модулей корней затухающих компонент
 ci  1 .
43
Дальнейший ход вычислений требует определения корней ci характеристического уравнения приближенного процесса xk*:
f * (c)  c q  f q c q 1  ...  f 2 c  f1  0 ,
(3.21)
которое производится методом Бэрстоу (см.п.2.2.). Затем находятся
коэффициенты ai сокращенного ряда:
xk* 
q
ak
i
mi 1 k
ci .
(3.22)
i 1
Здесь также удобно воспользоваться принципом минимального
среднеквадратического отклонения процесса xk* от исходных точек.
Составляется функция текущей ошибки:
 k  xk 
q
ak
i
mi 1 k
ci ,
(3.23)
i 1
где k  0, 1, 2, ..., w.
Условие минимума суммы квадратов ошибок  k по всем исходным точкам получается в виде системы уравнений:
d  w
2
  k   0,
dai  k 0


(3.24)
для i  1, 2, ..., q.
После выполнения дифференцирования, эта система запишется
следующим образом:
w
 k
k
m j 1 k
ci
 0,
(3.25)
k 0
где i  1, 2, ..., q.
Решение линейной системы (3.25) находится матричным методом:
 a1   Z11
a   Z
 2    21
.... ......
  
aq   Z q1
........ Z1q 
Z 22 ........ Z 2 q 
...... ........ ......

Z q 2 ........ Z qq 
Z12
44
1
 Z1 
Z 
 2 ,
 ....
 
 Z q 
(3.26)
где Z ij  Z ji 
w

k mi 1cik k
k 0
m j 1 k
cj ,
Zi 
w
x k
k
mi 1 k
ci .
k 0
Соотношение (3.26) является универсальной расчетной формулой, позволяющей определить коэффициенты ряда любого порядка q.
С вычислительной точки зрения это соотношение обеспечивает более
высокую точность по сравнению с формулами п. 2.2. При
q  (w  1) / 2 формула (3.26) обеспечивает точное решение уравнения
(2.13). Наоборот, согласно (2.13) для любого порядка q вместо (3.26)
можно записать: a = (Ct C)-1Ct x.
Существенным недостатком формулы (3.26) является необходимость построения и обращения комплексной матрицы весьма размера.
Данный недостаток можно ликвидировать путем представления ряда
(3.22) в действительном виде. Здесь надо использовать тот факт, что
комплексно сопряженные члены ряда дают одинаковый вклад в общую сумму.
Разделим все корни ci на две группы. В первую группу войдут все
действительные корни ci i  1, ..., q1  , а во вторую – комплексно сопряженные пары корней ci i  q1  1, ... , q  . Соответственно, коэффициенты ai первой группы будут действительными, а второй – комплексно- сопряженными.
Обозначим число комплексно-сопряженных пар q2  (q  q1 ) / 2 и
выберем по одному корню ci и коэффициенту ai из каждой пары. Тогда ряд (3.22) запишется в виде:
xk* 
q


 2

ai k mi 1cik  2 Re
ai k mi 1cik ,


i 1
i  q1 1

q1


(3.27)
где Re – функция выделения действительной части комплексного числа.
Введем теперь следующие обозначения:
для первой группы:
Rik   k mi 1cik ,  i  ai , i  1, ... , q1 ,
для второй группы:
45
(3.28)
Rik   jIik   k mi 1cik ,  i  j i  2ai , i  q1  1, ..., q2 .
(3.29)
Тогда ряд (3.27) преобразуется следующим образом:
xk* 
q1

i 1
   R    I   .
q2
 i Rik  
k
i
i
k
i i
(3.30)
i  q1 1
Определение неизвестных величин  i ,  i можно проводить по
принципу минимального среднеквадратического отклонения ряда
(3.30) от всех исходных точек x0 , x1 , ... , xw .
В итоге, опуская промежуточные преобразования, можно получить экономичную формулу (3.31), аналогичную выражению (3.26).
Несмотря на некоторую громоздкость формулы (3.31), получен
существенный выигрыш в скорости вычислений и объеме памяти машины. В сравнении с формулой (3.26), здесь решается система уравнений такого же размера, но в действительном выражении. Точность
определения коэффициентов ai сопоставима с результатами применения формулы (3.26).
1 ... .... .... .... q1  q2
q1  q2  1 ... q
1
0
1
.......
1
:
:
 q1
:
 q1 1 =
:
.......
q

 q1  q2
1 q2
q1  q2  1
 q1 1
........
:
 q1  q2
q
Z ij1
Z ij3
Z ij2 
Z ij4 
(3.31)
где
46
1
:
1
:
Zi
: ,
:
q1  q2
q1  q2  1
:
Z i2 
q
Z ij1 
w
 R  R , 1  i  q
k
k
i
1
j
 q2 , 1  j  q1  q2 ;
k 0
Z ij2  
w
I 
k 0
Z ij3  
k
i  q2
R jk  , q1  q2  i  q, 1  j  q1  q2 ;
w
 R  I  
k
i
k 0
Z ij4   
w
I 
k
i  q2
k 0
w
k
j  q2 ,
1  i  q1  q2 , q1  q2  j  q;
I jkq2 , q1  q2  i  q, q1  q2  j  q;
Z i1   xk Rik  , 1  i  q1  q2 ;
k 0
Z i2  
w
x
k 0
k
I ikq2 , q1  q2  i  q.
В качестве примера сокращения размера исходного разностного
уравнения рассмотрим процесс по формуле (2.17) (см. рис. 3.1) с дополнительными шумами 0,2(RND-0,5). Если для этого процесса выбрать q = 16, то есть на две единицы меньше максимального значения
q = 18, получим график, показанный на рис. 3.4:
47
Рис. 3.4.
Сравнение примеров обработки одного и того же процесса различными способами (см. рис. 3.2, 3.3, 3.4) указывает на достаточно
высокую их эффективность. Можно предположить, что еще больший
эффект даст применение нескольких способов одновременно. Однако
при этом возрастает риск потери информации об исходном процессе,
так как каждый из рассмотренных трех способов ведет к утрате части
этой информации. Критерием выбора эффективности различных сочетаний и очередности применения изложенных способов может служить точность пробного прогнозирования нескольких (не менее 4х)
известных точек.
Среднестатистически установлено (см. гл. 5), что наилучшим является поиск оптимального количества исходных точек (см. п. 3.3) с
последующим выявлением и исключением из полного ряда шумовых
компонент (см. п .3.2). Весьма эффективен также метод снижения порядка разностного уравнения. Можно использовать комбинацию указанных методов. Кроме того, эти методы желательно сочетать с исключением компонент с кратными корнями и близких к ним родственных членов ряда, имеющих примерно одинаковые модули и фазы корней. Коэффициенты ai оставшихся членов ряда следует вычислять заново по формулам п. 3.4 при каждом сокращении его длины.
Последующая оптимизация ряда (см. п. 3.5) после его сокращения
может улучшить конечный результат.
Конечно, если количества исходных точек недостаточно, способ,
изложенный в п. 3.3, следует применять с осторожностью.
В заключение отметим, что эффективное использование рассмотренных выше методов борьбы с шумами требует обязательного увеличения количества исходных точек сверх необходимого, определяемого порядком самого процесса. Соответственно повышается порядок
первичного разностного уравнения. Чем больше уровень шумов, тем
большее число точек требуется для нейтрализации этих шумов. На
практике обычно достаточно иметь двух-трех кратное количество исходных точек при интенсивности шумов не более 10–15 % относительно эффективного значения самого процесса.
С практической точки зрения важным является найденное автором соотношение, обобщающее использованный принцип минимизации среднеквадратической ошибки при решении неполных систем
линейных уравнений.
48
Пусть имеется система из m линейных уравнений, содержащих n
неизвестных, причем n  m :
 Z11 Z12 .... Z1n   f1   Z1   1 

      
 Z 21 Z 22 ..... Z 2 n   f 2  –  Z 2  =   2  ,
(3.32)
 .... .... ..... ....   ...   ...   ... 

      
 Z m1 Z m 2 ..... Z mn   f n   Z m   m 
где f i – неизвестные величины,  i – ошибки решения.
В сокращенном виде эта система выглядит так: Zf  z   .
Если решение системы искать при условии минимума суммы:
S
m

2
i
,
(3.33)
i 1
то оно может быть записано следующим компактным способом:
f  ( Z t Z )1 Z t z,
(3.34)
где Z – транспонированная матрица от матрицы Z .
В случае n = m решение (3.34) переходит в общий вид f  Z 1 z и
все ошибки  i будут равны нулю.
Конечно, для получения результата необходимо, чтобы матрица
t
Z Z была невырожденной.
Формулы (3.32)–(3.34) будут часто использоваться в дальнейшем,
например в п. 4.3. при выводе соотношений для стационарных процессов.
t
3.5. Оптимизация ряда
Изложенные в этой главе способы борьбы с погрешностями исходных точек так или иначе приводят к преобразованию ряда, первоначально уже имеющего некоторые отклонения от этих точек. В результате точность аппроксимации исходной числовой последовательности недопустимо снижается. Возникает задача повышения этой
точности путем оптимизации значений отдельных компонент ряда.
Здесь надо отметить, что достижение предельно высокой точности
аппроксимации требуется далеко не всегда. Скорее всего, надо стремиться получить вполне определенную точность, обеспечивающую
49
наилучшие результаты пробного прогноза и зависящую от величины
погрешностей исходных данных.
Задача оптимизации ряда сводится к построению и минимизации
целевой функции S (функционала оптимизации), связанной с отклонениями ряда от всех исходных точек. Минимум функции S ищется над
полем значений отдельных компонент ряда ai, ci.
В работе принят среднеквадратический вид целевой функции:
S
 
w
2

Vk xk  xk* ,
(3.35)
k 0
где Vk – весовые коэффициенты,
xk – значения точек исходной числовой последовательности,
x k* – значения оптимизируемого ряда (см., например, формулу
(3.22)).
Изменяемыми аргументами функции S служат величины
ci   i  ji , ai   i  ji . При выполнении вариаций следует учитывать то, что эти аргументы не являются свободными в математическом смысле. По виду ограничений на изменения их можно условно
разделить на три группы:
1. Аргументы, величину которых можно менять независимо от
других и без ограничений. К таким в данном случае относятся значения γi, δi при использовании ряда (3.30).
2. Аргументы с независимой вариацией, но с определенными
ограничениями. Это могут быть значения коэффициентов αi для действительных корней ci.
3. Аргументы типов 1 и 2, но с зависимой вариацией. Их значения связаны различными соотношениями с некоторыми другими аргументами. Например, изменение величины действительной части i
комплексного корня ci требует соответствующей коррекции его мнимой составляющей βi при условии сохранения неизменным модуля
этого корня.
Появление второй и третьей групп аргументов обусловлено требованиями сохранения симметрии комплексно сопряженных пар ряда
(3.22). Расхождение значений кратных корней также недопустимо, и
т. д. В связи с этим усложняется постановка задачи и ограничивается
50
применение многих эффективных алгоритмов поиска минимума
функционала S. Ухудшается также сходимость и устойчивость итерационного процесса [32].
Среди множества известных методов наилучшим образом проявил себя простой алгоритм поэлементных вариаций. Он состоит в
том, что на каждом итерационном шаге меняется значение одного аргумента. Очередность вариаций установлена заранее и не меняется в
дальнейшем.
Если результат изменения оказывается благоприятным (величина
S уменьшается), данное изменение фиксируется, т. е. запоминается
новое значение аргумента и направление его изменения. В противном
случае значение аргумента восстанавливается, а направление его вариаций меняется на противоположное.
В любом случае следующий итерационный шаг должен проводиться с другим аргументом.
Если неблагоприятные результаты повторяются для всех аргументов при их двукратном обходе, делается вывод о том, что произошла локализация точки минимума функции S. Уточнение положения
этой точки возможно, если уменьшить уровень вариаций и повторить
весь процесс заново.
Когда в результате поэтапного уменьшения вариаций достигается
стабилизация минимального значения функционала S, процесс оптимизации следует считать завершенным. Однако вопрос о получении
именно глобального минимума функционала всегда остается открытым [32]. Увеличить вероятность достижения именно глобального
минимума можно путем повторной оптимизации исходного ряда с
другими настройками процесса.
Если расположить все компоненты ряда в порядке убывания их
веса (см. ниже), можно рекомендовать следующую последовательность их изменения: все γi, все αi, все δi, все βi и далее возврат к началу. При этом вариации аргументов βi всегда должны быть на порядок
меньше остальных.
Вес отдельных компонент ряда Wi = W{ai kmi-1 cik} является эквивалентом их вклада в общую сумму или прогноз. Он может определяться из различных соображений:
1. По степени влияния компонент на точки прогноза x*w+1, x*w+2,
…, x*w+n:
51
Wi 
1
n
w n
| a k
i
mi 1 k
ci
| .
(3.36)
k  w 1
2. По площади огибающей функции компоненты в области исходных точек:
| a | w mi 1
(3.37)
Wi  i
k
| ci |k .
w  1 k 0

3. По упрощенной методике, как полусумма начального и конечного значений огибающей функции:
Wi  0.5 ( | ai | 0mi1  | ai | wmi1 | ci |w ) .
(3.38)
Определение весов компонент облегчает анализ полученного ряда также в плане выделения существенных или исключения несущественных его членов.
Оптимизация ряда является весьма эффективным способом повышения точности прогнозирования. В результате ее проведения отклонения ряда от исходных точек, как правило, оказываются равными
величине шумов этих точек. Поэтому рассматриваемая методика позволяет, в принципе, определять шумовую составляющую каждой исходной точки, если число членов ряда q примерно соответствует порядку исследуемого процесса.
В заключение отметим, что изложенный в п. 3.4 метод получения
неполного ряда, даже при последующей оптимизации величин ai, ci, не
обеспечивает минимально возможного среднеквадратического отклонения от исходных точек. Для такой оптимизации рекомендуется использовать, например, одновременные случайные вариации всех исходных точек с отбором удачных вариантов. Можно применять как
простые, так и сложные комбинированные критерии отбора. Однако
полученные ряды максимальной точности, как правило, не дают
улучшения экстраполирующих свойств.
3.6. Оптимизация разностного уравнения
Основные алгоритмы получения коэффициентов f i разностного
уравнения (2.3) любого порядка (см. п.п. 2.2, 3.4) базируются на критерии максимально возможной точности расчета всего одной после52
дующей точки по нескольким предыдущим. Относительная простота
реализации такого подхода еще не означает его оптимальности для
всех конкретных задач. Если исходные данные существенно искажены
шумами различного рода, типовой расчет коэффициентов уравнения
может не обеспечить необходимой точности последующего прогноза.
Кроме того, уже на этапе получения этих коэффициентов желательно
учитывать характер самого процесса, который часто известен из физических соображений или установлен в результате предварительных
расчетов. Особенно это касается большого класса процессов, близких
к стационарным. Аналитический учет всех таких факторов с выходом
на строгие и универсальные расчетные алгоритмы не представляется
возможным. Поэтому здесь приходится использовать оптимизационные методы решения задачи.
Процедура получения разностного уравнения, в наибольшей степени соответствующего исходному процессу, помимо изложенных в
п.п. 2.2 и 3.4 методов, должна включать в себя этап дополнительного
улучшения точности этого уравнения в области всех исходных точек и
предполагаемых точек прогноза. Оптимизация коэффициентов f i
возможна по следующему алгоритму:
1. Задается стартовая последовательность исходных точек x0 , x1,
…, xq-1 и по уравнению (2.3) рекурсией определяется прогноз следующих точек xq* , xq+1* , …, xw* с соответствующими погрешностями e0
*
j = (xj - xj ). Затем стартовая последовательность сдвигается на один
шаг: x1 , x2 , …, xq и таким же образом находятся новые точки прогноза
xq+1* , xq+2* , …, xw* и их погрешности e1 j = (xj - xj* ). Снова делается
сдвиг на один шаг и так далее, пока не придем к последнему варианту
стартовых точек: xw-q , xw-q+1 , …, xw-1 с единственной точкой прогноза
xw* и погрешностью ew-q w = (xw - xw* ).
2. Вычисляется функционал оптимизации как сумма квадратов
всех полученных погрешностей:
S
wq
w
 e
2
ij
i 0
.
(3.39)
j i  q
3. Организуется процесс минимизации этого функционала методом поэлементных вариаций всех коэффициентов разностного уравнения с постоянным возвратом на п. 1, 2, 3.
Существенным недостатком рассмотренного подхода являются
большие вычислительные затраты, связанные с необходимостью громоздкого расчета нового значения функционала при каждой вариации
53
одного из коэффициентов. Упрощение задачи достигается при использовании в формуле (3.39) только одного значения i = 0 с соответствующим ухудшением конечного результата оптимизации.
В другом методе оптимизации коэффициентов f i для стационарного процесса может использоваться факт независимости характеристик этого процесса от положения статистической выборки на оси
времени. Рационально вычислять дисперсию достаточно большого
количества точек прогноза xw+1* , xw+2* , …, xw+n* , выполненного по
уравнению (2.3), относительно среднего значения всех исходных точек M:
1 n
(3.40)
Dn 
( M  xw* i ) 2
n i 1

и сравнивать ее с аналогичным показателем D для исходных точек.
Здесь при построении функционала оптимизации S необходимо
учитывать возможную потерю точности разностного уравнения (см.
(3.18)) при оптимизации:
m
1
2
S 
 k  k D  Dn ,
(3.41)
m  1 k 0

где k – весовой коэффициент.
Расчетная практика показывает высокую эффективность применения оптимизации полных и неполных разностных уравнений для
процессов любого типа. Особенно заметное повышение точности прогнозов достигается при сочетании этих методов и рассмотренных выше способов борьбы с шумами.
Рассмотрим пример прогнозирования процесса по формуле
(4.12), в котором на стационарную образующую функцию накладываются шумы большого уровня. Было использовано значение w = 72 ,
то есть 73 точки процесса.
После вычисления полного ряда порядка q = 37 производился его
перевод в полустационарный путем ограничения до единицы модулей
корней всех нарастающих компонент и пересчета коэффициентов ряда. Была получена относительная погрешность прогноза первых восьми точек образующей функции E8 = 0,0822. При этом такая же погрешность ряда по всем исходным точкам составила E = 0,0486. В том
же примере дополнительная оптимизация коэффициентов разностного
уравнения на стационарность прогноза первых двадцати точек с ко54
эффициентом k = 1 обеспечила получение погрешности E8 = 0,0687
при общей погрешности ряда E = 0,0469.
Для квазипериодических процессов вместо дисперсии в зоне прогноза рационально использовать гипотезу приближенного равенства
родственных точек для двух соседних периодов. При этом точки прогноза первого периода сравниваются с соответствующими точками
последнего периода исходных данных, точки прогноза второго периода
сравниваются с точками прогноза первого и т. д. Хороший результат
при оптимизации по формуле, аналогичной (3.41), достигается, если
учитывать погрешности точек четырех - пяти прогнозируемых периодов.
Еще один эффективный метод оптимизации коэффициентов разностного уравнения порядка q1 требует использования другого уравнения порядка q2, найденного для той же последовательности исходных точек. При этом желательно, чтобы второе уравнение изначально
приводило к результирующему ряду с достаточно хорошим прогнозом. Итерационная процедура строится следующим образом:
1. По исходным точкам x0, x1, …, xw находятся коэффициенты fi2
уравнения порядка q2 и по ним рекурсией определяется несколько
первоначальных точек прогноза xw+1 , xw+2, …, xw+m , подлежащих дальнейшему уточнению.
2. Для всех исходных точек с добавлением найденных точек прогноза определяются коэффициенты fi1 уравнения порядка q1 и по этим
коэффициентам рекурсией определяется такое же количество новых
точек прогноза.
3. Производится возврат к порядку q2 и находятся коэффициенты
fi2 по исходным точкам и новым точкам прогноза. Затем с помощью
этих коэффициентов опять определяется такое же количество точек
прогноза и снова производится переход к п. 2 и т. д.
Рассмотренная смена порядков уравнений может осуществляться
несколько раз до тех пор, пока прогноз по уравнению порядка q1 не
стабилизируется. Затем по найденному уравнению и исходным точкам
определяется первичный ряд, который подвергается дальнейшей обработке.
Эффект улучшения качества прогноза здесь связан не с разовой, а
с многократной нейтрализацией шумов исходных точек. При этом погрешности точек прогноза для уравнений различных порядков могут
иметь разные знаки и взаимно компенсироваться. Корни полученного
55
первичного ряда будут иметь признаки, характерные для уравнений
обоих порядков, то есть произойдет их своеобразное усреднение.
Проверка результативности данного алгоритма осуществлялась
на большом числе практически важных примеров. Установлено заметное улучшение точности прогноза и точности аппроксимации рядом последних исходных точек.
В заключение приведем описание быстрого и весьма эффективного метода оптимизации, основанного на специальном критерии определения верхней границы модулей корней характеристического многочлена разностного уравнения. В качестве такого критерия лучше
всего использовать квадратическую сумму коэффициентов уравнения:
Sq  1 
q

fi
2
.
(3.42)
i 1
Функционал оптимизации здесь лучше строить не как сумму, а
как произведение среднеквадратической погрешности разностного
уравнения (см. формулы (3.17), (3.18)) и величины, определенной по
соотношению (3.42) :
S  Sq
w q

2
i
.
(3.43)
i 0
Минимизация данного функционала приводит к существенно
лучшему прогнозу по коэффициентам разностного уравнения и по результирующему ряду для процессов, близких к стационарным. Особенно эффективно метод работает для величин порядка q, близких к
максимально возможному значению. При этом точность результирующего ряда также заметно повышается.
56
Глава 4. МЕТОДИКА ПРОГНОЗИРОВАНИЯ РЕАЛЬНЫХ
ПРОЦЕССОВ
4.1. Классификация процессов на основе корней
характеристических уравнений
Пусть имеется непрерывный или дискретный процесс x(k)= xk ,
заданный группой своих равноотстоящих точек x0 , x1 , x2 ,…, xw . Этот
процесс можно описать линейным разностным уравнением (2.3),
имеющим характеристическое уравнение (2.4). Решение уравнения
(2.3) в наиболее общей форме записывается в виде ряда (2.2).
Корни ci в ряде могут быть следующих типов:
1. Действительный одиночный корень c0 = 1 ,определяющий постоянную составляющую процесса a0 .
2. Кратные корни ci = 1 , дающие помимо постоянной составляющей степенные компоненты Тейлора ai k , ai k2,… .
3. Действительные некратные корни 0 < ci < 1, определяющие
простые затухающие экспоненты ai cik с действительными коэффициентами ai.
4. Кратные действительные корни 0 < ci < 1, дающие компоненты
ai kmi-1cik, затухающие при k   .
5. Действительные некратные корни ci > 1, соответствующие
простым нарастающим компонентам ai cik с действительными коэффициентами ai.
6. Кратные действительные корни ci > 1, которые определяют
нарастающие компоненты ai kmi-1 cik с действительными коэффициентами ai.
7. Некратные действительные корни –1 < ci < 0, определяющие
затухающие колебательные компоненты ai cik с действительными коэффициентами ai.
8. Кратные действительные корни –1 < ci < 0, соответствующие
затухающим колебательным компонентам ai kmi-1 cik при k   .
9. Некратные действительные корни ci < –1, определяющие
нарастающие колебательные компоненты ai cik.
10. Кратные действительные корни ci < –1 для колебательных
нарастающих компонент ai kmi-1 cik.
11. Некратный корень ci = –1 с чисто колебательной компонентой (–1)k ai .
57
12. Кратные корни ci = –1 с нарастающими колебательными
компонентами (–1)k ai kmi-1.
13. Некратные комплексно сопряженные пары корней
ci   i  j i , имеющие |ci | < 1. Определяют затухающие колебательные компоненты ai cik с комплексно сопряженными коэффициентами
ai   i  ji .
14. Кратные корни по типу п.13 с колебательными компонентами ai kmi-1cik, затухающими при k   .
15. Некратные комплексно сопряженные пары корней
ci   i  ji , имеющие |ci | > 1. Определяют нарастающие колебательные компоненты ai cik.
16. Кратные корни по типу п.15 с нарастающими компонентами
mi-1 k
ai k ci .
17. Некратные комплексно сопряженные пары корней
ci   i  ji , для которых |ci | = 1. Определяют колебательные компоненты постоянной амплитуды ai cik.
18. Кратные корни по типу п.17 с нарастающими компонентами
ai kmi-1cik.
С позиций изложенного разделения корней ci удобно классифицировать процессы, подходящие под описание рядом (2.2):
1. Нестационарные процессы. Могут содержать корни любого из
перечисленных типов 1, 2, ..., 18 при наличии хотя бы одной нарастающей компоненты типа 5, 6, 9, 10, 15, 16. Это самый общий вид процессов, который почти всегда получается при определении полного
или приближенного первичного ряда, проходящего через все исходные точки реального процесса с шумами.
2. Стационарные процессы. Содержат только некратные корни с
модулями |ci | = 1 (см. типы 1, 11, 17). Представляют собой тригонометрические ряды с некратными частотами [4]. Характерны для установившихся режимов в различных системах.
3. Полустационарные процессы. Имеют некратные корни ci с модулями |ci | = 1 (см. типы 1, 7, 17) и корни других типов с модулями |ci |
< 1 (см. типы 3, 4, 7, 8, 13, 14). Обычно это переходные процессы в
устойчивых системах. Часто встречаются на практике.
4. Квазистационарные процессы. Отличаются от стационарных
наличием корней с модулями |ci | = 1 небольшой кратности (см. типы
2, 12, 18). Характерны для систем с медленно меняющимися параметрами. По своей природе близки к стационарным процессам.
58
5. Квазиполустационарные процессы. Содержат те же корни, что
и полустационарные с дополнительными кратными корнями, имеющими модули |ci | = 1 (см. типы 2, 12, 18). Это процессы в системах с
медленно меняющимися параметрами. Они близки к полустационарным процессам.
6. Затухающие процессы, все корни которых имеют | ci | < 1. Содержат только затухающие компоненты различных типов. Редко
встречаются на практике.
При определении исходных точек реальных процессов имеют место разного вида погрешности. Аналогичный эффект производят неконтролируемые возмущающие воздействия. Поэтому даже в явно
стационарных по своей природе процессах в исходном ряде могут
присутствовать нестационарные компоненты. Эффективные методы,
снижающие влияние таких компонент рассмотрены в гл. 3 и п. 2.5.
4.2. Этапы получения и обработки первичного ряда
Разработанная автором методика прогнозирования сложных процессов предусматривает последовательное выполнение нескольких
этапов.
На первом этапе необходимо определить наиболее подходящие
для дальнейшей обработки варианты массивов исходных данных. При
этом последовательно уменьшается количество исходных точек путем
отбрасывания начальных значений процесса (см. п. 3. 3). Анализируются модули корней | ci | и результирующая точность аппроксимации.
Реальные процессы редко имеют взрывной, то есть быстро нарастающий или затухающий характер. Поэтому модули корней | ci | не должны быть много больше или меньше единицы. Погрешность аппроксимации ряда E определяется его типом и точностью и устойчивостью
используемых методов и алгоритмов расчета. При получении полного
первичного ряда эта точность играет решающую роль. В случае низкой точности существенно искажается информация о реальных значениях некоторых компонент ряда. Автором установлено, что достаточно получить относительное отклонение полного первичного ряда от
исходных точек E не хуже 10-9 ÷10-10. Для неполного ряда всегда будем иметь гораздо более низкую точность.
При необходимости процедура получения первичного ряда может
включать в себя оптимизацию коэффициентов разностного уравнения.
59
Помимо контроля модулей корней, на первом этапе может применяться пробное прогнозирование нескольких (обычно не менее четырех-восьми) последних точек. По этим результатам осуществляется
дополнительный отбор вариантов. Остаются только те, которые имеют значения прогноза, максимально близкие к пробным точкам.
В случае недостаточного количества исходных данных метод исключения начальных точек заменяется методом постепенного снижения порядка q разностного уравнения (см. п. 3. 4). Получаются варианты порядков q1, q2, …, qn при неизменном количестве исходных точек w+1. Отбор вариантов производится по тем же критериям, но точность аппроксимации уже не принимается во внимание.
На первом этапе может производится также анализ всех компонент ряда на принадлежность к шумовой составляющей процесса (см.
п. 3.2).
Результатом выполнения первого этапа будут количества членов
ряда q1 , q2, …, qm и точек w1+1, w2+1, …, wm+1 , удовлетворяющие изложенным критериям.
На втором этапе определяются возможные типы процесса в соответствии с п. 4.1. Стационарный, полустационарный и т. д. процессы организуются из первичного ряда путем постепенного ограничения
модулей корней при сохранении их количества и фаз (частот). На
каждом уровне ограничения заново вычисляются коэффициенты ряда
ai и может производится оптимизация ряда (см. п. 3. 5). Постепенное
ограничение модулей корней необходимо для того, чтобы при оптимизации не выйти из области глобального минимума функционала S, в
которой находился ряд, найденный на первом этапе. Однако требования плавного снижения модулей корней и оптимизации ряда не являются обязательными.
В итоге, после второго этапа выявляется один или несколько типов ряда, соответствующих данному процессу и имеющих хорошую
точность пробного прогноза. При окончательном выборе одного из
типов должны учитываться соображения по поводу физического характера процесса.
На третьем этапе определяется наилучшее количество компонент ряда и оптимальная точность аппроксимации исходной числовой
последовательности. Эта точность прямо связана с уровнем случайных погрешностей задания точек или со степенью влияния неконтролируемых вынуждающих воздействий.
60
При каждом сокращении длины ряда отбрасываются 1–2 члена,
обладающие признаками шумовых компонент, и могут определяться
заново коэффициенты ai оставшихся компонент. Затем, если необходимо, производится оптимизация всех элементов ряда. При достижении наилучшей точности пробного прогноза или стабилизации этой
точности, процесс сокращения длины ряда заканчивается и фиксируются полученные погрешности аппроксимации всего ряда E, последних исходных точек Eа и пробного прогноза Eп. Последние две величины слабо зависят от числа членов ряда, если в нем остаются все существенные компоненты процесса. Поэтому, в случае заметного
ухудшения значения Eа или Eп при очередном усечении ряда, можно
делать вывод о том, что данное сокращение ряда нецелесообразно, так
как затрагивает его информационные компоненты.
В результате проведения третьего этапа окончательно выбирается
количество членов ряда и, что особенно важно, погрешность его отклонения от исходных точек E. Критерием выбора может также служить соотношение погрешностей Eа и Eп. При этом величина Eп не
должна, как правило, быть меньше значения Eа .
Следует отметить, что при выполнении третьего этапа может получиться несколько различных оптимальных сочетаний точности
пробного прогноза, точности аппроксимации исходной числовой последовательности и количества членов ряда. При сомнениях в выборе
окончательного варианта следует использовать их все на четвертом
этапе.
На четвертом этапе полученные результаты применяются для
реального прогнозирования. При этом все пробные точки включаются
в исходную числовую последовательность. Затем по формулам (3.26)
или (3.31) пересчитываются коэффициенты ai ряда и производится,
если необходимо, окончательная его оптимизация. Точность этой оптимизации должна соответствовать значениям, полученным на третьем этапе.
Все выбранные на третьем этапе варианты рядов используются
для получения соответствующих вариантов прогноза. Результаты
каждого расчета сравниваются между собой. В итоге должны быть
выбраны наиболее близкие по значениям, из которых вычисляется
окончательное среднее значение прогноза. Варианты с аномальными
значениями прогноза отбрасываются как недостоверные.
Оценка точности конечного результата для каждого конкретного
расчета основана на величине среднего отклонения конечного ряда от
последних исходных точек Eа. Можно использовать также найденную
61
ранее точность пробного прогноза Eп. Эти данные дают нижнюю границу точности. Максимальные отклонения ряда от исходных точек,
родственных прогнозируемым, могут служить ориентиром верхней
границы точности. Однако для процессов с неконтролируемыми вынуждающими воздействиями, точность результата может быть существенно ниже ввиду опасности появления таких воздействий в зоне
прогноза.
В заключение отметим, что по разным причинам некоторые этапы изложенной методики могут исключаться из рассмотрения.
Например, тип процесса может быть достоверно установлен из физических соображений.
Иногда малое количество исходных точек не позволяет реализовать первый этап методики. В этом случае в одной числовой последовательности можно использовать дополнительные данные о родственных процессах. Например, при прогнозировании среднемесячной температуры за январь, в одном процессе можно использовать измерения
температуры за январь, апрель, июль, ноябрь, равноотстоящие по времени. Дополнительная информация, содержащаяся в родственных
процессах, позволяет существенно улучшить конечный результат
вследствие квазипериодичности процесса (см. также п. 6.5).
Трудоемкий процесс плавного ограничения модулей корней ci на
втором этапе можно иногда заменить их резкой фиксацией на необходимом уровне. Однако пересчет коэффициентов ряда ai здесь всегда
остается обязательным.
Метод пробных точек может вообще не использоваться при прогнозировании некоторых процессов, хорошо изученных в более ранних опытах расчета и т. д.
4.3. Особенности прогнозирования стационарных процессов
Методика, изложенная в предыдущем параграфе, позволяет вести
краткосрочное и долгосрочное прогнозирование многих сложных
процессов (см. гл. 5). Однако существует обширный класс природных
явлений, точность прогнозирования которых можно повысить в силу
присущих им некоторых особенностей. Это стационарные и полустационарные процессы, описываемые в области прогноза гармоническими компонентами кратных и некратных частот и постоянных амплитуд.
Проблема долгосрочного прогнозирования стационарных процессов состоит в том, что при неизбежных шумах, гармонические компо62
ненты ряда с модулями | ci | = 1 получаются нарастающими (| ci | > 1)
или затухающими (| ci | < 1). В дальней области прогнозирования или
реконструкции влияние таких составляющих может неоправданно
усиливаться или ослабляться, что снижает точность результата.
Ряд минимального объема для стационарных процессов имеет
следующий простой вид:
xn 
q
a e
i
jni
,
(4.1)
i 1
где φi – частоты компонент, q _ реальное число членов ряда, не зависящее от количества исходных точек w+1, если оно достаточно велико.
Все частоты i ряда (4.1) делятся на пары равных по величине и
противоположных по знаку величин от 0 до   , за исключением частоты    , соответствующей корню характеристического уравнения с = –1. Чаще всего встречается частота   0 , определяющая постоянную составляющую процесса, как фаза корня с = 1.
Замечательным свойством коэффициентов fi разностного и характеристического уравнений для стационарных процессов является
симметрия этих коэффициентов. Запишем эти уравнения:
xqn  f q xq1n    f1 xn  0 ,
(4.2)
где n = 0, 1, …, m = w – q, … .
f (c)  c q  f q c q1    f 2 c  f1  0 .
(4.3)
Если корень c = 1 в уравнении (4.3) отсутствует, получим симметрию коэффициентов fi :
– f1 = 1, – f2 = – fq, … .
(4.4)
В противном случае получаем антисимметрию этих коэффициентов:
– f1 = – 1, – f2 = fq, … ,
(4.5)
Данные соотношения подтверждаются с помощью формул Вьета [23].
63
К сожалению, условия (4.4), (4.5) являются необходимыми, но не
достаточными условиями стационарности процесса (необходимые и
достаточные условия см. в приложении 1). Можно показать, что таким
же свойством будут обладать уравнения, среди корней которых встречаются кратные с единичными модулями или взаимно обратные пары
ci, cj, для которых ci = 1 / cj. Появление корней указанных типов свидетельствует о нестационарности либо исходного непрерывного процесса либо его представления конечным набором точек. Количество таких корней может служить мерой этой нестационарности. Тем не менее, условия (4.4) и (4.5) можно использовать для определения коэффициентов fi методами, изложенными в п. п. 3.3, 3.4.
Независимо от четного или нечетного количества исходных точек, можно составить четыре варианта уравнений для расчета искомых коэффициентов:
1. Порядок q нечетный и в уравнении присутствует корень ci = 1:
f 2 ( xn 1  xnq1 )    f ( q1) / 2 ( xn ( q1) / 2  xn ( q1) / 2 )  xnq  xn , (4.6)
2. Порядок q нечетный и в уравнении присутствует корень ci = –1:
f 2 ( xn 1  xnq1 )    f ( q1) / 2 ( xn ( q1) / 2  xn ( q1) / 2 )  xnq  xn , (4.7)
3. Порядок q четный и в уравнении отсутствуют корни ci = 1, –1:
f 2 ( xn 1  xn q 1 )    f q / 2 ( xn ( q 2) / 2  xn ( q  2) / 2 ) 
 f ( q  2) / 2 xn  q / 2  xn q  xn ,
(4.8)
4. Порядок q четный и в уравнении присутствуют корни ci = 1, –1:
f 2 ( xn 1  xnq1 )    f q / 2 ( xn ( q2) / 2  xn ( q2) / 2 )  xnq  xn . (4.9)
В последнем варианте, из-за присутствия корня ci = 1, центральный коэффициент f(q+2)/2 будет равен нулю. Это можно доказать подстановкой данного корня в уравнение (4.2).
Найденные формулы позволяют в каждом конкретном случае вычислить необходимые значения порядка q и, меняя величину n , по64
строить системы уравнений для определения всех неизвестных коэффициентов fi .
Для четного количества исходных точек получим следующие
значения максимального порядка q в соответствии с вариантами приведенных выше четырех формул и требованием полноты систем уравнений:
q1 = (4p+1) / 3 , q2 = (4p+1) / 3 , q3 = 4p / 3 , q4 = (4p+2) / 3. (4.10)
Для нечетного количества исходных точек соответственно
найдем:
q1 = (4p+3) / 3 , q2 = (4p+3) / 3 , q3 = (4p +2) / 3 , q4 = (4p+4) / 3. (4.11)
Нужный номер варианта определяется из того условия, какое значение порядка q окажется целым при данной величине w . Для вариантов 1 и 2 порядки всегда будут одинаковы и возможно существование
любого из этих вариантов.
Составление систем уравнений для неполных стационарных рядов должно производиться по тем же формулам (4.6), …, (4.9) после
выбора необходимого порядка q . При этом необходимо использовать
все исходные точки.
Определение коэффициентов ряда ai лучше всего производить по
формулам (3.31). В итоге, при отсутствии аномальных взаимно обратных или кратных корней, получается ряд, имеющий достаточно малое
среднеквадратическое отклонение от исходных точек процесса с шумами. Влияние этих шумов на точность прогноза в данном случае будет меньше, чем при общем подходе к определению первичного ряда
(см. гл.3). Дальнейшая обработка ряда производится обычным образом по методике предыдущего параграфа и позволяет дополнительно
улучшить конечный результат.
Рассмотрим пример 4.1:
Зададим функцию стационарного процесса с шумами:
xk  1  cos(0,53 Пk  0,1)  cos(0,31Пk  0,15) 
 sin( 0,39 Пk  0,2)  0,2RND  0,5 .
65
(4.12)
Если не вводить шумы, идеальный ряд для этой функции будет
иметь следующие компоненты:
а0 = 1,0000
а1,2 = –0,4944  0,747210–1, с1,2 = 0,5621  j0,8271,
а3,4 = –0,993310–1  j0,4900, с3,4 = 0,3387  j0,9409,
а5,6 = –0,4975  j0,499210–1, с5,6 = –0,941110–1  j0,9956.
Будем решать задачу для процесса с шумами обычным методом
при исходном числе членов ряда q = 13 и w = 24 . Получим полный
ряд типа (2.2):
а0 = 0,1014101
а1,2 = –0,5144  j0,2836, с1,2 = 0,3449  j0,9811,
а3,4 = –0,4624  j0,598210–1, с3,4 = –0,1107  j0,9959,
а5,6 = –0,3379  j0,1993, с5,6 = 0,5916  j0,8106,
а7,8 = 0,163410–1  j0,404310–2, с7,8 = 0,8951  j0,4963,
а9,10 = –0,122810–1  j0,131910–1, с9,10 = 0,8982  j0,4298,
а11,12 = –0,3008  0,622210–1, с11,12 = –0,1786  j0,6040.
Результаты расчета представлены на рис. 4.1.
После усечения ряда до семи наиболее существенных компонент
и последующей его оптимизации с дополнительным условием снижения всех модулей корней ci, больших единицы, получены результаты:
а0 = 0,9965
а1,2 = –0,1112  0,4361, с1,2 = 0,3355  j0,9513,
а3,4 = –0,5156  0,494110–1, с3,4 = –0,944510–1  j0,9917,
а5,6 = –0,4551  0,1308, с5,6 = 0,5720  j0,8198.
Итоги расчета представлены на рис. 4.2. При этом определены
следующие значения ближнего и дальнего прогнозов с соответствующими погрешностями:
х25 = 0,806510–1 Δх25 = –0,860010–1
х26 = –0,3187 Δх26 = –0,2174
х35 = 0,9075 Δх35 = 0,3322
х36 = 0,2857101 Δх36 = –0,1983.
При переходе к тригонометрическому ряду (4.1) с последующим
его усечением и оптимизацией найдены элементы ряда:
а0 = 0,9958
а1,2 = –0,1290  j0,4969, с1,2 = 0,3354  j0,9421,
а3,4 = –0,4900  j 0,654110–1, с3,4 = –0,927110–1  j0,9957,
а5,6 = –0,4866  j 0,707410–1, с5,6 = 0,5632  j0,8263.
66
Результаты расчета представлены на рис. 4.3. Получены следующие значения аналогичного прогноза:
х25 = 0,206610–1 Δх25 = –0,260110–1
х26 = –0,4804 Δх26 = –0,556810–1
х35 = 0,1180101 Δх35 = 0,598310–1
х36 = 0,2744101 Δх36 = –0,0844.
Рис. 4.1.
Рис. 4.2.
67
Рис. 4.3.
Из приведенных графиков и результатов прогнозирования следует, что переход к тригонометрическому ряду (4.1) позволил резко
уменьшить погрешности прогнозирования ∆xi как близких, так и
дальних точек. Соответственно уменьшились отклонения найденных
компонент ряда от их идеальных значений.
В заключение отметим, что присутствие шумов часто приводит к
тому, что большинство явно стационарных процессов становится
ближе к полустационарным. Поэтому для таких процессов можно выбирать неполный ряд соответствующего типа. Получение этого ряда
производится как из первичного нестационарного (см. гл. 3), так и из
первичного почти стационарного (см. данный п. п.), иногда содержащего небольшое число взаимнообратных корней. И в том и в другом
случаях производится ограничение модулей корней ci по условиям |
ci | <= 1 при сохранении их фаз. Далее, как правило, необходима оптимизация всех компонент полученного полустационарного ряда (см.
п. 3.5). В процессе этой оптимизации происходит естественное выделение необходимого количества стационарных или почти стационарных компонент, формирующих значения точек прогноза, а ненужные
шумовые компоненты становятся быстро затухающими и не оказывают заметного влияния на конечный результат.
68
4.4. Особенности прогнозирования революционных
процессов
Все изложенное относится к описанию и прогнозированию достаточно плавных, т. е. эволюционных процессов. При этом в течение
всего хода процесса в системе не происходит вызванных случайными
внешними причинами значительных и резких изменений текущих состояний, входных воздействий и конфигурации самой системы.
Революционный скачок в ходе процесса приводит к дополнительным трудностям решения задачи прогнозирования, так как предвидеть
момент появления скачка часто не представляется возможным.
Если этот скачок можно рассматривать как принудительный
сдвиг текущих состояний отдельных элементов системы или как следствие изменения уровня входного воздействия, прогнозирование хода
процесса после скачка упрощается. Указанные изменения не влияют
на величину корней ci построенного линейного эквивалента системы
[35]. Поэтому значения ci могут быть определены до начала скачка.
Тогда для вычисления коэффициентов ai можно использовать меньшее количество точек процесса, взятых после возникновения скачка.
Пусть на дискретном множестве точек процесса xk ( k = 0, 1, …, w)
момент возникновения скачка будет иметь номер p . Тогда для вычисления коэффициентов ai ряда (2.2) можно использовать следующие за
скачком исходные точки:
 c1p 1
 p2
c1

 w
 c1
c2p 1  cqp 1 

c2p  2  cqp  2 
  

c2w  cqw 
 a1   x p 1 
a  

 2    x p2  .
   
  

aq   xw 
(4.13)
Необходимо только, чтобы число строк прямоугольной матрицы
было больше числа столбцов.
В результирующем ряде отсчет времени будет начинаться с нулевого момента, однако, качество аппроксимации процесса для k <= p
может быть неудовлетворительным.
Таким образом, при известных заранее корнях ci – полное определение аппроксимирующего ряда требует знания всего w - p точек процесса после начала скачка.
69
Если же скачок процесса в системе вызван изменением конфигурации самой системы, после его возникновения изменятся и значения
корней ci . В данном случае приходится начинать все вычисления заново, на что потребуется знание достаточно большого количества точек процесса после скачка.
Практика показывает, что скачки любого типа часто можно рассматривать как дополнительные шумы. Это позволяет использовать в
расчетах все известные точки процесса и обычный подход к решению
задачи. Если скачок слабо влияет на следующие за ним точки, соответствующие аномальные значения всегда можно скорректировать по
критерию улучшения пробного прогноза.
4.5. Дополнительные меры повышения точности прогноза
Не следует считать, что реализация всех основных этапов получения результирующего ряда даст наилучший прогноз в рамках использования комбинированных рядов. Иногда некоторые этапы изложенной методики невозможно реализовать на практике. В первую
очередь это касается определения и исключения шумовых компонент
при недостаточном количестве исходных точек или большом уровне
шумов (неконтролируемых воздействий). В этом случае возможно
увеличение точности прогноза с помощью дополнительной итерационной процедуры:
1. Для исходной числовой последовательности х0, х1, …, хw проводятся все необходимые этапы прогнозирования и определяется результирующий ряд, содержащий q членов. Через этот ряд вычисляется
некоторое количество точек прогноза p, значения которых подлежат
дальнейшему уточнению. Найденные точки хw+1, хw+2, …, хw+ p включаются в исходную числовую последовательность наряду с основными и общее число точек увеличивается до величины w + р + 1. При
этом результирующий ряд будет приближенно проходить через исходные точки и точно – через дополнительные точки.
2. Выбирается прежний порядок q разностного уравнения и те же
расчетные соотношения для получения корней нового ряда того же
типа по всем точкам х0, х1, …, хw+р. При этом коэффициенты ряда
находятся только по исходным точкам. Теперь он будет приближенно
проходить через все указанные точки. При необходимости можно
произвести дополнительную обработку нового ряда по той же методике, что использовалась в п. 1 для результирующего ряда.
70
3. С помощью нового ряда находятся уточненные значения того
же количества точек прогноза p. Они опять включаются в общую числовую последовательность.
4. Снова выполняются п. 2 и п. 3 и т. д. до тех пор, пока прогноз,
модули корней или погрешность аппроксимации не перестанут существенно меняться. В результате получается ряд, обычно дающий лучший прогноз выбранных p точек, чем первоначальный вариант.
Описанный итерационный процесс уточнения прогноза напоминает метод простых итераций для решения функциональных уравнений [21]. Он может применяться не только к результирующему, но и к
первичному ряду с целью его улучшения. Установлено, что это улучшение заключается в снижении влияния шумов на информационные
компоненты ряда .
Степень увеличения точности прогноза зависит от нескольких
причин. Основными из них являются: количество дополнительных
точек p, число членов рядов q и тип ряда. Влияют также дополнительные способы обработки. Об эффективности изложенной процедуры
удобно судить по качеству пробного прогноза.
Следует также отметить, что число реально прогнозируемых точек не может превышать количества дополнительных точек p, используемых в данном методе.
Рассмотрим пример 4.2
Исходные точки определялись через стационарную функцию с
дополнительными шумами по формуле (4.12). Неполный первичный
ряд рассчитывался для значения q = 35 при исходной последовательности x0, x1, …, x72 .
В первом варианте расчета проводился простой перевод первичного ряда в полустационарный тип путем ограничения модулей корней с последующим пересчетом коэффициентов. Шумовые компоненты ряда не исключались. Было получено среднее отклонение первых 8
точек прогноза от образующей функции Е 8 = 0,105.
После применения метода, изложенного в данном параграфе, для
того же типа и числа членов ряда при значении p = 8 это отклонение
уменьшилось до величины Е8 = 0,0717 за 10 итераций. Дополнительная обработка ряда не проводилась.
Во втором варианте итерационное улучшение при той же величине p производилось для первичного ряда. После 10 итераций максимальное значение модулей корней снизилось с 1,0349 до 1,0031. Да71
лее опять использовался перевод ряда в полустационарный. Исключение шумовых компонент также не проводилось. Была получена величина отклонения Е8 = 0,0614.
В третьем варианте для сравнения осуществлялось исключение из
первичного ряда всех шумовых компонент с оптимизацией оставшихся информационных членов по стационарному типу. Было получено
значение Е8 = 0,0330.
Таким образом, наиболее эффективным оказался подход, основанный на получении результирующего ряда, идентичного исходной
формуле процесса, и осуществленный в полном варианте. Тем не менее, если по каким-либо причинам невозможно выявить и исключить
шумовые компоненты, методика данного параграфа может обеспечить
заметное улучшение точности прогноза.
Еще одним способом повышения точности прогноза стационарных процессов является небольшое целенаправленное изменение исходной числовой последовательности. При этом надо стремиться получить максимально возможное приближение к единице модулей корней ряда. Для уменьшения времени оптимизации рационально использовать метод небольших случайных вариаций одновременно всех
точек. По мере накопления удачных изменений необходимо вводить
ограничения на максимально допустимые отклонения новых значений
точек от исходной последовательности.
В результате применения изложенной процедуры получается новый ряд, приближенно проходящий через исходные точки. Этот ряд
имеет существенно меньшую долю нестационарных составляющих и,
в то же время, обеспечивает достаточно высокую точность аппроксимации. Дальнейшая обработка этого ряда производится обычными
методами. Отклонения модифицированных точек от исходных можно
использовать также для оценки уровня шумов и неконтролируемых
воздействий первоначальной числовой последовательности.
Эффективность данного метода примерно соответствует изложенному в п. 3.5 методу оптимизации ряда с поэтапным ограничением
модулей коней ci. Однако время счета и конечный результат могут получиться различными для каждого конкретного случая.
Целенаправленные изменения можно применять не только для
исходных точек, но и для точек прогноза. Если найти предварительные значения нескольких точек прогноза и включить их в общую числовую последовательность, то по этой последовательности можно построить новый расширенный ряд. Затем производятся вариации точек
72
прогноза по критерию приближения ряда к выбранному типу, обычно
полустационарному или стационарному. Далее этот ряд окончательно
приводится к этому типу либо по всем, либо по первоначальным исходным точкам путем соответствующего ограничения модулей его
корней и вычисления новых коэффициентов. Для получения результирующего прогноза оптимизации ряда не требуется.
Дополнительно повысить точность прогноза можно с помощью
учета т. н. опорных точек. Эти точки должны располагаться в области
прогноза достаточно близко к прогнозируемым точкам. Пределы возможных значений опорных точек могут быть известны заранее из каких-либо соображений. Тогда при оптимизации ряда, одновременно с
отклонениями от исходных точек, можно учитывать и его отклонения
от опорных точек. Например, при прогнозировании осадков, в дальней
области могут получаться аномальные отрицательные значения некоторых точек. Если эти значения принять по крайней мере нулевыми и
считать их опорными, можно существенно повысить точность основного прогноза. Здесь можно провести аналогию с повышением жесткости механических конструкций при создании для них дополнительных точек опоры.
Отдельной разновидностью опорных точек можно считать т. н.
узловые точки. Их замечательным свойством является то, что, независимо от действия различных возмущающих факторов, процесс будет
всегда точно проходить через них. Например, при расчете термо-э.д.с.
термопар нулевая разность температур спаев всегда даст нулевое значение этой э.д.с. При оптимизации ряда, учет отклонений от узловых
точек может производиться с большими весовыми коэффициентами.
Достаточно эффективным и простым способом повышения точности прогноза является поэтапное исключение некоторых компонент
ряда. На каждом этапе удаляется одна компонента с малым весом
(особое внимание следует обращать на слабо затухающие или нарастающие компоненты стационарных и полустационарных процессов).
Затем проводится оптимизация усеченного ряда. Если точность пробного прогноза существенно улучшилась, новый ряд запоминается на
месте исходного и можно приступать к исключению следующей компоненты. В противном случае ряд восстанавливается до исходного,
производится удаление очередной компоненты и т. д.
В заключение отметим важный факт, способствующий повышению точности конечного результата. В области прогноза можно выделить т. н. устойчивые и неустойчивые точки. Значения первых мало
73
зависят от выбранной методики вычислений, а значения вторых могут
сильно меняться при незначительных вариациях отдельных этапов
расчетов. Точность и достоверность прогноза устойчивых точек будет
существенно выше, чем неустойчивых. Изменением числа исходных
точек и методов обработки первичного ряда можно добиться перехода
некоторых неустойчивых точек в категорию более устойчивых и тем
самым повысить точность их расчета. Оценка степени устойчивости
отдельных точек прогноза и, следовательно, качества их определения,
возможна на основе результатов, полученных в п. 3.2, 3.3 .
4.6. Расчет в переменном масштабе времени
Точность экстраполяции детерминированного процесса линейным рядом определяется степенью нелинейности этого процесса. Эту
точность можно оценить по изменениям пробного прогноза в зависимости от числа членов ряда (см. п. 2.3). Обычно получение приемлемого результата для резко нелинейного процесса требует учета большого количества его равноотстоящих точек.
Повышение точности прогноза может быть достигнуто с помощью последовательности взятых по определенному закону неравноотстоящих точек исходного процесса с последующим ее переводом в
последовательность равноотстоящих точек. Прогноз, полученный для
сформированного таким образом нового процесса, будет иметь лучшую точность, если степень нелинейности этого процесса меньше,
чем исходного.
Рассмотрим пример 4.3.
Пусть исходный процесс на интервале 0 – t1 описывается функцией:
x(t )  exp(at) sin(  t 2 ) .
(4.14)
Присутствие множителя t2 под знаком sin обеспечивает непрерывное увеличение частоты колебаний. Это сильно ухудшает точность прогноза даже близко отстоящих от момента t1 значений процесса.
Для перехода к более линейному процессу x*(t*) введем новое
нелинейное время t* = t2/ t1 . Тогда новый процесс запишется в виде:
74
x * (t*)  exp( a t1t * ) sin(  t1t*)  exp( a * t * ) sin(  * t*) . (4.15)
Частота колебаний этого процесса не меняется с течением времени t*. Это должно благоприятно сказаться на точности прогноза.
Зададим значения a=0,14, t 1=16,    / 79 . Это означает, что
для процесса x(t) известны 17 исходных равноотстоящих точек
x(0), x(1), …, x(16), а степень полного разностного уравнения составляет q = 9.
После получения первичного ряда для процесса x(t) погрешности прогноза точек x17 = –0,813510 -1, x 18 = 0,251710 -1 составили:
e17 = 0,65710 –2, e18 = –0,86310 –1. Это результат низкого качества.
Для построения процесса x*(t*) будем использовать моменты
времени t = 0, t1 , 2t1 , …, 16t1 . Это будет соответствовать значениям t* = 0, 1, 2 …, 16. После определения соответствующих точек
процесса x*(t*) и построения по ним полного первичного ряда определяем погрешности тех же точек для моментов t* = 172 / 16, 182 / 16:
e17 = –0,15810 –5, e18 = –0,37610 –4. Это на 3–4 порядка лучше, чем в
предыдущем случае.
Таким образом, переход от переменной частоты первичного процесса x(t) к постоянной частоте нового процесса x*(t*) резко улучшил
точность прогноза. Если не использовать переменный масштаб времени, получение сопоставимых погрешностей прогноза указанных значений процесса x(t) потребует использования в два раза большего количества исходных точек на том же временном интервале. При этом
можно получить погрешности: e17 = –0,15110 –5, e18 = 0,28610 –4.
На практике для применения изложенного метода приходится
решать два основных вопроса:
1. Определение первичного ряда для процесса x*(t*) , если известны только равноотстоящие точки процесса x(t).
2. Выбор связи t*= f(t) между временами t и t* в каждом конкретном случае.
Для решения первого вопроса можно действовать следующим образом:
1. По исходным точкам x0, x1, … , xw строится первичный ряд процесса x(t).
2. По выбранной зависимости t*= f(t) находятся моменты t0, t1, …,
tw, соответствующие значениям t*=0, 1, …, w.
3. С помощью ряда для процесса x(t) определяются значения точек x(t0), x(t1), … , x(tw) и по ним строится приближенный ряд для процесса x*(t*).
75
4. Проводится оптимизация полученного ряда по точкам x0, x1, … , x2p,
которые для процесса x*(t*) уже не будут равноотстоящими. В результате ряд для процесса x*(t*) будет достаточно точно проходить через
все исходные точки.
Второй вопрос является более сложным. Прежде всего, для удобства расчетов значения t и t* должны совпадать в начале и в конце
временного интервала задания исходного процесса x(t) . Если этот
процесс имеет колебательный характер с переменной частотой, при
выборе функции t*= f(t) надо стремиться получить неизменную частоту процесса x*(t*) (см. пример). При этом, для исключения потерь информации, на одном периоде колебаний надо иметь не менее 3–4 исходных точек. При резко нарастающем (затухающем) процессе x(t) ,
значения отдельных рядом стоящих исходных точек могут сильно
различаться. Функция t*= f(t) должна сводить эти различия к минимуму. Например, для нарастающего процесса интервал между моментами t0, t1, …, tw, которые будут соответствовать значениям t*=0, 1, …, w ,
должен постепенно сокращаться, а для затухающего процесса – увеличиваться. Практика показывает, что при выборе зависимости t*= f(t)
хорошо использовать сочетания степенных и показательных функций.
Можно также использовать прогрессии различного вида (арифметическую, геометрическую и их сочетания.).
4.7. Ряды для неравноотстоящих точек
Существенно неравноотстоящие исходные точки, или иначе, нерегулярные исходные данные, довольно часто встречаются в задачах
прогнозирования. Таковы например результаты астрономических
наблюдений, периодичность которых зависит от погодных условий.
Это могут быть так же данные различных физических экспериментов.
Сюда можно отнести задачи с утраченными или неизвестными отдельными группами точек и те случаи, когда достоверность значений
некоторых точек находится под сомнением.
Нерегулярность исходных данных считается существенной, когда
задачу не удается решить простыми методами (п. 3.1). В общем виде
постановка задачи может быть следующая: по заданным неравноотстоящим точкам x0*(0), x1*(t1), x2*(t2), …, xw*(w) найти такое же количество равноотстоящих x0, x1, …, xw, дающих комбинированный ряд
нужного типа, проходящий возможно близко от исходных точек.
Здесь некоторое упрощение достигается выбором одинаковых вре76
менных границ для точечных последовательностей. При этом
x0*(0)= x0, xw*(w)= xw.
Ввиду сложности, решение такой задачи может производиться
только итерационными методами. Предлагается следующая очередность операций:
1. Для каждой равноотстоящей точки xi определяем номер j ближайшей по врелибо интерполяционным методом (см. например п. 3.1) находится первичная последовательность значений равноотстоящих точек xi.
В простейшем случае интерполяцию можно не делать, положив xi = xi*.
3. Для этих точек определяется ряд нужного типа и все его значения yi, yj* соответственно в равноотстоящих точках и в ближайших
неравноотстоящих точках. При этом корни ряда cl находятся по точкам xi , а коэффициенты ряда al – по всем точкам xi*.
4. Определяются скорректированные значения равноотстоящих
точек xi = yi + 0.5 (xj* - yj*).
5. Производится переход к п. 3 и т. д., пока отклонение ряда от
всех исходных точек xi* не окажется минимальным. Тем самым находится искомый ряд и эквивалентные точкам xi* равноотстоящие точки xi.
Расчеты показывают высокую сходимость и устойчивость приведенного метода. С помощью него можно находить полные и приближенные ряды любых типов с хорошими экстраполирующими возможностями. При этом характер нерегулярности исходных точек не оказывает серьезного влияния на результат. Сам метод реализуется в
полностью автоматическом режиме.
4.8. Конверсия значений исходных точек
Термин “конверсия” означает нелинейное преобразование численного значения какой-либо величины. Для исходных точек конверсия вводится с целью увеличения точности прогноза явно нелинейных
процессов и линейных процессов с большими шумами. При этом надо
стремиться преобразовать процесс к более линейному виду, то есть
уменьшить долю его нелинейной составляющей и снизить влияние
шумов. Соответственно для нового процесса можно получить более
точное его описание комбинированным рядом конечной длинны.
Функции прямой конверсии y = f(x) и обратной конверсии x = g(y)
должны удовлетворять требованиям гладкости и взаимной однозначности перехода для любых действительных чисел x><=0, y><=0. Ре77
ализация этих функций на ЭВМ должна быть всегда выполнимой,
простой и максимально быстрой. В работе исследовались возможности степенной конверсии исходных точек:
yk = sgn(a + xk) abs(a + xk) ^ s, xk = sgn(yk) abs(yk) ^ (1 / s) – a, (4.16)
где a – дополнительная постоянная составляющая,
s – положительный показатель возведения в степень,
sgn – функция знака числа,
abs – функция вычисления модуля.
В приведенных формулах любая степень положительного числа
считается положительной, как это принято во всех языках программирования.
Выбор данного типа конверсии объясняется тем, что для
большинства реальных нелинейных процессов зависимости коэффициентов разностного уравнения от значений исходных точек могут быть представлены степенными (полиномиальными)
функциями. Конечно, реально определить такие зависимости затруднительно, но правильный выбор показателя s в формуле (4.16) методами пробного прогнозирования может заметно снизить степень нелинейности конвертированного процесса. Во всяком случае, появление новых степеней свободы при выборе окончательного варианта
ряда, всегда поможет улучшить точность прогноза.
На заключительном этапе расчета точки прогноза по результирующему ряду для нового процесса должны подвергаться обратной конверсии. В итоге получается описание исходного процесса в нестандартном виде обратной конверсии от найденного комбинированного
ряда.
Рассмотрим пример улучшения точности прогноза линейного
процесса с дополнительными шумами (см. формулу (4.12)). За основу
взят первый расчет прогноза этого процесса обычным методом из параграфа 4.5. (см. пример 4.2), где неполный первичный ряд определялся
для порядка q = 35 при исходной последовательности x0, x1, …, x72. Тогда
средняя погрешность первых восьми точек прогноза относительно
образующей функции составила Е8 = 0.105. Поиск оптимальных параметров конверсии дал следующие значения: a = –0,6 , s = 1,18. При
этом погрешность уменьшилась до величины Е8 = 0,0462. Если использовать значение постоянной составляющей a = 0 , оптимальное
78
значение степени составит s = 1,09 при заметно большей погрешности
Е8 = 0,0816.
Пример расчета прогноза нелинейного процесса можно получить
из любого положительно определенного линейного процесса после
возведения всех его исходных точек в произвольную дробную степень
u > 0. Очевидно, что при задании параметров конверсии a = 0, s = 1/u
линейность процесса полностью восстановится, что обеспечит
наилучший прогноз.
Главным недостатком рассмотренного метода является высокая
трудоемкость поиска оптимального сочетания параметров конверсии
и необходимость обязательного применения методов пробного прогнозирования.
79
Глава 5. ПРАКТИКА ПРИМЕНЕНИЯ МЕТОДА
5.1. Прогнозирование активности Солнца
В качестве исходных данных использованы среднемесячные значения электромагнитного излучения Солнца на частоте 2800 МГц за
период от начала подобных измерений в 1959 г. до конца 2003 г. Данные предоставлены автору Геофизическим центром РАН. Единицы
измерения – s.f.u. = Втм-2Гц-110-22. Точность измерений составляет
0,1 %.
Задачей прогнозирования являлось определение среднегодовой
активности на ближайшие 5–10 лет. Использовались результаты
усреднения исходных данных по годам и по полугодиям. Они приведены в табл. 5.1 и 5.2 соответственно.
Таблица 5.1
1959
Значение
2097
1971
Значение
1185
1983
Значение
1196
1995
Значение
772
1960
1620
1972
1208
1984
1011
1996
720
1961
1202
1973
934
1985
747
1997
819
1962
904
1974
865
1986
741
1998
1179
1963
812
1975
761
1987
853
1999
1537
1964
726
1976
734
1988
1410
2000
1798
1965
764
1977
869
1989
2135
2001
1812
1966
1021
1978
1436
1990
1898
2002
1796
1967
1432
1979
1920
1991
2081
2003
1285
1968
1493
1980
1985
1992
1507
1969
1512
1981
2026
1993
1097
1970
1562
1982
1753
1994
858
Год
Год
Год
80
Год
Таблица 5.2
Год
1959
1960
1961
1962
Значение
1939
1688
1554
1300
1100
971
837
Год
1971
1972
1973
1974
813
1963
1964
1965
1966
1967
1968
1969
1970
812
732
721
759
769
924
1118
1414
1451
1553
1433
1572
1452
1629
1494
Значение
1234
Год
1983
1135
1272
1984
1145
991
1985
877
844
1986
887
724
1975
1976
1977
1978
1979
1980
1981
1982
Значение
1297
1095
1227
795
755
739
749
733
Год
1995
1996
1997
1998
781
1987
797
732
1988
735
808
1989
930
1392
1990
1480
1854
1991
1987
1999
1992
1972
1932
1993
2120
1804
1994
1703
81
923
1175
1642
2137
2136
1872
1920
2164
2000
1703
1312
1229
968
902
814
Значение
804
741
710
731
737
840
1032
1327
1411
1999
2000
2001
2002
2003
1664
1813
1783
1651
1974
1883
1710
1288
1282
Можно предположить, что процесс активности Солнца близок к
стационарному. Однако имеющиеся данные не охватывают всего периода стационарности, определяемого частотой самой медленной составляющей процесса. Поэтому расчеты проводились в предположении, что данный процесс является как стационарным, так и полустационарным.
При исследовании данных среднегодовой активности было установлено, что оптимальным вариантом является полустационарный
процесс с отбрасыванием первых двух точек. При этом точность аппроксимации составила E=0,71210-2. Полученные значения прогноза
среднегодовой активности приведены в табл. 5.3.
Таблица 5.3
Год
Значение
Год
Значение
Год
Значение
Год
Значение
2004
1130
2007
767
2010
1760
2013
1720
2005
977
2008
1010
2011
1950
2006
783
2009
1260
2012
2060
График пробного прогноза приведен на рис. 5.1.
Рис.5.1.
82
График результирующего прогноза приведен на рис.5.2.
3
___________________________
спектр.
cпектр.плотн,
плотн.s.f.u.
, s.f.u.
2,2x10
3
2,0x10
3
1,8x10
3
1,6x10
3
1,4x10
3
1,2x10
3
1,0x10
Зона прогноза
2
8,0x10
2
6,0x10
1961
1965
1969
1973
1977
1981
1985
1989
___ аппроксимирующий
ряд
аппроксимирующий ряд
.
1993
1997
2001
2005
2009
2013
узловые
узловыеточки
точки
Рис. 5.2.
Количество точек среднегодовой активности невелико. Дальнейшее повышение точности и достоверности прогноза может быть достигнуто при увеличении числа точек путем использования данных
полугодовой активности за тот же период (см. табл. 5.2). Было установлено, что оптимальным является учет 75 точек вместо исходных
89. Полустационарный процесс оказался наиболее приемлемым и в
этом случае. Результаты среднегодовой активности, полученные при
точности аппроксимации E = 0,11810-1 приведены в табл. 5.4.
Таблица 5.4
Год
Значение Год Значение Год Значение Год Значение
2004
1235
2007
813
2010
1735
2005
987
2008
819
2011
1990
2006
768
2009
1325
2012
1975
83
2013
1735
График пробного прогноза приведен на рис. 5.3.
Рис. 5.3.
График результирующего прогноза приведен на рис. 5.4
Рис. 5.4.
84
Несмотря на более низкую точность аппроксимации, можно
предположить, что использование точек полугодовой активности дает
лучший прогноз. Это объясняется увеличением количества исходной
информации по сравнению с точками годовой активности. Дальнейшее уменьшение периода дискретизации (квартал вместо полугодия)
нецелесообразно, так как найденное оптимальное количество точек
(75 шт.) существенно меньше общего количества точек полугодовой
активности (89 шт.).
5.2. Прогнозирование среднегодовой и среднемесячной
температур
Прогнозирование погодных явлений осложняется низкой точностью исходных данных и влиянием неконтролируемых возмущающих
воздействий. Поэтому усреднение данных за достаточно большой
промежуток времени является непременным условием получения хорошего результата. Чем больше период усреднения, тем выше будет
точность прогноза.
В данном параграфе использованы значения среднемесячной
температуры по городу Алагиру Республики Северная Осетия-Алания
за время с 1944 г. по 2003 г. Данные предоставлены СевероОсетинским центром по гидрометеорологии и мониторингу окружающей среды (см. табл. 5.5).
Таблица 5.5
Год
Мес
1
I
II
III
IV
V
VI
2
3
4
5
6
7
VII VIII IX
8
9
10
X
XI XII Сред.
11
12
13
14
1944
–1,9 –0,6 5,2 8,9 13,2 17,8 19,6 16,8 15,2 9,4 4,3 –4,2
8,6
1945
–4,5 –6,1 0,4 6,5 13,4 16,2 19,9 19,4 15,2 7,8 0,7 –4,1
7,1
1946
–4,6 –0,3 2,0 8,2 15,0 17,9 19,0 20,8 17,2 6,0 3,7 –5,2
8,3
1947
–5,4 –2,1 7,0 9,5 12,9 18,4 21,0 18,3 14,0 7,1 4,8 2,7
9,0
1948
1,3 –0,8 –0,8 7,1 15,8 20,0 20,8 21,0 13,4 7,8 1,6 –5,9
8,4
85
Продолжение табл. 5.5.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
–5,6 –6,4 –0,8 6,4 15,1 18,6 21,0 18,6 13,1 6,5 4,1 –1,6
7,4
1950 –10,9 –4,2 1,7 13,8 15,5 16,7 19,9 18,4 17,5 9,0 3,0 0,2
8,4
1951
–3,5 –5,8 4,6 12,7 14,6 17,4 20,6 21,1 14,8 4,7 4,0 –2,2
8,6
1952
–3,1 –1,0 1,3 7,6 13,0 16,5 20,3 22,2 16,7 12,5 9,5 –0,3
9,6
1953
–2,0 –0,5 –0,1 8,0 15,4 18,8 19,8 20,3 14,1 7,7 –2,5 –4,8
7,9
1954
–7,2 –11,9 –1,2 6,4 15,9 18,9 22,0 21,0 16,8 11,7 6,0 0,0
8,2
1955
0,9
1,5 7,1 15,5 18,7 20,5 18,9 15,1 12,7 2,8 –1,6
9,6
1956
–0,4 –7,4 –3,0 9,6 11,7 18,0 18,0 20,4 12,3 9,5 0,7 –3,4
7,2
1957
–6,1 –0,6 1,3 12,4 16,5 18,9 20,9 22,1 18,4 9,0 2,9 –0,3
9,6
1958
–0,8 1,2
1,8 7,1 15,5 18,2 18,6 19,3 12,9 7,8 0,7 –0,5
8,5
1959
–0,4 –6,5 –0,6 10,3 14,2 16,7 20,6 19,2 12,1 4,8 0,2 –2,8
7,3
1960
–0,5 –2,0 –1,7 7,5 13,2 17,7 19,9 18,2 13,6 11,7 5,8 2,1
8,8
1961
–2,3 –1,2 2,5 9,8 15,9 18,7 19,0 19,2 13,2 7,8 4,9 1,5
9,1
1962
–1,7 0,0
1963
–2,9 –1,1 –0,2 8,4 13,7 17,4 20,4 19,6 16,6 9,0 3,8 –3,7
8,4
1964
–7,7 –3,7 1,1 8,8 14,0 19,4 19,7 17,8 15,0 8,8 2,7 1,4
8,1
1965
–4,6 –3,3 2,0 5,9 14,9 18,9 20,3 19,2 15,1 6,5 4,4 1,7
8,4
1966
1,3
4,7 12,1 14,1 17,6 22,5 21,5 14,7 10,9 5,3 1,4
10,7
1967
–1,8 –6,8 0,1 9,1 16,4 16,0 18,5 19,4 13,8 10,9 4,7 –0,8
8,3
1968
–3,1 –2,1 2,7 9,7 17,3 17,2 20,2 18,5 17,1 10,1 4,0 –2,2
9,1
1969
–8,6 –8,9 –1,9 8,3 14,7 20,4 18,8 20,4 15,2 7,5 5,0 0,0
7,6
1970
–3,0 0,6
9,2
1949
3,3
2,3
7,0 9,7 15,2 18,8 22,1 21,0 16,6 9,3 4,8 –0,8 10,2
4,1 12,3 15,0 16,7 21,2 18,8 14,1 7,6 5,0 –2,3
86
Продолжение табл. 5.5.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
–2,0 –3,3 3,4 7,5 14,9 17,1 22,2 19,9 18,6 8,8 5,1 –0,9
9,3
1972 –12,1 –6,8 0,2 12,7 14,9 20,1 21,9 22,9 15,8 11,5 4,8 –3,8
8,5
1973
–7,4 –0,3 3,2 10,0 14,8 16,5 19,4 18,3 12,9 10,5 1,8 –2,3
8,1
1974
–7,1 –3,5 2,0 6,7 14,5 18,5 19,7 18,8 14,8 13,5 4,1 –0,2
8,5
1971
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1975
–3,1 –4,0 0,7 14,2 16,0 20,7 21,6 20,4 16,5 8,2 1,9 –1,9
9,3
1976
–2,4 –8,9 –0,9 11,1 13,1 17,2 19,2 19,6 15,1 5,5 3,0 –1,3
7,5
1977
–9,6 0,5 3,8 11,5 14,7 17,6 20,0 19,7 14,6 5,6 5,3 –4,1
8,3
1978
–3,3 –0,9 5,3 8,0 12,8 16,3 20,1 17,5 16,1 9,9 1,5 –1,9
8,5
1979
–3,4 –1,0 4,8 8,7 16,3 18,1 20,1 22,3 17,3 8,4 4,8 –0,1
9,7
1980
–6,8 –2,1 1,1 9,1 14,5 18,8 22,0 19,1 14,4 8,8 6,0 2,2
8,9
1981
–0,1 0,4 3,5 7,6 12,3 19,4 21,8 19,6 16,2 11,7 4,2 2,5
9,9
1982
–4,6 –5,9 0,6 11,7 14,6 17,0 18,6 19,4 16,2 8,4 1,6 –0,7
8,1
1983
–4,2 0,2 1,8 12,3 15,7 17,3 21,1 18,6 14,7 9,8 2,9 –1,2
9,1
1984
–0,2 –5,3 1,3 7,9 14,6 17,4 20,8 17,5 16,5 9,6 6,1 –5,0
8,4
1985
–3,5 –4,2 –2,6 9,9 16,6 17,6 18,2 22,0 14,6 7,8 4,2 –1,0
8,3
1986
–0,7 –5,4 0,8 12,4 12,6 18,6 21,7 22,4 17,6 8,1 1,2 –0,8
9,0
1987
–2,6 –0,8 –0,5 6,7 15,4 19,3 21,3 18,8 14,7 7,1 3,7 –1,5
8,5
1988
–3,3 –4,8 2,3 10,2 13,1 18,9 21,2 19,7 15,0 8,8 1,0 –1,1
8,4
1989
–4,2 –3,8 4,5 12,2 13,9 18,6 20,4 20,9 15,6 9,8 3,9 –1,3
9,2
1990
–3,3 –1,3 5,2 9,9 13,4 18,1 21,1 18,8 16,1 9,1 6,6 –1,5
9,4
1991
–3,1 –6,2 2,4 9,8 13,3 19,4 22,2 19,3 15,3 11,7 3,2 –3,6
8,6
1992
–4,1 –4,1 0,7 7,5 12,6 17,2 18,9 20,0 14,1 9,1 2,7 –4,5
7,5
1993
–4,4 –6,4 3,0 8,0 14,3 17,7 19,5 20,0 14,6 9,1 –5,2 –2,2
7,3
87
1
2
3
4
5
6
7
8
9
10
Окончание табл. 5.5.
11 12 13
14
1994
–0,7 –6,7 2,3 11,6 14,4 16,9 20,8 19,0 18,8 10,9 2,0 –4,3
8,8
1995
–1,8 2,2 5,5 10,4 15,5 19,9 20,1 20,1 16,9 8,8 4,5 –3,7
9,9
1996
–4,5 –2,8 0,3 7,9 17,2 17,2 21,9 19,3 14,6 9,1 3,9 0,0
8,7
1997
–3,5 –3,2 1,1 8,7 16,3 18,2 19,8 20,1 12,6 11,0 3,2 –0,5
8,7
1998
–3,1 –3,6 1,6 12,4 15,0 21,1 22,1 22,5 16,3 11,4 3,5 –0,5
9,9
1999
–1,2 1,4 4,7 10,4 12,4 18,6 21,9 22,0 15,4 10,1 1,0 1,7
9,9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2000
–1,7 0,2 3,3 13,4 13,1 18,6 24,0 22,3 15,6 8,5 2,8 0,7
10,1
2001
–2,2 0,1 6,5 10,4 13,6 18,0 22,4 21,4 16,5 9,2 3,9 –1,6
9,9
2002
–2,7 3,9 6,3 7,6 13,2 17,3 21,9 20,1 18,3 11,6 5,7 –7,4
9,7
2003
–1,0 –3,2 –2,0 6,9 17,1 17,6 19,9 21,3 15,3 11,5 3,8 –1,8
8,8
Прогнозирование среднегодовой температуры велось по данным
правой колонки таблицы. Наилучшее количество исходных точек составило 55 при максимально возможном значении – 59 точек.
Определение типа процесса по методике гл. 4. выявило незначительное преимущество полустационарного процесса. Оптимальная
точность аппроксимации выбранной числовой последовательности
составила E = 0,15710-1. Результаты прогноза приведены в табл. 5.6.
Таблица 5.6
Год Значение Год Значение Год Значение Год
2004
10,10
2007
9,08
2010
7,69
2005
7,27
2008
8,26
2011
6,62
2006
9,60
2009
8,30
2012
7,92
2013
Значение
7,45
Графики пробного и результирующего прогнозов показаны на рис. 5.5
и 5.6.
88
Рис.5.5.
Рис.5.6.
Прогнозирование среднемесячной температуры связано с большим влиянием различных случайных факторов. Поэтому использова89
ние исходных точек среднемесячной температуры только по отдельным месяцам нецелесообразно. Существенно лучшие результаты дает
применение общих файлов данных для нескольких родственных процессов. В работе использовались измерения годовых пульсаций, составленные из точек среднемесячных температур.
Оптимальное количество исходных точек составило 229, что существенно меньше максимально возможного их числа.
Определение типа процесса по пробному прогнозу указало на явное преимущество полустационарного процесса. При этом, точность
аппроксимации результирующего ряда составила E = 0,21110-1. Прогноз среднемесячных температур за 2004 год приведен в табл. 5.7. Там
же имеются фактические данные, полученные в Центре по гидрометеорологии и мониторингу окружающей среды РСО-А.
Таблица 5.7
Мес.
2004 г.
I
II
III
IV
V
VI
VII
VIII
IX
X
XI XII
Прогноз
–2,91 –0,55 4,37 8,62 16,59 18,85 20,39 16,60 13,53 12,24 6,06 0,45
Факт.
–2,2
0,5
5,3 9,4 14,3 17,4 19,8 21,0
Графики пробного и результирующего прогнозов показаны на
рис. 5.7 и 5.8.
Оценки различных вариантов пробных прогнозов указывают на
снижение точности прогнозирования среднемесячной температуры по
мере удаления от последней исходной точки (декабрь 2003 г.). Тем не
менее, полученные результаты достаточно хорошо согласуются с
предыдущим расчетом (см. табл. 5.6).
Например, среднегодовая температура за 2004 г. составила по
данным табл. 5.7 9,520 против 10,10 по табл. 5.6.
90
Рис.5.7.
Рис. 5.8.
91
5.3. Прогнозирование годовых и месячных осадков
Влияние случайных факторов на количество осадков еще выше,
чем на температуру воздуха (см. п. 5.2). Поэтому точность и достоверность прогнозов здесь ожидается хуже, чем в предыдущем параграфе.
В работе использовались значения месячных осадков в миллиметрах по г. Алагиру Республики Северная Осетия-Алания за время
с 1944 по 2003 г. Данные предоставлены Северо-Осетинским центром по гидрометеорологии и мониторингу окружающей среды (см.
табл. 5.8).
Таблица 5.8
Год
Месяц I
II
III
IV
V
VI
1
3
4
5
6
7
2
VII VIII
8
9
IX
X
XI XII
10
11
12
13
Сумма
14
1944
34,9 48,5 40,8 73,3 352,7 246,1 104,7 136,5 43,7 53,2 13,1 14,1 1161,6
1945
23,6 17,3 59,0 116,1 132,6 258,6 113,2 148,9 43,7 65,8 26,1 44,8 1049,7
1946
23,1 52,3 59,9 76,1 244,2 218,7 117,2 36,3 72,2 86,6 20,6 19,5 1026,7
1947
38,1 13,7 62,3 58,0 85,7 82,6 84,5 126,1 125,3 45,9 47,3 28,9 798,4
1948
29,6 36,3 48,2 36,0 189,6 167,0 72,8 117,0 92,3 101,9 59,6 26,6 976,9
1949
15,0 13,1 29,8 105,5 126,2 169,3 23,3 116,4 124,4 90,1 12,0 34,7 859,8
1950
26,4 12,7 49,6 28,9 106,5 84,4 50,6 76,9 23,8 156,5 36,3 6,9 659,5
1951
28,1 11,4 12,8 85,0 185,8 207,6 58,9 92,5 145,3 115,8 41,3 33,8 1018,3
1952
20,6 30,9 21,6 38,9 185,5 164,4 76,7 11,5 56,8 71,7 30,8 39,0 748,4
1953
40,0 23,6 63,2 36,6 146,4 153,7 84,5 153,0 113,1 60,2 44,3 51,8 970,4
1954
24,4 4,4 23,7 76,0 108,4 69,9 86,0 94,0 57,7 46,1 13,7 19,0 623,3
1955
27,4 25,5 55,8 79,9 102,4 88,0 70,8 126,9 65,1 16,7 52,3 33,2 744,0
1956
39,5 19,7 75,1 66,2 197,9 135,0 109,1 69,2 77,3 53,1 49,0 50,1 941,2
1957
20,8 27,2 69,9 16,2 113,6 73,8 98,4 51,2 122,5 52,7 32,9 40,3 719,5
1958
68,0 27,7 58,5 104,2 163,5 100,0 377,6 97,9 113,0 43,8 44,3 20,7 1219,2
92
1
2
3
4
5
6
7
8
9
Продолжение табл. 5.8.
10 11 12 13 14
1959
31,7 71,3 22,8 53,0 180,7 214,4 53,1 164,2 103,9 56,5 56,0 21,9 1029,5
1960
33,5 50,8 39,5 78,1 182,2 197,2 175,6 87,4 73,5 32,4 13,7 57,4 1021,3
1961
30,3 26,3 63,5 89,4 96,6 139,9 156,2 42,0 157,8 68,6 41,3 27,6 939,5
1962
14,0 24,0 92,0 42,5 104,2 105,5 53,0 41,1 63,3 82,1 23,2 34,0 678,9
1963
34,7 26,5 47,6 144,5 207,5 158,4 340,1 65,0 82,7 60,2 31,0 50,0 1248,2
1964
16,6 12,9 55,8 90,0 139,0 91,1 81,3 87,2 79,9 58,3 50,6 12,8 775,5
1965
13,0 15,2 36,9 55,2 62,6 149,8 168,1 50,6 54,2 62,5 27,4 24,8 720,3
1966
21,8 16,7 91,7 126,3 123,3 195,6 55,5 128,2 116,2 22,1 24,8 28,0 950,2
1967
41,9 23,2 18,0 123,9 188,2 208,5 156,7 273,4 133,5 19,7 57,9 39,7 1284,6
1968
30,4 22,1 42,4 89,8 48,3 197,3 102,6 153,5 40,0 75,2 22,5 17,7 841,8
1969
15,7 21,6 29,9 110,4 76,5 124,5 73,0 55,9 83,7 54,7 28,6 39,6 714,1
1970
22,5 36,6 55,6 127,8 168,2 206,8 74,7 132, 111,1 67,3 28,8 18,9 1050,9
1971
24,4 48,7 53,8 104,7 61,6 199,9 14,5 65,9 88,4 46,0 25,1 52,2 785,2
1972
11,7 9,7 45,3 47,1 126,5 143,2 75,1 31,2 107,8 68,0 35,4 69,1 770,1
1973
14,2 46,2 85,2 129,2 88,7 195,4 160,0 77,8 59,3 44,8 77,1 44,5 1022,4
1974
22,8 16,6 50,7 127,9 147,8 112,2 145,0 80,2 59,1
1975
27,0 49,3 37,6 35,2 103,3 81,5 114,6 47,0 112,4 130,9 24,6 24,5 787,9
1976
18,3 29,0 27,2 69,2 212,0 163,1 105,6 47,3 48,5 64,1 12,2 33,0 829,5
1977
7,4 37,8 82,0 51,7 217,9 174,2 139,8 63,5 82,5 61,6 23,3 20,8 962,5
1978
25,1 50,7 29,3 124,7 156,4 152,4 115,1 150,5 45,0 55,8 76,6 38,4 1020,0
1979
40,0 42,5 14,1 74,5 40,0 99,3 157,6 6,2
1980
16,8 11,1 39,5 149,9 106,1 190,8 82,0 85,4 79,8 27,3 84,2 35,3 908,2
93
3,0
44,6 34,8 844,7
35,5 72,7 58,9 37,5 678,8
1
2
3
4
5
6
7
8
9
Окончание табл. 5.8.
10 11 12 13 14
1981
14,7 25,1 102,6 66,6 185,4 178,6 105,4 112,5 47,0 48,5 39,2 15,1 940,7
1982
31,6 21,0 44,1 93,9 237,4 114,4 163,3 63,1 121,8 52,7 42,4 15,6 1001,3
1983
39,2 52,5 28,8 63,4 126,5 227,4 178,4 81,2 94,1 46,4 25,2 41,9 1005,0
1984
9,2 20,7 58,6 69,6 172,7 188,9 87,7 148,4 33,2 88,0 43,5 15,3 935,8
1985
13,5 32,3 5,3 104,7 115,1 160,4 92,7 54,3 64,0 72,1 29,1 47,1 790,6
1986
34,7 17,8 7,8 44,6 87,6 48,2 40,9 59,3 56,5 16,1 40,8 13,8 468,1
1987
22,7 22,9 60,1 51,7 56,8 154,9 123,2 155,2 35,1 47,1 26,2 31,2 787,1
1988
22,3 9,3 51,2 61,6 143,4 138,9 159,6 115,2 65,0 86,9 57,7 16,7 927,8
1989
33,9 62,2 86,5 20,2 121,9 136,8 87,0 56,3 59,5 82,9 32,6 28,0 807,8
1990
30,0 39,8 109,1 94,1 125,5 182,3 53,3 81,6 77,2 59,8 46,2 28,0 926,9
1991
34,7 22,1 30,4 58,5 169,3 111,8 201,6 75,3 42,0 50,9 10,6 40,1 847,3
1992
25,5 49,5 20,5 68,7 153,2 184,5 226,1 79,6 208,3 46,4 100,1 52,4 1214,8
1993
58,6 31,4 24,1 84,0 163,2 81,4 156,5 77,4 72,8 33,4 20,9 3,3 807,0
1994
28,8 21,3 28,1 46,8 78,7 107,8 13,7 131,3 7,2
1995
14,6 22,4 53,0 180,0 80,2 104,1 116,4 75,8 80,0 147,8 109,2 25,3 1008,8
1996
9,9 32,1 19,3 32,5 73,2 108,9 150,4 119,4 68,3 70,5 24,5 37,5 746,5
1997
42,1 25,8 59,3 122,9 120,1 233,2 185,7 74,4 103,8 48,6
1998
40,2 73,8 112,0 35,6 144,1 242,1 66,9 34,4 71,8 24,4 45,2 76,0 966,5
1999
8,9 23,0 36,0 48,9 108,5 168,1 139,9 89,0 77,5 43,8 39,5 14,4 797,5
2000
39,0 36,3 53,0 120,6 91,7 82,3
2001
13,5 30,7 49,7 110,9 121,2 275,7 58,9 89,7 77,3 107,0 57,8 41,7 1034,1
2002
22,6 51,7 104,2 89,9 125,3 300,1 66,6 52,0 57,6 60,5 12,9 17,7 961,1
2003
3,3 14,0 34,1 66,6 48,9 86,6 101,4 71,9 80,9 85,9 49,8 66,6 710,0
94
59,1 64,6 19,0 606,4
5,3 42,1 1063,3
9,7 110,9 126,1 54,1 15,4 28,7 767,8
Прогнозирование годовой суммы осадков осуществлялось по
точкам годовых измерений. Из максимально возможного числа точек
59 наилучший результат по методике гл. 4. был получен для 57 точек.
Среди всех типов процессов был выбран стационарный процесс
при необходимой точности аппроксимации E = 0,13010-1. Полученные
результаты прогноза годовых осадков в мм приведены в табл. 5.9.
Таблица 5.9
Год
Значение
Год
Значение
Год
Значение
2004
1180
2006
731
2008
952
2005
923
2007
1089
2009
897
Графики пробного и результирующего прогнозов приведены на
рис. 5.9 и 5.10.
Рис. 5.9.
95
Рис. 5.10.
Расчет месячных осадков можно выполнить по годовым пульсациям, составленным из месячных точек. Однако, как показали пробные расчеты, более высокую точность можно получить при разделении общего числа исходных точек на три части. В первой части содержатся данные за 1, 4, 7 и 10 месяцы, во второй – за 2, 5, 8, 11 месяцы и в третьей – за 3, 6, 9, 12 месяцы. Соответственно этому определялись необходимые порядки уравнений и точности аппроксимации
конечным рядом. Они составили 99 и 0,76010-1 , 99 и 0,49610-1, 96 и
0,88910-1.
Результаты прогнозирования за 2004 г. сведены в табл. 5.10.
Тамже приведены фактические значения по данным Центра по гидрометеорологии и мониторингу окружающей среды РСО-А.
Таблица5.10
Мес.
2004г.
I
II
III
IV
V
VI
VII
VIII
IX
X
XI
XII
Прогноз 21,4 45,8 98,3 83,4 80,4 149,8 143,6 136,5 67,2 84,0 44,4 36,0
Факт.
18,4 42,4 91,0 110,3 84,8 197,7 127,3 154,3
96
Годовая сумма осадков составила 941 мм. Этот результат достаточно хорошо согласуется со значением 1180 мм, указанным в
табл. 5.9. График пробного прогноза за 2, 5, 8, 11 месяцы приведен на
рис. 5.11 в качестве примера.
Рис. 5.11.
На рис. 5.12 приведен график результирующего прогноза за 2, 5,
8, 11 месяцы.
Рис. 5.12
97
5.4. Прогнозирование годового стока рек
Годовой сток крупных рек является своеобразной суммой (усреднением) величины осадков, выпадающих на большой площади. Поэтому, влияние случайных (революционных) факторов здесь должно
заметно ослабляться по сравнению с задачами предыдущего параграфа.
В примере использованы исходные данные по стоку р. Днепр за
время с 1812 г. до 1973 г. из работы А.Г. Ивахненко [13] (см.
табл. 5.11). Единицы измерения – м3/c .
Таблица 5.11
1
1812
Значение
2
968
3
1853
Значение
4
1840
5
1894
Значение
6
1300
7
1935
Значение
8
1430
1813
1192
1854
1600
1895
1960
1936
1290
1814
1506
1855
1660
1896
1630
1937
1270
1815
1420
1856
1320
1897
1350
1938
1310
1816
1845
1857
1140
1898
1030
1939
905
1817
1170
1858
1230
1899
1120
1940
1460
1818
1300
1859
880
1900
1400
1941
1890
1819
1400
1860
1560
1901
1080
1942
1910
1820
2080
1861
2080
1902
1580
1943
882
1821
1520
1862
1230
1903
1400
1944
1270
1822
1200
1863
790
1904
943
1945
1230
1823
1070
1864
880
1905
1510
1946
1160
1824
1020
1865
1480
1906
1740
1947
1340
1825
1560
1866
1400
1907
1690
1948
1490
1826
1070
1867
1740
1908
1840
1949
1080
1827
1140
1868
1740
1909
1440
1950
933
Год
Год
Год
98
Год
Окончание табл. 5.11.
1
91828
2
1800
3
1869
4
1070
5
1910
6
1070
7
1951
8
1300
1829
2180
1870
1230
1911
1120
1952
1010
1830
1840
1871
1740
1912
1640
1953
1640
1831
1800
1872
1560
1913
1610
1954
842
1832
1360
1873
970
1914
1440
1955
1350
1833
1180
1874
700
1915
1500
1956
1590
1834
1520
1875
790
1916
1800
1957
1360
1835
880
1876
1840
1917
1960
1958
2160
1836
910
1877
2400
1918
1140
1959
1300
1837
1470
1878
1700
1919
1670
1960
1080
1838
1690
1879
2290
1920
1220
1961
1150
1839
1340
1880
1400
1921
595
1962
1700
1840
1670
1881
1320
1922
1460
1963
1250
1841
1670
1882
964
1923
1420
1964
992
1842
760
1883
1690
1924
1510
1965
1100
1843
970
1884
1210
1925
768
1966
1580
1844
1740
1885
1060
1926
1600
1967
1400
1845
2600
1886
1310
1927
1580
1968
1200
1846
880
1887
1190
1928
1580
1969
1340
1847
1230
1888
1670
1929
1550
1970
2490
1848
1070
1889
1600
1930
984
1971
1830
1849
2080
1890
1160
1931
2080
1972
1030
1850
1560
1891
1260
1932
2100
1973
1060
1851
1520
1892
949
1933
2270
1852
1440
1893
1480
1934
1640
99
Оптимальное количество точек составило 151 при имеющихся 160.
Было установлено, что для прогнозирования наиболее приемлемым является полустационарный процесс при точности аппроксимации E = 0,31510-1. При этом общее число членов ряда было уменьшено на единицу ( удалена нестационарная Тейлоровская составляющая
с множителем t ). Результаты прогнозирования приведены в табл. 5.12.
Там же для сравнения имеются результаты, полученные А. Г. Ивахненко с помощью метода МГУА.
Таблица 5.12
Год
1974
1975
1976
1977
Результат
автора
1190
1270
1160
1250
Результат
[13]
925
1218
1328
1145
Год
1978
1979
1980
1981
Результат
автора
1130
1500
1310
1310
Результат
[13]
1197
1413
1500
-
Следует отметить, что реальный сток Днепра составил в 1974 г.
1300 м3/ c [13]. Таким образом, расчет автора в этой точке находится
ближе к истинному значению.
Графики пробного и результирующего прогнозов приведены на
рис. 5.13 и 5.14.
Рис. 5.13.
100
Рис. 5.14.
5.5. Расчет траекторий летающих объектов
Решение задачи определения орбит и траекторий космических тел
удобно производить изложенными в работе методами. Отдельные координаты движения этих тел хорошо подчиняются принятому в работе типу разностных уравнений. Порядок уравнений определяется количеством взаимодействующих между собой объектов и точностью
исходных данных.
К сожалению, автору не удалось найти исходных данных, пригодных для составления примера по данному типу процессов.
В работе рассматривается пример прогнозирования траектории
летающего объекта. Объект маневрирует в атмосфере под действием
сложного закона управления, имеющего псевдослучайную составляющую. Исходные данные (см. табл. 5.13) получены при моделировании процесса на ЭВМ с точностью не ниже 6–7 десятичных знаков.
Данные предоставлены Московским авиационным институтом и соответствуют высотной составляющей траектории объекта.
101
Таблица5.13
Отн.
время
1
2
Отн.
время
3
4
Отн.
время
5
6
Отн.
время
7
0
0,540534
50
0,623262
100
0,660574
150
1,110497
1
0,544126
51
0,597247
101
0,649277
151
1,124525
2
0,550185
52
0,573016
102
0,643208
152
1,140020
3
0,558949
53
0,555795
103
0,644420
153
1,153897
4
0,568804
54
0,548632
104
0,651893
154
1,162066
5
0,576797
55
0,550478
105
0,662404
155
1,160798
6
0,580828
56
0,558529
106
0,672489
156
1,147145
7
0,580836
57
0,570746
107
0,680468
157
1,119338
8
0,578420
58
0,585560
108
0,686934
158
1,078762
9
0,576286
59
0,600986
109
0,692984
159
1,032281
10
0,577233
60
0,615226
110
0,698503
160
0,990467
11
0,582612
61
0,627671
111
0,703101
161
0,960909
12
0,591686
62
0,639006
112
0,708393
162
0,943235
13
0,602206
63
0,650497
113
0,717869
163
0,931460
14
0,611571
64
0,662793
114
0,733627
164
0,920142
15
0,618183
65
0,675094
115
0,754312
165
0,907494
16
0,621826
66
0,685748
116
0,777576
166
0,894650
17
0,622240
67
0,693735
117
0,803263
167
0,884278
18
0,617913
68
0,699290
118
0,832918
168
0,879170
19
0,607143
69
0,703240
119
0,868013
169
0,880391
20
0,590127
70
0,706198
120
0,909228
170
0,886644
21
0,569526
71
0,708506
121
0,954468
171
0,895454
22
0,548643
72
0,710614
122
0,996703
172
0,904345
23
0,528978
73
0,713073
123
1,026244
173
0,911292
Высота
Высота
102
Высота
Высота
8
Окончание табл. 5.13.
7
8
1
2
3
4
5
6
24
0,510062
74
0,715943
124
1,036606
174
0,915287
25
0,491706
75
0,718177
125
1,028711
175
0,916500
26
0,475534
76
0,717940
126
1,010477
176
0,915382
27
0,464007
77
0,714155
127
0,991694
177
0,912265
28
0,458898
78
0,707930
128
0,977495
178
0,908633
29
0,461564
79
0,702130
129
0,966495
179
0,907594
30
0,473543
80
0,699745
130
0,955255
180
0,911220
31
0,494445
81
0,703010
131
0,943391
181
0,917713
32
0,519484
82
0,713159
132
0,933983
182
0,922631
33
0,541961
83
0,729652
133
0,930653
183
0,923113
34
0,559182
84
0,749573
134
0,935174
184
0,920359
35
0,574558
85
0,768659
135
0,946942
185
0,918277
36
0,593476
86
0,783408
136
0,964028
186
0,920230
37
0,617661
87
0,792366
137
0,984394
187
0,926686
38
0,643248
88
0,795908
138
1,005703
188
0,935021
39
0,664115
89
0,795429
139
1,024043
189
0,941506
40
0,677043
90
0,792577
140
1,034360
190
0,944064
41
0,683319
91
0,788212
141
1,033996
191
0,943271
42
0,686218
92
0,781416
142
1,026040
192
0,940843
43
0,688245
93
0,770071
143
1,018272
193
0,937897
44
0,690111
94
0,753258
144
1,018287
194
0,934772
45
0,690803
95
0,733100
145
1,029051
195
0,931405
46
0,688298
96
0,713710
146
1,047760
196
0,927161
47
0,680600
97
0,697992
147
1,068191
197
0,920976
48
0,666720
98
0,685432
148
1,085222
198
0,912389
49
0,647134
99
0,673359
149
1,098295
103
Для определения интервала достоверности полученных результатов параллельно и независимо решалась задача прогнозирования значения первой производной высотной составляющей траектории объекта. Данные получены из того же источника и приведены в табл. 5.14.
Таблица 5.14
Отн.
время
1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
1–я
Отн.
1–я
Отн.
1–я
Отн.
1–я
произв. время произв. время произв. время произв.
2
3
4
5
6
7
8
0,134219
50 –1,270421 100 –0,632531 150 0,644309
0,233967
51 –1,298289 101 –0,462862 151 0,754927
0,375121
52 –1,077552 102 –0,125775 152 0,767238
0,487490
53 –0,617048 103 0,237580
153 0,585177
0,471045
54 –0,110713 104 0,481176
154 0,200375
0,309737
55 0,269365
105 0,539113
155 –0,351766
0,093461
56 0,519427
106 0,454858
156 –1,030052
–0,079028
57 0,690274
107 0,349802
157 –1,741783
–0,139192
58 0,773805
108 0,307759
158 –2,257356
–0,049317
59 0,752795
109 0,295342
159 –2,296047
0,155817
60 0,666160
110 0,250833
160 –1,817044
0,375346
61 0,584644
111 0,222346
161 –1,144378
0,512318
62 0,560521
112 0,339327
162 –0,679139
0,516764
63 0,594875
113 0,628113
163 –0,546302
0,405915
64 0,627480
114 0,933706
164 –0,599170
0,255003
65 0,587311
115 1,111767
165 –0,655038
0,108474
66 0,469024
116 1,214270
166 –0,606095
–0,080840
67 0,332383
117 1,369236
167 –0,405991
–0,368161
68 0,230804
118 1,608531
168 –0,095312
–0,707741
69 0,169280
119 1,908422
169 0,205298
–0,969917
70 0,128897
120 2,198247
170 0,398256
–1,060168
71 0,105648
121 2,265117
171 0,461927
–1,015504
72 0,110301
122 1,871920
172 0,409720
–0,957304
73 0,136750
123 1,024372
173 0,276310
–0,937380
74 0,141331
124 0,019836
174 0,125601
–0,883540
75 0,065355
125 –0,738762 175 0,000067
104
1
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
2
–0,711503
–0,426835
–0,073884
0,355372
0,842272
1,205772
1,236227
0,986920
0,767813
0,820060
1,087962
1,295079
1,207447
0,851057
0,455251
0,202173
0,109250
0,099321
0,078202
–0,026790
–0,241164
–0,537402
–0,845991
–1,100335
3
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
4
–0,099524
–0,269293
–0,327622
–0,226788
0,006889
0,330621
0,680558
0,943516
1,010993
0,867299
0,595820
0,303834
0,062570
–0,095891
–0,181079
–0,263450
–0,436169
–0,707893
–0,954709
–1,023711
–0,888828
–0,688445
–0,593504
–0,625694
5
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
Окончание табл. 5.14.
6
7
8
–0,996688 176 –0,110535
–0,837004 177 –0,189674
–0,599007 178 –0,144906
–0,534755 179 0,061330
–0,592473 180 0,285064
–0,565200 181 0,322931
–0,343293 182 0,142740
0,025620
183 –0,083090
0,420203
184 –0,156657
0,739202
185 –0,021468
0,952635
186 0,220878
1,066004
187 0,401026
1,032202
188 0,398753
0,756240
189 0,231446
0,249835
190 0,030768
–0,259514 191 –0,093998
–0,466533 192 –0,139584
–0,242945 193 –0,152692
0,270080
194 –0,160018
0,780912
195 –0,181988
1,033943
196 –0,252355
0,963002
197 –0,370608
0,736425
198 –0,481396
0,600729
Определение оптимального количества исходных точек дало в
обоих случаях одну и ту же величину w = 180. Было установлено,
что процессы являются cлабо нестационарными с модулями корней ‫׀‬ci‫ ≤ ׀‬1,02 и присутствием одного комплексного корня кратности
mi = 2. Точность аппроксимации результирующего ряда для табл. 5.13
составила E = 0,26510-3, а для табл. 5.14 E = 0,12710-1. В обоих случаях количество оставленных в рядах компонент q было равно 78.
Графики процессов приведены на рис. 5.15 (процесс из табл. 5.13)
и 5.16 (процесс из табл. 5.14).
105
Рис. 5.15.
Рис. 5.16.
106
По результатам расчетов в зоне прогноза были составлены дополнительные таблицы первой производной (для процесса из табл.
5.14) и самой функции (для процесса из табл. 5.13). Сравнение полученных данных показало, что доверительный интервал прогнозирования ориентировочно равен 8 точкам. При этом расхождение результатов двух расчетов было не более 10 % относительно их среднего значения за интервал от 0-й до 180-й точки.
5.6. Расчет разряда гальванического элемента
Гальванические элементы и батареи широко используются в переносных электронных устройствах. Определение степени их разряда
и оставшейся емкости позволяет повысить надежность эксплуатации
таких устройств.
В работе исследовался процесс разряда литиевого гальванического элемента CR123A фирмы SANYO. Разряд производился импульсами тока 1А с длительностью 10 секунд. Паузы между импульсами составляли 40 секунд. В табл. 5.15 представлена зависимость напряжения элемента от времени разряда. Расстояние между отдельными точками составляет 25 импульсов разряда. Напряжение измерялось при
токе элемента 100мА.
Таблица 5.15
№
точки
U
№
точки
U
№
точки
U
№
точки
U
0
3,063
6
2,641
12
2,559
18
2,466
1
2,919
7
2,619
13
2,556
19
2,433
2
2,783
8
2,600
14
2,543
20
2,396
3
2,718
9
2,587
15
2,535
21
2,345
4
2,684
10
2,574
16
2,516
22
2,280
5
2,658
11
2,564
17
2,494
Для прогнозирования использовались все 23 точки процесса. Было установлено, что здесь имеет место нестационарный процесс. После определения первичного ряда, содержащего 11 компонент, 5 компонент были отброшены ввиду их малого веса. Последующая оптими107
зация ряда проводилась до предельно возможной величины абсолютной точности E = 0,19110-2. График процесса представлен на
рис. 5.17.
Рис.5.17.
Целью прогнозирования было определение величины емкости
полного разряда элемента до напряжения 0 В. Согласно прогнозу этот
момент должен наступить на 31-й точке процесса при 775 циклах разряда, что составило величину емкости полного разряда 2,15 А/ч. По
данным самой фирмы, эта емкость составляет 2,3 А/ч. Таким образом,
точность прогнозирования емкости полного разряда оказалась вполне
приемлемой.
5.7. Расчет термо-э.д.с. термопар
В работе рассматривается пример прогнозирования термо-э.д.с.
пары медь – константан за пределами измеренного участка температур. В этом случае имеет место не процесс, а физический эффект.
Исходные данные взяты из справочника “Таблицы физических
величин” под редакцией академика Кикоина И. К., (М.: Атомиздат
1976). Термо-э.д.с. измерялась в мкВ при температуре свободных концов термопары 10К (см. табл. 5.16).
108
Таблица 5.16
T(K)
10
20
30
40
50
60
70
80
э.д.с.
16,64
62,48
134,1
228,5
342,8
474,7
622,4
784,4
T(K)
90
100
110
120
130
140
150
160
э.д.с.
960,5
1149,8
1351,9
1566,5
1793,1
2031,8
2282,4
2545,0
T(K)
170
180
190
200
210
220
230
240
э.д.с.
2819,8
3106,7
3405,2
3714,1
4033,2
4362,7
4702,2
5051,9
T(K)
250
260
270
280
290
э.д.с.
5411,7
5781,5
6161,5
6551,7
6952,1
Ввиду высокой точности исходных данных никакой обработки
первичного ряда не потребовалось. При нелинейном характере полученной зависимости точность аппроксимации составила 0,81610-13.
Были оставлены все 14 компонент первичного ряда. Это обеспечило
хорошую точность прогноза.
График полученной зависимости приведен на рис. 5.18.
Рис. 5.18.
109
Значения прогнозируемых термо-э.д.с. приведены в табл. 5.17.
Там же имеются фактические значения термо-э.д.с., взятые из справочника.
Таблица 5.17
T(K)
300
э.д.с., мкВ
310
320
330
8
6
4
2
7364,4 7790,4 8230,3 8683,2 10,82 6,191 2,792 0,6765
э.д.с., факт., мкВ 7386,5 7813,8 8255,0 8709,2 10,78 6,166 2,781 0,6738
Погрешность прогноза в области больших разностей температур
составила 0,3 %, а в области малых разностей температур – 0,4 %.
5.8. Расчет коэффициента линейного расширения сплавов
Прогнозировалась температурная зависимость коэффициента линейного расширения α10-6град-1 для сплава инвар 36Н после холодной прокатки с обжатием 63 %. Исходные данные взяты из источника,
упомянутого в п. 5.7. (см. табл.5.18).
Таблица 5.18
T(K)
α
T(K)
α
T(K)
α
T(K)
α
10
–1,440
90
0,867
170
1,001
250
0,337
20
–2,175
100
1,096
180
0,872
260
0,343
30
–2,193
110
1,271
190
0,759
270
0,374
40
–1,572
120
1,367
200
0,651
280
0,419
50
–0,931
130
1,398
210
0,548
290
0,473
60
–0,325
140
1,366
220
0,470
70
0,193
150
1,269
230
0,404
80
0,566
160
1,133
240
0,361
110
Анализ первичного ряда показал, что в данном случае имеет место явно нелинейная зависимость. При этом в ряде отсутствуют
нарастающие компоненты. В дальнейшем ряд не подвергался дополнительной обработке. Точность аппроксимации составила 0,17410-13.
График полученной зависимости показан на рис. 5.19.
Рис.5.19.
Значения прогнозируемого коэффициента линейного расширения
приведены в табл. 5.19 для области высоких абсолютных температур.
Таблица 5.19.
T(K)
α
α факт.
300
310
320
0,537 0,614 0,696
330
340
350
360
370
0,780
0,862
0,946
1,026
1,097
0,541
Фактическое значение коэффициента α составляет 0,541 для температуры T = 300 0K. Это дает точность прогноза 0,7 %.
111
5.9. Причины ухудшения точности прогнозирования
Основными причинами неудовлетворительной точности прогнозирования при использовании разработанного метода являются:
1. Низкая точность (достоверность) исходных данных. Косвенно
эта характеристика может оцениваться по степени нестационарности
первичного ряда для стационарных процессов, т. е. по уровню модулей корней ‫׀‬c-жомзоВ .уммус юущбо в тненопмок хикат удалкв и 1 < ‫׀‬
ность данной оценки следует из того, что большинство реальных процессов не может содержать быстро нарастающих компонент.
2. Недостаточное количество исходных точек процесса. Определяется по степени изменения прогноза при отбрасывании начальных
точек. Если точек процесса недостаточно, изменения прогноза будут
весьма значительными. Малое количество исходных точек может
компенсироваться использованием дополнительных данных по родственным процессам (см. п.п. 5.2 и 6.5).
3. Слишком большое число исходных точек. При этом увеличиваются погрешности различных вычислительных процедур,
отчего необратимо теряется нужная для прогнозирования информация. Следовательно, на различных этапах вычислений необходим эффективный контроль за точностью результатов.
4. Значительное влияние случайных факторов, которые могут
трактоваться как сильные шумы. Особенно заметно эта причина проявляется при недостаточном усреднении исходных данных. Интенсивность шумов может косвенно оцениваться по соотношению компонент ai*ci k первичного ряда. Если многие компоненты ряда имеют
примерно одинаковый вес при k = w , можно заключить, что шумовая
составляющая процесса велика.
5. Неправильная организация и ошибки при выполнении отдельных
сложных этапов получения и обработки первичного ряда (см. гл. 4.).
6. Слишком высокие требования к конечному результату при недостаточном количестве и качестве исходных данных.
112
Глава 6. ДОПОЛНИТЕЛЬНЫЕ ПРИЛОЖЕНИЯ МЕТОДА
6.1. Основные возможности
Помимо прогнозирования различных процессов, метод комбинированных рядов позволяет решать многие другие задачи. Основными
из них являются следующие:
1. Определение любых промежуточных значений процесса как
внутри исходного интервала точек, так и за его пределами. Задача решается путем задания соответствующей дробной величины аргумента k.
2. Выявление момента возникновения и величины неконтролируемых воздействий. Если текущий прогноз процесса хорошо согласуется с результатами измерений его новых точек, можно сделать вывод о том, что в рассматриваемой системе никаких изменений не происходит. Если же, начиная с некоторого момента возникает расхождение прогноза и самого процесса, следует констатировать возникновение революционного скачка. Величина полученного расхождения может дать представление о силе этого скачка.
3. Определение погрешностей задания отдельных исходных точек путем сравнения значений этих точек и данных результирующего
усеченного ряда.
4. Быстрый расчет установившегося режима для затухающих
процессов с помощью прямого расчета величины постоянной составляющей а0 по коэффициентам разностного уравнения (см. п. 7.8).
5. Быстрое определение установившегося режима для полустационарных процессов путем исключения из результирующего ряда
всех затухающих компонент.
6. Реконструкция значений точек процесса для моментов времени,
предшествовавших исходной числовой последовательности (см. п. 6.2).
7. Использование прерывистых (нерегулярных) точечных последовательностей для решения различных задач (см. п. п. 4.7 и 6.3).
8. Определение спектров сигналов в базисе тригонометрических
функций кратных и некратных частот (см. п. 6.4).
9. Прогнозирование взаимосвязанных процессов с целью повышения точности и достоверности конечного результата (см. п. 6.5).
10. Открытие (расшифровка) законов хода детерминированных
процессов как в виде разностных уравнений, так и в виде функций,
являющихся их решениями.
113
6.2. Реконструкция процессов
Реконструкция – это определение значений процесса х(k)=xk, лежащих слева от исходной числовой последовательности x0 , x1, …, xw .
При реконструкции параметр k принимает отрицательные значения
k = –1, –2,…. Решение задач реконструкции важно, прежде всего, с
исторической точки зрения.
Рассмотрим исходный процесс xk, описываемый разностным
уравнением (2.3). Для реконструкции этого процесса желательно использовать те же методы и формулы, которые разработаны для его
прогнозирования. Поэтому необходимо организовать новый процесс
уk (k = 0, 1, …, w), прогноз которого будет совпадать с искомой реконструкцией.
Можно показать, что точки нового процесса уk будут связаны с
точками исходного процесса xk следующим образом:
у0 = хw , у1 = хw-1 , … , уw = х0 ,
(6.1)
то есть процесс уk получается из основного путем изменения знака
аргумента k (разворот точечной последовательности) и соответствующего сдвига новой точечной последовательности к нулевой точке
отсчета. В итоге находим: уk = хw-k.
Если для процесса уk задать разностное уравнение в виде:
yqk  g q yq1k  g q1 yq2k    g1 yk  0 ,
(6.2)
то коэффициенты этого уравнения можно выразить через коэффициенты уравнения (2.3) следующим образом:
g1 
fq
1
, g2  
f1
f1
,  , gq  
f2
.
f1
(6.3)
Корни di характеристического уравнения:
d p  g p d p1    g2 d  g1  0 ,
(6.4)
соответствующего выражению (6.2), будут иметь значения, обратные
корням ci характеристического уравнения (2.4) для процесса xk. То
есть di=1/ci (i = 0, 1, …, q).
114
В результате процесс уk будет точно аппроксимироваться рядом,
подобным ряду (2.2):
yk 
q
b
i
k mi 1 d ik .
(6.5)
i 1
При этом постоянные составляющие рядов (6.5) и (2.2) будут
равны, а остальные коэффициенты bi могут определяться по подобным формулам (см. гл. 2). Если все корни ci для процесса хk простые,
то можно найти: bi = ai ci w.
В случае использования неполного разностного уравнения также
можно применять все подходящие соотношения, приведенные в данной работе.
В итоге реконструкция процесса хk выполняется теми же методами, что и его прогнозирование.
В качестве примера приведем табл. 6.1 реконструкции значений
среднегодовой солнечной активности за годы, предшествующие началу ее измерений в 1959 году (см. п. 5.1). Расчет выполнялся методами
п. 4.3 с последующим переходом к полустационарному процессу.
Таблица 6.1
Год
1958
1957
1956
1955
Значение
2180
2212
1593
1004
Год
1954
1953
1952
1951
Значение
791
869
1126
1444
Год
1950
1949
1948
1947
Значение
1858
1977
2305
1828
Год
1946
1945
1944
1943
Значение
1580
1085
794
980
6.3. Расчет по нерегулярным исходным данным
Все изложенное ранее относится к наиболее простому и естественному случаю использования последовательности равноотстоящих точек x0 , x1, …, xw. Между тем, иногда встречаются данные общего типа, представленные в виде неравноотстоящих исходных точек.
Таковы, например, результаты некоторых астрономических наблюдений, данные нерегулярных или сезонных экспедиций и т. п. Для решения этих задач можно использовать следующее предположение: любой тип исходных данных может быть точно аппроксимирован рядом
115
(2.2), число неизвестных величин в котором не больше количества исходных точек.
Применение разработанных формул и методов зависит от конкретной ситуации. Среди всего многообразия таких задач рассмотрим
наиболее часто встречающиеся.
Достаточно просто реализуется восстановление отдельных утраченных значений в последовательности равноотстоящих точек. Для
грубого восстановления здесь можно применить метод четырехточечной интерполяции по Лагранжу. При этом используются по две ближайшие известные точки с каждой стороны утерянной. Уточнение
результата возможно путем вариаций значений восстановленных точек при определении коэффициентов разностного уравнения. Это
уравнение должно иметь порядок, соответствующий числу известных
исходных точек. В процессе вариаций добиваются наименьшей погрешности аппроксимации всех этих точек с помощью ряда. Определение коэффициентов такого ряда производится с учетом всех точек,
включая утраченные.
Следует отметить, что чем меньше точек утеряно, тем точнее будут результаты восстановления их значений. Однако возможные отклонения от эволюционного хода процесса, как правило, не восстанавливаются.
Реконструкция значений группы утерянных точек с приемлемой
точностью возможна тогда, когда эта группа находится не на концах
исходной числовой последовательности. В данном случае можно использовать своеобразный прогноз значений этих точек при некоторых
известных точках в зоне прогноза. Наличие таких опорных точек может существенно улучшить точность и достоверность результата.
Рассмотрим, например, следующую разрывную последовательность исходных данных: x0 , x1, …, xw1, xw1+m , xw1+m+1,…, xw1+m+w2. Общее
количество известных исходных точек составляет w1+w2+2 и, следовательно, по ним можно построить полный ряд (2.2), содержащий не
большее количество неизвестных и точно проходящий через все эти
точки. На практике получение такого ряда связано с вариациями значений пропущенных точек и может встретить серьезные трудности.
Поэтому на первом этапе надо ограничиться неполным рядом (3.22),
содержащим максимально возможное число неизвестных. Этот ряд
позволит найти начальные приближения искомых точек, которые затем можно уточнить каким-либо методом.
116
Структура матриц для получения коэффициентов fi разностного
уравнения (3.17) по формулам (3.32), (3.34) будет иметь следующий вид:
x0

 

 xw1 q
Z 
 xw1  m
 

 xw1  m w2 q
 f1 
f 
2
f   ,
 
 
 f q 
x1

xw1 q 1
xw1  m1

xw1  m w2 q 1

xq 1 

 

xw1 1 
,
 xw1  m q 1 

 

 xw1  m w2 1 
 xq 
  


 xw1 
z
.
 xw1  m q 
  


 xw1  m w2 
(6.6)
Максимальная величина порядка уравнения q, которую допускает
формула (6.6), соответствует квадратной матрице Z (см. п. 3.4). Для
этого необходимо выполнение следующих трех условий:
w1  w2  3 q, w1  q  1, w2  q  1 . Реальное значение порядка q
должно быть тем больше, чем шире интервал утраченных точек, количество которых составляет m – 1 штук.
Если значения w1 или w2 слишком малы, это может сильно ограничить порядок q разностного уравнения. Тогда увеличится погрешность решения задачи, так как весьма большая числовая последовательность будет аппроксимироваться рядом небольшой длины. В этом
случае первую или вторую часть точек можно исключить из формул
(6.6).
Допустим, что величина w2 слишком мала. Тогда после исключения второй части числовой последовательности максимально возможный порядок q разностного уравнения будет примерно равен w1 / 2.
В любом случае дальнейшее определение коэффициентов ai ряда
(3.22) желательно проводить с помощью формул (3.26) или (3.31) при
использовании всех исходных точек.
117
Полученный первичный ряд позволяет найти начальные значения
внутренних неизвестных точек. Затем эти точки вместе с исходными
(общее количество p = w1 + w2 + m + 1) используются для определения
коэффициентов неполного разностного уравнения порядка q < (p+1) / 2.
Путем вариаций значений внутренних точек достигается наилучшее
совпадение этого уравнения со всеми исходными точками. В итоге
определяются искомые величины утраченных точек.
Наиболее общая постановка задачи состоит в следующем:
пусть имеются исходные точки x i = x(ki) , где ki: k0=0, k1, … , kw=w
– нарастающая последовательность положительных не обязательно
целых чисел. Необходимо найти точный или приближенный ряд вида:
xi
q
a
j
c jk i ki
mj1
,
(6.7)
j 1
проходящий через все исходные точки.
В формуле (6.7) величины aj , cj есть соответственно коэффициенты и корни ряда, а целочисленные значения mj представляют собой
значения кратности корней cj .
Решение поставленной задачи может проводиться путем выполнения следующих этапов:
1. Строим последовательность равноотстоящих точек x*k, где
k = 0, 1, …, w. При этом x*0 = x0, x*w = xw, а остальные значения находятся одним из интерполяционных методов по исходным точкам.
2. Для точек x*k находится первичный ряд вида (6.7) и определяется
его среднеквадратическое отклонение S от всех исходных точек xi при
значениях k, эквивалентных первоначальным моментам k0,=0, k1, … ,
kw=w .
3. Функционал S минимизируется путем вариаций величины всех
точек x*k и повторных определений первичного ряда.
Итоговый ряд представляет собой выражение, близкое к искомому (6.7) в нормированном времени. В дальнейшем он может подвергаться дополнительной обработке.
Изложенная процедура требует больших вычислительных затрат
и не всегда приводит к удовлетворительному результату из-за сложностей определения глобального минимума функционала S .
118
6.4. Спектры сигналов
Спектральные представления широко используются в информационном анализе систем и сигналов. Наиболее простым и употребимым является представление в виде спектра Фурье по гармоникам
кратных частот.
Рассмотрим последовательность исходных точек x0 , x1, …, xw.
При построении спектра Фурье подразумевается, что эта последовательность периодически повторяется. Отсюда находим период Т для
гармоники наименьшей частоты φ:
T  w,  
2 2
.

T
w
(6.8)
Запишем искомый ряд Фурье по гармоникам с частотами 0, φ,
2φ,… ,qφ:
x k  a0 
 a cos i k  b sin i k  .
q
i
(6.9)
i
i 1
Отсюда следует формула для определения неизвестных коэффициентов ai, bi при условии q = w / 2:
 a0 
a 
 1 1
1
 
    1 cos 
aq  

 b1  
   1 cos  w

bq 

1
0
 cos q
sin 



 cos q w sin  w

0 
 sin q 

 

 sin q w
1
 x0 
x 
 1  . (6.10)
 
 
 xw 
Квадратная матрица в формуле (6.10), как правило, не бывает
особенной.
К сожалению, ряд (6.9) не имеет никакого отношения к вопросам прогнозирования (экстраполяции) сигналов, так как за пределами исходной точечной последовательности он дает повторение точек
хw+1 = х0, хw+2 = х1 и т. д.
119
Аналогичным образом можно получить спектр сигнала для любого произвольного набора различных частот 0, φ1, φ2,…, φq. Однако их
произвольный выбор и явно избыточное количество (q + 1 штук при
q = w / 2) также не дает возможности прогнозирования значений сигнала.
В плане описания стационарных процессов интерес представляет
подход, изложенный в п. 4.3. Для этих процессов ряд некратных частот (4.1), полученный методами п. 4.3, является полным рядом
наименьшего объема.
Однако при наличии шумов, стационарность процесса может не
иметь места. В этом случае среди корней ci уравнения (4.3) обычно
появляются взаимно обратные значения с модулями ci  1. Следовательно, количество компонент полного тригонометрического ряда для
данных исходных точек должно быть больше минимально возможного (см. п. 4.3). Использование метода вариаций дополнительных точек
позволяет, как правило, получить такой ряд. Для этого первоначальная числовая последовательность достраивается путем присоединения
к ней нескольких дополнительных точек. Начальные значения этих
точек могут задаваться путем прогнозирования, а их минимально необходимое количество определяется пробными расчетами. Затем с
помощью вариаций значений дополнительных точек можно добиться
получения одного из вариантов полного ряда, соответствующего первоначальной точечной последовательности.
Использование принципа минимума среднеквадратического отклонения тригонометрического ряда (4.1) от исходных точек позволяет получить приближенный ряд для меньших значений q (см. п. 4.3).
Этот сокращенный ряд, так же как и полный, можно использовать для
прогнозирования или расчета каких либо параметров сигнала.
6.5. Прогнозирование связанных процессов
На практике часто наблюдается одностороннее или взаимное
влияние нескольких процессов друг на друга. Если по каждому из
процессов известно недостаточно большое количество исходных точек, их раздельное прогнозирование не может обеспечить необходимую точность результата. Очевидно, что учет взаимного влияния таких процессов может улучшить прогноз. В определенном смысле это
будет соответствовать использованию дополнительной информации о
процессах без увеличения количества их исходных точек.
120
Виды и характер связей между процессами могут быть весьма
разнообразными. Рассмотрим вначале простейший вид такой связи –
т. н. родственные процессы. Они представляют собой измерения одной и той же величины, сдвинутые во времени на величину h < 1. Если
имеется полная выборка таких процессов x(k), x(k+h), …, x(k+(n-1)h),
где h = 1 / n, они могут объединяться в один общий процесс с новым
периодом дискретизации h. Достигнутое увеличение количества исходных точек может существенно повысить точность прогноза.
В качестве примера рассмотрим результаты прогнозирования месячных осадков по г. Алагиру за 2004 – 2005 гг. Использовались исходные данные из табл.5.8. Был выбран упрощенный метод расчета,
включавший в себя следующие этапы:
1. Определение числа исходных точек по критерию уменьшения
модулей корней ci.
2. Перевод первичного ряда в полустационарный путем приравнивания к единице модулей корней всех нарастающих компонент.
3. Оптимизация полученного ряда по критерию его минимального
среднеквадратического отклонения от исходных точек.
В табл. 6.2 приведены данные раздельного прогнозирования
осадков за январь, апрель, июль и октябрь месяцы. Количества исходных точек равнялись соответственно 55, 57, 59, и 57. Известные автору истинные значения осадков составили: 18.4 мм (январь 2004), 110.3
мм (апрель 2004), 127.3 мм (июль 2004).
Таблица 6.2
Год
Месяц
2004
2005
Январь
Апрель
Июль
Октябрь
25,2
20,8
54,3
96,0
36,4
98,8
81,4
54,2
Полученные результаты имеют низкую точность.
В табл. 6.3 представлены данные прогнозирования осадков за те
же месяцы с помощью общего процесса при 111 исходных точках.
Таблица 6.3
Год
Месяц
2004
2005
Январь
Апрель
Июль
Октябрь
11,2
32,6
87,0
129,0
121
132,4
89,1
83,2
119,0
Результаты совместного прогнозирования существенно точнее
предыдущих.
Рассмотрим теперь общий подход к анализу двух взаимосвязанных процессов x(k), y(k). Пусть для них известны одинаковые количества синхронных и синфазных равноотстоящих точек x0, x1, …, xw и
y0, y1, …, yw.
Связь процессов требует использования аппарата неоднородных
разностных уравнений. При этом вынуждающее воздействие (правая
часть уравнения) для одного процесса должно содержать информацию
о другом процессе. При построении правой части следует учитывать
тот факт, что использование ранних точек второго процесса будет
указывать на инерционный характер связи, а величина коэффициентов
правой части – на интенсивность этой связи.
В работе была принята следующая форма записи разностных
уравнений:
x pk  f p x p1k  ...  f1 xk  g 'p y pk  ...  g a' yak ,
yqk  g q yq1k  ...  g1 yk  f q' xqk  ...  f b' xbk ,
k = 0, 1, 2, … .
(6.11)
Чем меньше числа p + 1 > a > 0 , q + 1 > b > 0 , тем больше компонент содержится в правых частях уравнений и тем сложнее будет
связь между процессами. Наоборот, при a = p , b = q эта связь максимально упрощается и правые части будут содержать по одной компоненте. Если положить a = p +1, b = q + 1, правые части должны стать
нулевыми и система (6.11) превратится в два независимых уравнения.
Формулы для определения неизвестных коэффициентов fi, gi, fi’,
gi’ получаются из соотношений (6.11) для k = 0, 1, … :
 x0 ... x p 1

 x1 ... x p



 xw p ... xw1
... y p 

ya 1 ... y p 1 

 

y w p  a ... y w 
ya
122
 f1 
... 
xp 
 


 fp 
x
    p 1  ,
... 
 g a' 


 
... 
 xw 
g ' 
 p
 y0 ... yq 1

 y1 ... yq



 y w q ... y w1
... xq 

xb 1 ... xq 1 

... 

xw q b ... xw 
xb
 g1 
... 
 yq 
 


gq 
y
    q 1  .
... 
 f b' 


 
...
y

 
 w 
f' 
 q
(6.12)
Для решения этих уравнений требуется, чтобы количества столбцов прямоугольных матриц 2p – a + 1 и 2q – b + 1 не превышали чисел их строк w – p + 1 и w – q + 1. При равенстве этих величин получается точное решение. Данные соотношения позволяют правильно
выбрать целые значения p, q, a, b при заданном числе w .
После выбора указанных неизвестных и определения всех коэффициентов по уравнениям (6.12) можно приступать к решению системы (6.11). Здесь удобно использовать метод Z-преобразования. Примем следующие обозначения: X(z) = Z{x(k)}, Y(z) = Z{y(k)}. Тогда
можно записать выражения для сдвинутых решетчатых функций:
Z{xk i }  z i X ( z )  Si ,
Z{ yk i }  z i Y ( z )  Qi ,
где S i 
i 1

z i  j x j , Qi 
j 0
i 1
z
i j
yj
(6.13)
.
j 0
Если с учетом формул (6.13) преобразовать систему (6.11), получим следующее матричное соотношение:
F
 '
 F
G' 

G 
S  Q' 
 X ( z )

 '
,
Y ( z ) 


S  Q 
где F  z p  f p z p1  ...  f 2 z  f1 ,
G  z q  gq z q1  ...  g2 z  g1 ,
F '   f q' z q  f q' 1 z q1  ...  f b' z b ,
G '   g 'p z p  g 'p1 z p1  ...  g a' z a ,
123
(6.14)
S  S p  f p S p 1  ...  f 2 S1  f1 ,
Q  Qq  g q Qq 1  ...  g 2Q1  g1 ,
S '   f q' Sq  f q' 1Sq1  ...  fb' Sb ,
Q'   g 'pQp  g 'p1Qp1  ...  g a' Qa ,
Решение системы (6.14) получается в виде:
X ( z) 
G ( S  Q ' )  G ' ( S '  Q)
,
(F G  F ' G ' )
Y ( z) 
F ( S '  Q)  F ' ( S  Q ' )
.
(F G  F ' G ' )
(6.15)
Отсюда, после сокращения общих корней числителей и знаменателя, можно получить два, в общем случае различных, характеристических многочлена C(z) и D(z), соответствующие процессам X(z) и
Y(z). Корни этих многочленов ci, di войдут в ряды для процессов x(k),
y(k):
x( k ) 
y (k ) 
px
ak
mi 1
i
i 1
py
bk
cik ,
mi 1
i
d ik ,
(6.16)
i 1
где px, py – степени соответствующих многочленов.
Коэффициенты ai, bi рядов (6.16) можно определять по формулам
(3.26), используя все точки процессов и вычисляя суммы от 0 до w.
На основе полученных соотношений можно рассмотреть важный
для практики случай односторонней связи процессов. Пусть процесс
y(k) является независимым (первичным). Тогда многочлены F’, S’ обращаются в ноль. В итоге решение (6.15) принимает следующий вид:
X ( z) 
G (S  Q ' )  G ' Q
,
FG
Y ( z) 
124
Q
,
G
(6.17)
причем многочлены Q и G не будут иметь общих корней.
Многочлен C(z) для процесса x(k) определится после сокращения
общих корней числителя и знаменателя, а многочлен D(z) для процесса y(k) будет равен G.
Рассмотрим важный случай задания разного количества исходных точек для каждого из процессов. Пусть процесс x(k) задан точками xm, xm+1, …, xw, а процесс y(k) – точками yl, yl+1, …, yw. Вид разностного уравнения для этого случая останется таким же (см. (6.11)), но
для первого уравнения необходимо полагать k = m, m+1, …, w, а для
второго k = l, l + 1, …w. Отсюда, условия существования решения
систем (6.12) запишутся в виде: 2p – a – m <= w – p – m, 2q – b – l <=
= w – q – l. Здесь можно положить нулевым наименьшее из чисел m
или l. Кроме того, очевидно, что a >= l и b >= m.
Дальнейший расчет и обработка полученных рядов x(k), y(k) выполняются обычными методами.
Важным результатом разработанного метода анализа двух взаимосвязанных процессов является возможность оценки степени их влияния друг на друга по соотношению коэффициентов левых и правых
частей уравнений (6.11). Для этих же целей можно использовать аппарат корреляционных функций (см. [21]). Однако физический смысл и
численные значения этих двух видов оценок будут различными.
Изложенным методом можно рассматривать одновременно три и
больше взаимосвязанных процесса. Наиболее сложный этап этой работы касается вычисления определителя и обращения матрицы, содержащей полиномы в качестве своих элементов. Задача упрощается,
если такая матрица будет верхнетреугольной, то есть в случае ступенчатой связи между процессами. Это означает, что первый процесс
должен зависеть от всех остальных, второй – от всех, кроме первого,
третий – от всех, кроме первого и второго, и т. д. Однако необходимо
помнить, что при ограниченном количестве исходных точек, количество процессов, между которыми можно рассчитать взаимодействие,
также будет ограничено.
Простой способ учета связи между процессами основан на совместном использовании корней их характеристических уравнений.
Вполне возможно, что часть корней основного процесса сильно искажена шумами и неконтролируемыми воздействиями, в то время как у
дополнительного процесса эти искажения гораздо меньше. Тогда некоторые частоты  j корней cj дополнительного процесса можно использовать для улучшения прогноза основного процесса. При исполь125
зовании частот  j надо учитывать возможность их нелинейного преобразования в системе, генерирующей основной процесс.
Методика использования дополнительных корней при прогнозировании одного из нескольких взаимосвязанных процессов сводится к
следующему:
1. Производится предварительное прогнозирование всех процессов при использовании одинакового количества синхронных точек и
выделении 2–4 пробных точек. Для каждого из процессов фиксируются модули и фазы корней. Если процесс близок к стационарному,
быстро затухающие компоненты его ряда можно не запоминать.
2. Определяются частоты  j информативных компонент дополнительных процессов. Иногда они могут иметь заметное отличие от
частот i родственных корней основного процесса. При этом используются только те дополнительные процессы, прогноз которых удовлетворителен.
3. Все выбранные частоты  j в виде стационарных корней поочередно или небольшими группами вводятся в ряд для основного
процесса. Если после исключения близких по значению корней, вычисления новых коэффициентов ai и оптимизации ряда пробный прогноз процесса существенно улучшается, данная частота  j может
быть зафиксирована в этом ряде.
4. Все пробные точки основного процесса включаются в исходную числовую последовательность. После расчета новых коэффициентов ряда ai, он может быть подвергнут окончательной оптимизации.
Вычисляется итоговый прогноз.
Рассмотрим пример.
В качестве основного был выбран процесс изменения месячных
осадков за январь по г. Алагиру РСО–А (см. табл. (5.8)).
Вначале производилось прогнозирование процесса, как одиночного. Использовалось 55 точек при исключении первых четырех точек
(q = 28 ). Был принят полустационарный тип процесса. После ограничения модулей корней и оптимизации ряда получены значения
25,2 мм (январь 2004) и 20,8 мм (январь 2005) при погрешности аппроксимации исходных точек E = 0,814110-1.
В качестве дополнительного был выбран процесс изменения
среднемесячных температур за январь в том же городе (см. табл.
126
(5.5)). Пробными точками служили четыре последних значения за
2000–2003 годы. Оставшиеся 55 точек использовались полностью.
Процесс также считался полустационарным и после ограничения модулей корней и оптимизации ряда значения пробного прогноза составили: –2,48, –3,27, –3,89, –1,78 0C. Сравнение с данными табл. 5.5 указывает на достаточно высокую точность пробного прогноза.
Для пробного прогноза основного процесса также были использованы последние четыре точки. Оставшиеся 55 точек учитывались
полностью. После ограничения модулей корней по типу полустационарного процесса и оптимизации ряда были получены следующие
значения пробного прогноза осадков: 21,2, 30,6, 23,2, 30,2 мм. При
этом истинные значения составили: 39,0, 13,5, 22,6, 3,3 мм, что показало неудовлетворительную среднюю погрешность прогноза 15,6 мм.
В качестве добавочной пары корней к основному процессу были
выбраны значения c1 = e j,.2168 и c2 = e-j0,2168, взятые из ряда дополнительного процесса. Эти значения существенно отличались от ближайшей пары корней основного процесса c3 = e j0,1760 и c4 = e-j0,1760 . Они
обеспечили небольшое снижение средней погрешности пробного прогноза до величины 14.2 мм. Однако в итоге, после введения пробных
точек в основную числовую последовательность и оптимизации модифицированного ряда, были получены значения прогноза осадков за
январь 2004 и 2005 гг. 18,6 и 26,2 мм. Истинная величина осадков за
январь 2004 г. равняется 18,4 мм (см. табл. 5.10).
Таким образом, использование всего одной пары комплексносопряженных корней дополнительного процесса уже позволило существенно улучшить точность прогноза основного процесса.
127
Глава 7. НЕКОТОРЫЕ ВОПРОСЫ ПОСТРОЕНИЯ РЯДОВ
7.1. Повышение порядка разностных уравнений
Все разностные уравнения вида (2.3), рассматриваемые в работе,
имеют порядок q, не превышающий максимально допустимого для
систем (2.5), (2.6). Этот предел соответственно составляет (w + 1) / 2 и
(w + 2) / 2 для количества исходных точек w + 1. Поиск оптимального
значения этого порядка ограничен не только сверху, но и снизу, так
как небольшая величина q не обеспечивает необходимой точности аппроксимации даже для первичного ряда. В результате количества вариантов удачного выбора порядка q часто недостаточно для суждения
о достоверности результирующего прогноза.
Двукратно расширить диапазон допустимых значений порядка q в
область больших величин можно путем модификации решений исходных систем уравнений (2.5) или (2.6). Когда число столбцов (неизвестных величин) превышает число сток (уравнений), формально к
этим системам можно применить наиболее общую формулу решения:
f = (Xt X)-1 Xt x .
(7.1)
При этом квадратная матрица Xt X всегда будет особенной и ее
обращение невозможно. Однако, если к диагональным элементам
матрицы добавить небольшие одинаковые числа, особенность матрицы устраняется и ее обращение становится вполне реальным. Для получения решения (7.1) с высокой точностью процедуру необходимо
усложнить. В начале в главную диагональ добавляются положительные числа порядка 10-7 и полученное решение запоминается. Затем из
диагонали исходной матрицы эти числа вычитаются и вновь ищется
решение. Окончательный результат находится как среднеарифметическое двух этих решений. Относительная погрешность определения
коэффициентов fi данным методом обычно бывает не хуже 10-11. Этого
вполне достаточно для дальнейшей работы.
Погрешность аппроксимации получаемых в итоге расширенных
первичных рядов обычно составляет менее 10-12 . При этом, после типовой обработки, многие из них вполне пригодны для получения прогноза хорошей точности. Особенно это касается результирующих рядов для стационарных процессов. Однако экстраполирующие возможности расширенных рядов постепенно снижаются с ростом порядка q.
128
Одновременно уменьшается максимальное значение модулей корней
характеристических уравнений. Практически можно использовать
увеличение порядка не более чем в 1,5 раза.
В заключение следует отметить, что тип и величина чисел для
модификации диагонали матрицы в уравнении (7.1) практически не
влияют на значения корней первичного ряда и на все дальнейшие результаты работы.
7.2. Обращение матрицы Вандермонда
Матрица Вандермонда имеет следующую структуру:
1
 1
 c
c2
1
V 


 q 1
c2q 1
c1
1 
 cq 
.
 

 cqq 1 

(7.2)
В данной работе она может использоваться при вычислении коэффициентов ряда, а также при решении задач полиномиальной интерполяции точечных последовательностей.
Особый характер формирования столбцов матрицы V требует
возведения в большие степени чисел ci , существенно отличающихся
от единицы. Это приводит к плохой обусловленности матрицы. В результате, применение типовых алгоритмов обращения не обеспечивает высокой точности из-за погрешностей обработки больших чисел.
Существенно лучший результат достигается с помощью разработанного специального алгоритма, предусматривающего использование характеристического многочлена:
f (c)  c q  f q c q 1  f q 1 c q  2    f 2 c  f1  (c  c1 )(c  c2 )  (c  cq ) , (7.3)
содержащего в качестве корней все образующие числа ci исходной
матрицы. Обычно этот многочлен уже известен заранее из других этапов работы. Его можно получить так же рекуррентной процедурой
через формулы Вьета [23].
На основе многочлена (7.3) для произвольной i-й строки искомой
матрицы V-1 определяем новый многочлен, исключая из исходного
корень ci:
129
f (c )
 c q1  f q(i 1) c q2    f 2(i )c  f1(i ) 
c  ci
.
 (c  c1 )(c  c2 )  (c  ci 1 )(c  ci 1 )  (c  cq )
f ( i ) (c ) 
(7.4)
Коэффициенты этого многочлена можно найти методом Горнера
[23] по известным коэффициентам основного:
f q(i 1)  f q  ci ,
f q(i )2  f q 1  f q(i 1) ci ,
.
...............................
f1(i )  f 2  f 2(i ) ci  
(7.5)
f1
ci
В результате для элементов vij произвольной i-й строки матрицы
V-1 можно записать:
vi1 
 f1( i )
,
f ( i ) (ci )
vi 2 
 f 2( i )
,
f ( i ) ( ci )
(7.6)
.....................
vi ,q 1 
vi q 
 f p(i )1
f ( i ) (ci )
,
1
.
f (ci )
(i )
Формулы (7.6) проверяются путем непосредственного перемножения матриц V и V-1.
Следует отметить, что значения многочлена f (i ) (ci ) и его коэффициенты вычисляются один раз для всей строки с номером i. Действительный столбец исходной матрицы дает при обращении соответствующую действительную строку обратной, а комплексно сопряженные столбцы приводят к получению таких же сопряженных строк.
130
Изложенный алгоритм обеспечивает высокую точность результата при минимальных вычислительных затратах. Для матриц размера q < 400 вычислительной неустойчивости не наблюдалось.
7.3. Неоднородные разностные уравнения
Уравнение общего вида (2.3) удобно использовать в ситуации, когда неизвестен вид функций, составляющих весь процесс или хотя бы
его часть. Тогда эти функции приближенно определяются компонентами найденного ряда (2.2). При неизбежных погрешностях исходных
точек данная методика получения ряда может приводить к его существенным искажениям. Между тем параметры некоторых функций
можно точно установить заранее и использовать этот факт для получения более точного ряда. Например, гарантированное присутствие в
процессе постоянной составляющей требует наличия в ряде единичного корня. Если процесс имеет квазипериодический характер, ряд
должен содержать два сопряженных корня соответствующей частоты
с единичным модулем и т. д.
Поставленная задача достаточно просто решается для двух известных функций процесса y1(k), y2(k). При этом используется неоднородное разностное уравнение следующего вида:
xk  q  f q xk q 1  f q 1 xk  q  2    f 2 xk 1  f1 xk  A1 y1 (k )  A2 y2 (k ) , (7.7)
где A1 , A2 - неизвестные весовые коэффициенты.
Определение всех неизвестных величин данного уравнения производится по всем исходным точкам процесса x0, x1, …, xw:
 f1 
x1

xq 1 y1 (0) y2 (0)   f 
 x0
 xq 
 2
 x

x 
x2

xq
y1 (1) y2 (1)   
 1
  q 1  , (7.8)


f
 

q





 A 


 xwq xwq 1  xw1 y1 ( w  q) y2 ( w  q)  1 
 xw 
A 
 2
или в сокращенном виде: X f = x. Отсюда получаем наиболее общую
форму решения:
f = ( Xt X)-1 Xt x.
(7.9)
131
Точное решение системы (7.8) возможно при условии: q = (w – 1) / 2.
При этом необходимо четное число исходных точек. Чем больше
функций вводится в правую часть уравнения (7.7), тем сильнее снижается максимально допустимый порядок q .
После определения коэффициентов левой части уравнения (7.7),
необходимо найти корни c1, c2, …, cq соответствующего характеристического уравнения:
c q  f q c q 1  f q 1 c q  2    f 2 c  f1  0 .
(7.10)
К этим корням необходимо добавить все полюсы cq+1, cq+2, …, cq+p
Z - преобразований функций правой части.
Решение уравнения (7.7) будет содержать все указанные особые
точки:
xk 
q p
a
i
cin k m i 1 .
(7.11)
i 1
Коэффициенты ряда ai находятся по обычным формулам (см.
например (3.26)). Дальнейшая обработка ряда производится методами
гл. 3, 4.
В качестве функций правой части можно выбрать константу или
экспоненту с заданным затуханием и синусоиду известной частоты и
фазы. Возможны, конечно, и другие, более сложные варианты.
7.4. Теорема Шура и ее следствия
Анализ величины модулей корней характеристических уравнений
не требует, вообще говоря, решения этих уравнений. Для таких целей
можно использовать один из существующих критериев устойчивости.
Наиболее подходящим является критерий, основанный на теореме
Шура [35]. Эта теорема дает необходимые и достаточные условия
нахождения всех корней алгебраического уравнения внутри единичного круга. Если учесть, что кратные корни встречаются в практических задачах довольно редко, данный критерий вполне можно использовать для определения характера процесса.
Обозначим многочлен уравнения (7.10) через F(c). Согласно теореме Шура этот многочлен тогда и только тогда имеет все свои корни
внутри единичного круга, когда | f1 | < 1 и корни нового многочлена
132
Шура: F1(c) = (F (c) + f1 F (1 / c) c q) / c степени q - 1 также лежат внутри единичного круга. Необходимо повторять вычисление многочлена
Шура, каждый раз приводя коэффициент при его старшей степени к
единице и заменяя F(c) на F1(c). При этом следует контролировать
значение модуля последнего коэффициента, который не должен быть
больше единицы. Таким образом можно прийти к многочлену первой
степени. Его свободный член также не должен превышать единицы.
Этим доказывается, что модули корней уравнения (7.10) не достигают
единичного уровня.
На основе теоремы Шура можно получить важное следствие: Для
того, чтобы все корни многочлена F(c) = bn cn + bn-1 cn-1 + … + b1 c + b0
лежали внутри круга радиуса R1 > 0 необходимо и достаточно, чтобы
все корни другого многочлена:
FR1 (c) = bn cn + R1-1 bn-1 cn-1 + … + R11-n b1 c + R1-n b0
(7.12)
находились внутри единичного круга. Этот факт вытекает из преобразования многочлена F(c) путем замены переменной c на R1c . При этом
корни ci исходного многочлена переходят в значения корней ci / R1 модифицированного. В результате, методом последовательных приближений можно достаточно точно определить максимальное значение
модулей корней исходного многочлена без вычисления этих корней.
Тем самым легко устанавливается степень отклонения процесса от
полустационарного на ранних этапах расчета.
Для определения нижней границы модулей корней исходного
многочлена F(с) необходима замена переменной c на R2 / c . Тогда
можно доказать следующее: Для того, чтобы все корни многочлена
F(c) находились вне круга радиуса R2 необходимо и достаточно, чтобы
все корни нового многочлена
FR2 (c) = b0 cn + R2 b1 cn-1 + … + R2n-1 bn-1 c + R2n bn
(7.13)
лежали внутри единичного круга.
Использование рассмотренных следствий позволяет достаточно
точно установить границы модулей всех корней исходного многочлена, то есть классифицировать процесс. Однако определение этих границ методом последовательных приближений требует значительных
вычислительных затрат. Существенно сократить время расчетов можно при исследовании стационарных процессов. Для таких процессов
133
имеет место строгая симметрия коэффициентов в уравнениях (2.3) и
(2.4) (см. п. 4.3). В общем случае записи многочлена F(c) = bn cn +
+ bn-1 cn-1 + … + b1 c + b0 найденные соотношения симметрии выглядят
следующим образом :
bn2 = b02 , bn bn-1 = b0 b1 , bn bn-2 = b0 b2 ,…, bn b2 =
= b0 bn-2 , bn b1 = b0 bn-1 .
(7.14)
Данные равенства можно получить из рассмотрения первого многочлена Шура для стационарных процессов. Коэффициенты этого
многочлена будут нулевыми.
Из соотношений (7.12) – (7.14) предельным переходом можно получить необходимые и достаточные условия стационарности процесса, если он заведомо не содержит кратных корней. Это условия
нахождения всех корней исходного многочлена F(c) на единичной
окружности. С этой целью зададим величину R1 = 1 + e для выражения
(7.12), значение R2 = 1 – e для соотношения (7.13), и вычислим для них
многочлены Шура при условии e  0. В результате, кроме необходимых условий симметрии (7.14), при определении стационарности процесса следует учесть требования нахождения внутри единичного круга всех корней одного дополнительного многочлена:
F2 (c) = bn n cn-1 + bn-1 (n-1) cn-2 + … + b2 2 c + b1 .
(7.15)
Соотношения (7.14), (7.15) устанавливают искомые необходимые
и достаточные требования к коэффициентам исходного многочлена
F(c) . Можно заметить, что выражение (7.15) является производной
многочлена (7.12) по аргументу c при единичном радиусе R1.
Многочлен Шура обладает следующим полезным качеством: tсли
в исходном выражении F(c) помимо нестационарных есть и стационарные корни, то они остаются неизменными и в многочлене F1(c).
Этот факт легко доказывается с помощью свойства симметрии коэффициентов уравнений для стационарных процессов (см. выше) после
выделения из общего многочлена F(c) стационарного множителя. С
понижением степени многочлена Шура количество его нестационарных корней сокращается до нуля, а стационарные корни исходного
многочлена F(c) сохраняются полностью. При этом модуль последнего коэффициента приведенного многочлена F1(c) становится равным
единице. Следовательно, на данном этапе происходит выделение всей
134
стационарной части исходного процесса, что осуществляется без решения характеристического уравнения (7.10). Затем, разделив многочлен F(c) на многочлен F1(c) , можно найти нестационарную часть
этого процесса. В итоге значительно упрощается решение многих задач анализа и прогнозирования не только полустационарных, но и нестационарных процессов.
Из рассмотренного свойства и самой теоремы Шура следует, что
при исходном полустационарном многочлене F(c) многочлен Шура
также будет полустационарным или по крайней мере стационарным.
На практике установлено, что корни многочлена F1(c) , степени близкой к максимально возможной, вполне пригодны для приближенной
аппроксимации и прогнозирования исходного полустационарного
процесса с помощью ряда (2.2). При этом точность прогноза может
заметно повыситься.
Другим важным свойством многочлена F1(c) для полустационарных или затухающих процессов является то, что при единичном коэффициенте старшей степени модуль его свободного члена всегда
меньше максимального модуля затухающих корней исходного многочлена F(c) . Следовательно, при понижении степени многочлена Шура
можно определить достаточно узкий интервал для этого модуля. Тем
самым приближенно устанавливается минимально возможная длительность переходного режима для процессов данного типа.
7.5. Получение точных полустационарных рядов
Полные полустационарные ряды минимального объема играют
важную роль в прогнозировании стационарных процессов с шумами.
Однако получение таких рядов затруднительно. Далее приводится методика получения полных рядов несколько увеличенного объема,
близких к полустационарным. Число неизвестных величин, входящих
в эти ряды, может превышать количество исходных точек. В результате, при вычислении коэффициентов разностного уравнения (2.3) возникает неопределенность (см. п. 1.1). Следовательно, появляется возможность, при сохранении точности, подобрать эти коэффициенты
так, чтобы максимальный модуль корней S = |ci|max характеристического уравнения (2.4) приблизился к единице. Ряды, полученные таким способом, вполне пригодны для прогнозирования соответствующих процессов обычными методами, если увеличение их объема не
будет слишком большим.
135
Методика получения рассматриваемых рядов состоит из нескольких этапов:
1. Составляется система (2.5) для увеличенного порядка q .
2. Эта система формально может решаться с помощью соотношения (7.1), если правильно устранить особенность квадратной матрицы
X t X . Для этого, в отличие от п. 1.1, можно ввести небольшие случайные изменения во все ее компоненты. Величина изменений должна
иметь порядок RND*10-7.
3. С помощью формулы (7.1) определяем один из возможных и
весьма различных вариантов коэффициентов характеристического
уравнения (2.4) и находим корни этого уравнения. Если величина S
приблизилась к единице, по сравнению с найденной раньше, она запоминается вместе с коэффициентами данного уравнения.
4. Вне зависимости от результата п.3 опять возвращаемся к п.2 до
тех пор, пока оптимальная величина S не перестанет уменьшаться.
Тем самым реализуется, известный из литературы как метод «парашютистов», процесс поиска глобального минимума целевой функции.
В результате находятся расширенное уравнение (2.3) и соответствующий ему ряд (2.2), максимально близкие к полустационарным. Величины отклонений этого ряда от исходных точек имеют тот же порядок, что и случайные изменения матрицы в п.2.
В изложенном подходе решение находится быстро и с достаточно
высокой точностью. Однако возможны и другие способы решения
этой задачи. Например, хорошие результаты можно получить методом
случайных вариаций дополнительных начальных или конечных точек.
Стартовые значения этих точек находятся с помощью предварительного прогнозирования, а их количество определяется заданной степенью увеличения объема ряда. После завершения вариаций, новые значения конечных точек могут сразу использоваться в качестве одного
из вариантов уточненного прогноза. Однако здесь требуется большая
работа по выбору хороших вариантов решений.
7.6. Методы прямого получения ряда
Для того, чтобы по исходным точкам получить все неизвестные
величины ряда (2.2) не требуется, вообще говоря, привлечения теории
разностных уравнений. В самом общем виде постановка задачи выглядит следующим образом: по последовательным точкам x0 = x(t0), x1=
= x(t1), … , xw = x(tw) найти конечный ряд вида:
136
x(t ) 
q
a
i
cit ,
(7.16)
i 1
где ai – постоянные коэффициенты,
ci – действительные или комплексно сопряженные числа (корни
ряда),
t – аргумент (обычно время),
q – размер (порядок) ряда,
имеющий минимальное отклонение от исходных точек.
Точное решение задачи для равноотстоящих точек и ряда общего
вида приведено в работе [17]. Для реализации этого подхода требуются большие вычислительные затраты. Кроме того, метод не пригоден
для отыскания практически важных приближенных решений для процессов с шумами.
Метод приближенного решения для почти стационарных процессов рассмотрен в работе [13]. Он базируется на последовательном
подборе параметров отдельных членов ряда по принципу их минимального отклонения от оставшихся в результате предыдущих подборов долей исходных точек. Проверка показала, что метод дает возможность строить ряды для процессов любого типа. Однако точность
этих рядов получается неоправданно низкой, несмотря на большое
число компонент q . В результате их прогнозирующие свойства оказываются недостаточно хорошими (см. пример в п. 5.4).
Вариант точного решения для равноотстоящих точек и стационарных корней (периодических компонент с некратными частотами)
описан в работе [24] на стр. 693. Однако в решении использованы
редко встречающиеся на практике условия стационарности исходной
точечной последовательности. Метод пригоден также для получения
приближенных решений. Углубленная проверка этого варианта не
проводилась.
Для получения ряда любого типа можно использовать часто
встречающийся факт почти равномерного распределения всех фаз
корней в промежутке от 0 до  . После выбора порядка q задается
начальное равномерное распределение фаз корней с единичными модулями. Фаза первого корня принимается нулевой (постоянная составляющая), а фаза последнего полагается равной  (знакопеременная составляющая неизменной амплитуды). Далее обычным методом
вычисляются коэффициенты ряда ai и производится его оптимизация
137
по всем исходным точкам. После дополнительных преобразований по
методике данной работы прогнозирующие свойства такого ряда оказываются, как правило, вполне удовлетворительными. Однако использование в процессе решения задачи оптимизационной процедуры из
нетипичной стартовой точки снижает достоверность конечного результата.
В итоге приходится констатировать, что все разработанные и известные из литературы? и методы прямого получения ряда не обеспечивают такого же качества прогноза, какое дает общий подход, описанный в работе.
7.7. Сравнение и усреднение нескольких рядов
Сравнение нескольких результирующих рядов позволяет повысить качество итогового прогноза. На этом этапе можно выявить и
исключить аномальные варианты (ряды), определить и сравнить между собой информационные и шумовые компоненты рядов, выбрать
наиболее подходящий итоговый ряд и т. д.
Усреднение нескольких рядов обеспечивает получение статистически более достоверного окончательного варианта описания процесса. Это особенно важно в случае больших шумов исходных точек или
не оптимального их количества.
Сравнение фаз корней рационально использовать для стационарных рядов. В случае полустационарных или нестационарных рядов
лучше находить отклонения в виде относительных разностей комплексных корней. При сравнении полезно определять так же номера
наиболее близких корней двух рядов. Родственные информационные
составляющие всегда имеют наименьшие отличия корней, в то время
как шумовые компоненты дают гораздо больший разброс их значений.
При этом, не следует сравнивать коэффициенты родственных компонент, которые могут иметь гораздо большие колебания от ряда к ряду.
Сравнение рядов в целом виде удобно проводить по их значениям
в моменты времени, соответствующие исходным точкам и отдельно –
по точкам прогноза. В этих областях определяются общие относительные отклонения рядов друг от друга. Можно сравнивать ряды
различных типов и порядков. Малые различия в области исходных
точек не означают, вообще говоря, сходства прогнозов рядов. Это
надо учитывать при окончательном отборе вариантов.
Средний ряд по нескольким исходным удобно находить через
усредненные точки этих рядов. Обычно средние значения находятся
138
для моментов времени, относящихся к исходным точкам. Затем по
средним точкам строится новый ряд соответствующего типа и порядка. Точность аппроксимации этого ряда всегда получается достаточно
хорошей, если его порядок равен максимальному среди усредняемых
рядов. Наилучшие результаты достигаются, когда порядки исходных
рядов одинаковы, а сами ряды получены по различным перспективным методикам. Важным качеством усредненного ряда является то,
что его точки обычно соответствуют исходным с меньшим уровнем
случайных шумов. Здесь появляется возможность оценить погрешности задания отдельных точек и выделить точки с большими отклонениями. В дальнейшем можно сформировать и использовать исправленную последовательность исходных точек.
7.8. Уравнения в конечных разностях
Сокращение объема вычислений коэффициентов ряда и ликвидация возможной вычислительной неустойчивости иногда достигаются
путем использования конечных разностей вместо отдельных значений
точек процесса. Эквивалентная форма уравнения может быть записана
в терминах конечных разностей xi  xi  xi 1 :
x p1k  f p x pk  f p1x p1k    f1x1k  0 .
(7.17)
Соответствующий этому уравнению характеристический многочлен имеет следующий вид [38]:
c  1 f c  c  1 c p  f p c p1  f p1c p2    f 2c  f1 .
(7.18)
Формула для вычисления коэффициентов fi прямо следует из
уравнения (7.17), если известны начальные точки процесса x0, x1 , ...,
xw. Полагая k =0, 1, …, w-p-1, получим точное решение системы линейных уравнений относительно неизвестных коэффициентов fi для
p = w / 2:
139
1
x2
 x p   x p 1 
 f1   x1
 f   x
x3
 x p 1  x p  2 
2
 2  

 , (7.19)
   

     
  
 

 f p  xw p xw p 1  xw1   xw 
или в сокращенном варианте: f=X-1x. Конечно, симметричная квадратная матрица Ганкеля Х не должна быть особенной. Допускается так
же приближенное решение для порядка p < w / 2 ( см. п. 2.2).
Если корни ci характеристического многочлена (7.18) не кратные,
они дают ряд общего вида с явно выраженной постоянной составляющей:
x k  a0 
p
a c
k
i i
.
(7.20)
i 1
Рассмотрим в данной постановке задачи вычисление коэффициентов ряда. В начале следует остановиться на всегда присутствующем
в многочлене (7.18) корне с0 = 1, определяющем величину а0. Постоянную составляющую можно найти без определения корней ci. Для
этого введем новую переменную yk= xk – a0 , то есть исключим величину a0 с ее единичным корнем. Новое разностное уравнение для этой
переменной запишется на основе многочлена (7.18), остальные корни
которого сохраняются для нее в прежнем виде:
y pk  f p y p1k    f 2 y1k  f1 yk  0 .
(7.21)
Отсюда можно определить величину а0:
a0 
x p  k  f p x p 1 k    f 2 x1 k  f1 xk
1  f p  f p 1    f 2  f1
,
(7.22)
где k = 0, 1, 2,…,w – р.
Практика показывает, что хорошая точность вычислений достигается при полусумме результатов для k = 0 и k = w – p, то есть при
использовании всех исходных точек процесса.
Высокую точность расчета остальных коэффициентов при существенно меньших затратах можно получить после применения метода,
подобного использованному для вывода формулы (7.22). Зададим но140
вую переменную zk(i )  xk  a0  ai cik , не содержащую единичного корня и корня ci. Для нее будет справедливо следующее разностное уравнение:
(7.23)
z (pi)1k  f p(i)1z (pi) 2k    f 2(i ) z1(i )k  f1(i ) zk(i )  0 .
Соответствующий этому выражению характеристический многочлен находится из общего многочлена (7.18):
f (i ) (c) 
f (c)
 c p1  f p(i )1c p2    f c(i )c  f1(i ) .
c  ci
(7.24)
Его коэффициенты легко определяются по рекуррентным формулам (7.5) при p = q с помощью коэффициентов общего многочлена f(c)
(см. (7.18)).
В результате из уравнения (7.23) при k = 0, 1, …, w – p + 1 можно
найти:
ai 
y p1 k  f p(i )1 y p 2k    f 2(i ) y1k  f1(i ) yk
cik (cip1  f p(i )1cip2    f 2(i ) ci  f1(i ) )
,
(7.25)
где yj = xj - a0.
При этом выражение в скобках знаменателя легко вычисляется
без возведения корня ci в большую степень:
f (i ) (ci )  (ci  c1 )(ci  c2 )(ci  ci1 )(c1  ci1 )(ci  c p ).
(7.26)
Использование формулы (7.25) дает дополнительное упрощение,
связанное с наличием комплексно-сопряженных пар корней ci. Коэффициенты ai для этих пар так же будут комплексно-сопряженными и
могут быть найдены одновременно. Кроме того, все коэффициенты
лучше вычислять для двух крайних значений параметра k и брать их
среднее значение.
141
ЗАКЛЮЧЕНИЕ
Серьезным препятствием на пути развития и применения разработанного метода прогнозирования является недостаточно высокое
быстродействие современных ПЭВМ. В результате ограничивается
количество вариантов расчетов, затягивается поиск оптимального решения задачи и, как следствие, снижается точность и достоверность
прогнозов.
Ситуация осложняется также и тем, что некоторые правила и рекомендации, представленные в работе, имеют статистический характер. Это требует проверки их эффективности при решении конкретных задач.
Тем не менее, высокая результативность разработанного метода
прогнозирования определяет хорошие перспективы его использования. Это касается в первую очередь линейных и нелинейных детерминированных процессов, а также случайных процессов с достаточно
большой детерминированной составляющей. Чем больше доля этой
составляющей, тем меньшая степень подавления шумов требуется для
решения задачи с заданной точностью и тем больше вероятность
успешного прогнозирования не только средних, но и мгновенных значений процессов.
Дальнейшее совершенствование изложенного в работе метода
связано с углубленным рассмотрением следующих важных проблем:
1. Улучшение оценки достоверности и точности прогнозов.
2. Ускорение поиска и увеличение надежности определения глобального экстремума при решении оптимизационных задач.
3. Выбор оптимального количества исходных точек, обеспечивающего наилучшую точность и достоверность прогнозов.
4. Более эффективная нейтрализация влияния шумов и революционных воздействий большой величины на точность прогнозов.
5. Оптимизация алгоритмов поиска первичного ряда заданного
размера с минимальным отклонением от существенно неравноотстоящих исходных точек.
6. Получение полных стационарных и полустационарных рядов
минимального объема.
7. Снижение вычислительных затрат для выполнения одновременного расчета многих взаимосвязанных процессов путем снижения порядка разностных уравнений, входящих в исходную систему.
142
8. Разработка эффективных методов определения неполного ряда
максимальной точности по различным критериям его приближения к
исходным точкам.
9. Поиск более надежных методов прогнозирования мгновенных
значений процессов с существенными шумами исходных точек.
10. Широкое использование неоднородных, параметрических и
нелинейных разностных уравнений при построении комбинированных
рядов, содержащих соответствующие нестандартные компоненты.
11. Разработка комбинированных подходов к решению основных
задач работы с использованием других направлений теории прогнозирования, например методов физического моделирования или нейронных сетей.
143
ЛИТЕРАТУРА
1. Алексеев О. Г. Комплексное применение методов дискретной
оптимизации. М.: Наука, 1987. 248 с.
2. Аоки М. Введение в методы оптимизации / Пер. с англ. М.:
Наука, 1977. 344 с.
3. Ахиезер Н. И. Лекции по теории аппроксимации. М.: Наука,
1965. 325 с.
4. Бари Н. К. Тригонометрические ряды. М.: Физматгиз, 1961.
5. Бокс Д., Дженкинс Г. Анализ временных рядов. Прогноз и
управление. М.: Мир, 1974. 406 с.
6. Брайтер Г. В., Пановский Г. А. Статистические методы в метеорологии. Л.: Госметеоиздат, 1967. 242 с.
7. Воеводин В. В., Кузнецов Ю. А. Матрицы и вычисления. М.:
Наука, 1984.
8. Воробьев Н. Н. Теория рядов. 6-е изд. СПб.: Изд-во Лань, 2002.
408 с.
9. Гантмахер Ф. Р. Теория матриц. М.: Наука, 1967. 576 с.
10. Горбатов В. А. Фундаментальные основы дискретной математики. М: Наука, 1999. 174 с.
11. Добров Г. М. Прогнозирование науки и техники. М.: Наука,
1969. 208 с.
12. Зангвилл У. И. Нелинейное прогнозирование. М.: Советское
радио, 1973.
13. Ивахненко А. Г. долгосрочное прогнозирование и управление
сложными системами. Киев: Техника, 1975. 312 с.
14. Каспин В. И., Лисичкин В. А. Понятийный аппарат прогностики. // В сб. “Соревнование двух систем”. М.: Наука, 1971. 566 с.
15. Кацнельсон Л. З. Эрмуша А. Е. Эффективный адаптивный алгоритм оптимизации для нелинейных задач метода наименьших квадратов // Известия ВУЗов: Радиоэлектроника, №6, 1989, с. 84–87. схем.
Владикавказ: Терек, 1998. 178 с.
16. Кольвах В. Ф., Кольвах Д. В. Расчет и оптимизация электронных схем. // Владикавказ, изд. “Терек”, 1998, 178 с.
17. Кольвах В. Ф., Кольвах Д. В. Расчет процессов в сложных системах // В сб. “Труды СКГТУ”. Владикавказ: Терек, Вып. 9, 2002,
С. 205–212.
18. Кольвах Д. В., Кольвах В. Ф. Прогнозирование процессов в
сложных системах с помощью комбинированных рядов // В сб. РАН
“Труды молодых ученых” Владикавказ: Терек, №1, 2003. С. 33–39.
144
19. Кольвах Д. В., Кольвах В. Ф. Влияние погрешностей исходных
точек на точность прогнозирования. //В сб. РАН “Труды молодых
ученых”. Владикавказ. № 2, 2003. С.31–35.
20. Кольвах В. Ф., Кольвах Д. В. Прогнозирование стационарных
процессов с помощью тригонометрических рядов с некратными частотами // В сб. РАН “Труды молодых ученых”. Владикавказ: Терек,
№ 2, 2004.
21. Кольвах В. Ф. Прогнозирование сложных процессов с помощью комбинированных рядов. Владикавказ: Терек, 2006. 231 с.
22. Кольвах Д. В., Кольвах В. Ф. Анализ процессов с помощью
теоремы Шура // В сб. РАН “Труды молодых ученых”. Владикавказ:
Терек, № 2, 2006.
23. Кольвах В. Ф., Бузаров М. М. Использование неоднородных
разностных уравнений в методе комбинированных рядов // В сб.
“Труды СКГТУ: Владикавказ: Терек, вып. 18, 2011, С. 172–174.
24. Корн Г., Корн Т. Справочник по математике для научных работников и инженеров / Пер. с англ. М.: Наука, 1976. 304 с.
25. Куликов Н. К. Многофакторное прогнозирование на основе
функций с гибкой структурой // В кн. “Основные проблемы и задачи
научного прогнозирования“. М., 1972. 151 с.
26. Курош А. Г. Курс высшей алгебры. М.: Наука, 1971. 432 с.
27. Лисичкин В. А. Теория и практика прогностики. М.: Наука,
1972. 224 с.
28. Налимов В. В. Теория эксперимента. М.: Наука, 1971. 207 с.
29. Песаран М., Слейтер Л. Динамическая регрессия: Теория и
алгоритмы / Пер. с англ. М.: Финансы и статистика, 1984. 301 с.
30. Прудников А. П. и др. Интегралы и ряды, специальные функции. М.: Наука, 1983. 750 с.
31. Пугачев В. С. Введение в теорию вероятностей. М.: Наука,
1968. 367с.
32. Пугачев В.С. Теория случайных функций. М.: Физматгиз,
1960. 884 с.
33. Теория прогнозирования и принятия решений / Под ред.
Саркисяна С. А. М.: Высшая школа, 1977. 351 с.
34. Турецкий А. Х. Теория интерполирования в задачах. Минск:
Высшая школа, 1968. 320 с.
35. Уайлд Д. Дж. Методы поиска экстремума. М.: Наука, 1967.
36. Уолш Дж.Л. Интерполяция и аппроксимация рациональными
функциями в комплексной области. М.: Иностранная литература,
1961. 508 с.
145
37. Хорн. Р., Джонсон Ч. Матричный анализ / Пер. с англ. М.:
Мир, 1989.
38. Цыпкин Я. З. Теория линейных импульсных систем. М.: Физматгиз, 1963. 968с.
39. Чуев Ю. В., Михайлов Ю. Б. и др. Прогнозирование количественных характеристик процессов. М.: Советское радио, 1975.
40. Шиголев Б. М. Математическая обработка наблюдений. М.:
Физматгиз, 1962. 344с.
41. Эйрес Р. Научно-техническое прогнозирование и долгосрочное планирование. М.: Мир, 1971.
146
Приложение
ПРОГРАММА APNR12N6
1. Общие замечания
Программа является универсальным расчетным модулем, позволяющим выполнять прогнозирование процессов практически любой
сложности. В ней реализованы все эффективные алгоритмы и методики, изложенные в работе.
Программа написана на языке BASIC применительно к версии
3.50 PowerBASIC Compiler. Быстродействие программы соизмеримо
со скоростью вычислений на языке С++.
Программа рассчитана на пользователя, знакомого с основными
положениями и выводами работы. Терминология и пути решения задач, заложенные в программу, соответствуют материалам отдельных
глав.
Для увеличения скорости работы в программе используется только глобальная система переменных.
Программа воспринимает на входе или формирует с помощью
оператора файл данных, содержащий значения времени (аргумента) и
самого процесса (функции). Абсолютные значения отдельных точек
процесса должны, по возможности, находиться в диапазоне 0–1, что
осуществляется с помощью масштабирования. Могут использоваться
равноотстоящие и неравноотстоящие точки процесса с последующей
обработкой по методикам глав 3, 6.
Результат расчета в виде отдельных компонент результирующего
ряда может быть записан вместе с исходными точками в выходной
файл для повторного использования на входе программы.
Все этапы расчетов иллюстрируются графиками, таблицами и
данными по точности выполнения отдельных операций. Это обеспечивает наглядность процесса обработки и позволяет избежать ошибок,
возникающих из-за возможной численной неустойчивости некоторых
алгоритмов. Путь получения результата запоминается и записывается
в выходной файл. Этот путь может быть показан при необходимости.
Системные требования к программе минимальны и сводятся к
наличию оболочки MS–DOS 6.22 или операционной системы Windows
XP.
147
2. Настройки и управление
Основные константы, определяющие настройки программы:
V0 – уровень дополнительных шумов для исходных точек;
V1 – верхний предел вариаций параметров при оптимизации ряда;
V2 – нижний предел вариаций параметров при оптимизации ряда;
V3 – относительная ширина поля графика, соответствующая области исходных точек;
V5 – граничный уровень уменьшения функционала, ниже которого вариация считается неудачной;
V6 – точность отделения кратных корней при определении коэффициентов ряда;
V7 – коэффициент дополнительного уменьшения глубины вариаций для постоянной составляющей или мнимой части корней ряда;
V8 – число циклов вариаций, после которого производится вывод
на экран
нового графика и результатов оптимизации;
V9 – степень уменьшения глубины вариаций при переходе к очередному шагу оптимизации;
R1 – максимально возможное количество членов ряда, определяющее предельный размер всех основных массивов;
Все указанные константы можно задавать отдельно в тексте программы или изменять через различные меню в процессе ее работы.
После любой корректировки текста программы требуется его компиляция.
При запуске программы, по ходу ее работы осуществляются дополнительные настройки и выбирается необходимый путь получения
и обработки исходных данных. При этом появляются соответствующие надписи и указания:
Максимальное количество точек – позволяет изменить размеры
массивов.
Изменение настоек – осуществляется выход в меню задания основных констант с последующим возвратом.
Функции – 0, таблицы – 1 – производится переход в контрольный
режим формирования и сопровождения исходных данных с помощью
дополнительной функции из специальной подпрограммы FUN. Эта же
функция отображается на графике процесса тонкой белой линией. В
любом случае можно использовать исходный файл, вводимый извне.
Файл данных – вводится имя файла, хранящегося в памяти. Формирование нового, еще не существующего файла возможно, если имя
148
файла не вводить. После появления таблицы значений исходных точек
открывается меню исходного файла:
0 – продолжение счета – производится выход из меню.
V – выход в файл – без прерывания работы программы производится выход в исходный файл для контроля или исправления данных.
Z – запись точек sk, xk – для записи под любым именем вновь
сформированного или введенного из памяти файла.
E – исключение начальных xk – служит для удаления нескольких
первых точек с соответствующим смещением к нулю аргументов
оставшихся точек. Удаленные точки не могут быть восстановлены в
дальнейшем.
T – исключение, учет конечных xk – служит для вывода или ввода
в расчет нескольких конечных точек. Эти точки хранятся в памяти. На
графике процесса исключенные точки отображаются желтым цветом.
Обычно это точки пробного прогноза.
S – усреднение xk – обеспечивает сглаживание исходных данных
методом скользящего среднего.
R – обращение xk – необходимо для расчета реконструкции процесса. При этом первые точки становятся последними.
Если исходные данные содержат записанный раньше ряд, после
выхода из меню файла производится распечатка компонент ряда с соответствующими его параметрами и выход в основное меню. В противном случае программа приступает к расчету коэффициентов fi разностного уравнения. После появления соответствующей надписи порядок уравнения q >=< … необходимо задать величину порядка, которая может быть меньше, равна или больше показанного в надписи
значения для полного ряда минимального объема. В зависимости от
четности количества исходных точек или значения порядка, в соответствии с теорией может вводиться величина одного действительного корня.
После расчета коэффициентов fi и распечатки таблицы прогноза
появляется меню дополнительной обработки этих коэффициентов:
1 – Уменьшение dfi – дополнительная оптимизация коэффициентов уравнения при низкой точности их первоначального вычисления
по общему алгоритму. Обычно применяется в случае задания избыточного числа точек для строго детерминированных процессов.
2 – Включение стабилизации – может потребоваться при слишком большом порядке уравнения q для данного числа точек w. Здесь
149
методом коррекции главной диагонали матрицы решается примерно
та же задача, что и в предыдущем пункте меню.
3 – Медленная для малого q – позволяет провести оптимизацию
коэффициентов разностного уравнения небольшого, в сравнении с
максимально возможным, порядка по критерию улучшения его дальнего прогноза.
4 – Для большого q – то же, что и в предыдущем пункте, но используется для уравнений порядка, близкого к предельно возможному.
5 – Для периодических процессов – итерационный метод преобразования значений коэффициентов fi по критерию приближенного
равенства родственных точек прогноза на соседних квазипериодах.
Обеспечивает заметное улучшение итоговых результатов для процессов с шумами и не требует больших вычислительных затрат.
6 – Для полустационарных процессов – итерационный метод оптимизации коэффициентов уравнения по критерию приближения максимального значения модулей корней характеристического многочлена к единице. Весьма эффективный и быстродействующий метод
улучшения прогноза как по уравнению, так и по результирующему
ряду.
О необходимости дополнительной обработки коэффициентов
уравнения можно судить по характеру процесса, первоначальной точности определения этих коэффициентов dfi или точности прогноза
первых восьми точек с помощью этого уравнения.
Следующие этапы работы – определение корней характеристического уравнения и коэффициентов ряда. После их завершения распечатывается подробная таблица компонент ряда, некоторые наиболее
важные его параметры и показатели точности отдельных этапов его
получения:
W – номер последней исходной точки.
PT – число оставленных пробных точек.
q – количество компонент ряда или порядок разностного уравнения.
Df – значение определителя при расчете коэффициентов разностного уравнения.
QR-итераций – среднее число итераций для определения одного
корня характеристического уравнения.
Da – значение определителя при расчете коэффициентов ряда.
КрСт – минимальный и максимальный модули корней ряда.
150
QF – номера и относительное отличие двух самых близких компонент ряда.
dfi – погрешность определения коэффициентов уравнения.
dCi – погрешность определения корней уравнения.
E – относительная погрешность прохождения ряда через исходные точки.
G – критерий гладкости хода непрерывной кривой ряда между
отдельными исходными точками. При слишком большой величине G
первичный ряд не пригоден для дальнейшего использования.
В низу таблицы символически показано распределение по пяти
колонкам значений модуля и аргумента корня, модуля и аргумента
коэффициента, а так же вес каждой компоненты ряда.
С выводом на экран основного меню и дополнительных параметров ряда заканчивается предварительный этап работы. Отметим следующие параметры:
P – максимально возможный размер точного ряда минимального
объема.
Ср Зн – среднее значение исходной точечной последовательности.
Нест Qi<=… – тип ряда и максимальный модуль его корней.
E – относительная погрешность прохождения ряда через исходные точки.
Ea8 – относительная погрешность ряда для последних восьми точек.
q – максимальное и текущее число компонент ряда.
P0 – то же с учетом идентичности компонент с сопряженными
корнями. Здесь в скобках показано количество стационарных компонент.
Np – общее число неизвестных величин в текущем ряде. Для полного ряда минимального объема и случайного процесса существует
условие: Np = W + 1.
Пункты главного меню:
ET – изменение типа ряда и L. Обеспечивается перевод ряда из
одного типа в другой путем соответствующего преобразования модулей всех корней. В любом случае фазы корней сохраняются неизменными. Операция завершается вычислением новых коэффициентов ряда.
OP – оптимизация ряда по Ai, Ci. Запускается итерационный процесс увеличения точности ряда до заданного уровня методом поэле151
ментных вариаций действительных и мнимых частей корней и коэффициентов ряда. Тип ряда сохраняется неизменным.
CD – определение шумовых Ci. Определяется реакция корней ряда на дополнительные небольшие шумы исходных точек. Набирается
статистика из различных вариантов расчетов. В итоговой таблице показываются изменения корней и выделяются компоненты, удаление
которых может повысить точность прогноза.
OT – задание опорных точек. позволяет, наряду с основными, использовать дополнительные опорные точки, расположенные в любом
месте зоны прогноза. Эти точки участвуют при вычислении коэффициентов ряда и его оптимизации.
KK – удаление кратных Ci и L. Осуществляет удаление явно
кратных корней, выделенных в подпрограмме CEN, с последующим
пересчетом коэффициентов ряда. Присутствие в ряде таких компонент, а так же компонент с достаточно близкими корнями (см. параметр QF) существенно понижает точность прогноза стационарных
процессов.
VX – путь обработки данных. Показывает основные этапы получения и преобразования текущего или введенного из файла ряда.
DP – итерации по точности прогноза. Реализует один из разработанных итерационных методов повышения адекватности ряда заданному процессу. Обеспечивает эффективную обработку как первичного, так и вторичных рядов путем их многократного полного пересчета
с использованием некоторого количества точек прогноза.
VV – переход к началу счета. Производится переход к началу обработки выбранного файла с занулением полученных ранее результатов.
SR – сравнение рядов. Осуществляет сравнение наиболее близких
пар корней текущего ряда и ряда зафиксированного в памяти. Работает после применения операции W данного меню. Позволяет оценить
сходство информационных и различие шумовых компонент этих рядов.
DT – исключение, учет конечных Xk. Позволяет добавить пробные точки в основную последовательность или, наоборот, отделить их
от нее. Применяется для перехода от пробного прогноза к основному.
NV – изменение настроек. Обеспечивает оперативное изменение
всех основных констант настройки и режимов работы программы.
DR – прямое получение ряда. Реализован один из алгоритмов получения приближенного ряда по исходным точкам без определения
коэффициентов разностного уравнения. Для первичного ряда задается
152
равномерное распределение фаз корней с единичными модулями и
производится оптимизация этого ряда как нестационарного. Является
эффективным методом решения задач для нерегулярных исходных
данных.
F – прогноз через ряд. Делается прогноз заданного количества точек с расчетами погрешностей различного вида.
N – замена файла данных. Переход к новым исходным данным с
сохранением или без сохранения текущего ряда. Ряд, помещенный в
память с помощью опции W остается неизменным.
T – итерации по точности ряда. Осуществляется увеличение точности рядов, полученных для данных любого типа. Ряды с неравноотстоящими точками улучшаются быстро при хорошей устойчивости
процедуры.
L – вычисление Ai. Новый расчет коэффициентов ряда.
U – таблица Xk, обращение Xk и ряда. Выводится таблица исходных данных. Возможно изменение данных и текущего ряда для проведения реконструкции процесса.
D – изменение P0, удаление Ci. Производится удаление или добавление отброшенных ранее компонент с малым весом. Возможно
селективное удаление любых компонент ряда. Все исключенные компоненты сохраняются и могут быть использованы в дальнейшем.
Z – запись результатов. Предлагается несколько вариантов записи
в отдельные файлы результатов расчета с целью их использования для
решения других задач.
V – компоненты Qi, Fi, Gi, Hi, вес. Выводится обычная таблица
компонент и параметров ряда.
S – исключение аномальных Ci. Используется для исключения
компонент, имеющих слишком большие или малые модули корней.
Уровни исключения могут задаваться так, чтобы исключить только
одну компоненту ряда.
W – сохр., вызов, обмен. Производится запись текущего ряда в
специально выделенные массивы, либо вызов записанного ряда вместо текущего, либо обмен текущего и записанного рядов.
P – коррекция Fi, задание Qi = 1 и L. Возможна коррекция фаз и
модулей корней отдельных информационных компонент, период которых должен точно совпадать или быть кратным квазипериоду исходного процесса. Определение таких компонент производится автоматически. Процедура завершается вычислением новых коэффициентов ряда.
153
R – возврат к обработке fi. По корням текущего ряда строятся коэффициенты разностного уравнения и производится переход к
начальной части программы.
Переход к построению графика процесса так же осуществляется
из основного меню через клавишу «ввод» без набора дополнительного
символа. Затем задаются или подтверждаются имеющиеся в программе параметры графика. После вывода графика или завершения процесса оптимизации ряда можно ввести любое положительное значение
аргумента для расчета соответствующего значения ряда и получения
дополнительной информации. Выход из графического режима возможен с помощью той же клавиши.
Прерывание любого итерационного процесса производится нажатием клавиши «B». С помощью этой же клавиши возможен запуск
продолжения оптимизации ряда после ее принудительного останова
для изучения промежуточных результатов.
3. Основные подпрограммы
Реализация типовых расчетных процедур и предложенных в работе алгоритмов осуществляется в основном с помощью специализированных расчетных модулей – подпрограмм. Для облегчения работы
с текстом программы ниже приведены наиболее важные из них:
SWP, SWK, FIS – сортировка компонент ряда по их весу, т. е.
вкладу в общую сумму ряда.
SWR, VWR, RWR, CWR – обслуживание запоминания, вызова, и
т. д. ряда.
GRF – управление построением графика.
GIS – построение гистограммы распределения модулей и фаз
корней ряда.
KOA – вычисление коэффициентов ряда для любого расположения исходных точек.
FSQ, FSX – вычисление значений ряда во всех заданных точках и
общих погрешностей аппроксимации.
FSY, FSZ – вспомогательный расчет значений компонент ряда
при его оптимизации.
ISE, IST, REV, USX – различные преобразования исходной числовой последовательности.
QPP – печать таблицы исходных точек.
154
ODO, PDO, PDE – оптимизация коэффициентов разностного
уравнения.
PFO, VFO – вычисление коэффициентов разностного уравнения
по корням ряда и печать этих коэффициентов.
PRO – печать общей таблицы параметров компонент ряда.
GLD – определение гладкости хода кривой ряда между отдельными исходными точками.
RDR, RDC, PDC – преобразование и исключение компонент ряда.
QRU – Решение характеристического уравнения модифицированным методом Бэрстоу.
KOR – коррекция диагональных элементов матрицы для устранения ее особенности перед обращением.
OBF – вычисление коэффициентов полного или приближенного
разностного уравнения по равноотстоящим исходным точкам.
OBR – обращение матрицы модифицированным методом Гаусса.
SET, PRF, PRG, PRT – построение отдельных элементов графика.
FUX – вычисление значения ряда в любой заданной точке.
KIS – запись в отдельный файл исходных точек и результирующего ряда.
KOS – ввод исходных точек и ряда из файла данных.
CEN – определение кратных корней и соответствующих им коэффициентов кратности.
FUN – вычисление значений образующей функции для работы с
контрольными примерами.
4. Текст программы
CLS
PRINT
COLOR 10: PRINT " APNR12N6."; : COLOR 7
PRINT " АППРОКСИМАЦИЯ КОМБИНИРОВАННЫМ РЯДОМ"
PRINT
PRINT " Основная программа. Число исходных точек W+1. Любой"
PRINT " порядок q разностного уравнения. Получение рядов"
PRINT " для неравноотстоящих точек. Оптимизация уравнения и"
PRINT " ряда. Учет опорных точек. Выделение информационных"
PRINT " составляющих. Оценка качества прогноза по точности"
PRINT " аппроксимации последних Ea или пробных En точек."
PRINT
155
PRINT " Xq+k = fq*Xq-1+k + fq-1*Xq-2+k +...+ f2*X1+k + f1*Xk"
PRINT
PRINT " Xk = S[Ai*k^mi*Ci^k] = S[Gi*k^mi*Qi^k*COS(Fi*k+Hi)]"
PRINT " Ci = E1i+j*E2i = Qi*EXP(j*Fi); i = 1, 2, ..., q"
PRINT " Ai = B1i+j*B2i = Gi*EXP(j*Hi); k = 0, 1, ..., W,..."
PRINT
DEFDBL A-Z
DIM R1 AS INTEGER, R2 AS INTEGER, V8 AS INTEGER
PI = 3.141592653589793#
V0 = .000001# 'УРОВЕНЬ ДОПОЛНИТЕЛЬНЫХ ШУМОВ ДЛЯ Xk
V1 = .001#: V2 = .00000001# 'ПРЕДЕЛЫ ВАРИАЦИЙ
V3 = .75 'ШИРИНА ПОЛЯ ГРАФИКА
V5 = .000001# 'ПОРОГ УЛУЧШЕНИЯ ПРИ ВАРИАЦИИ
V6 = .00005# 'ТОЧНОСТЬ ОТДЕЛЕНИЯ КРАТНЫХ КОРНЕЙ
V7 = .05# 'УМЕНЬШЕНИЕ ВАРИАЦИЙ В ПП. PE
V8 = 100 'ЧИСЛО ЦИКЛОВ ВАРИАЦИЙ
V9 = .5 'УМЕНЬШЕНИЕ ВАРИАЦИЙ
R1 = 150: R2 = 2 * R1
PRINT " МАКСИМАЛЬНОЕ ЧИСЛО ТОЧЕК -"; R2; : INPUT A$
IF A$ <> "" THEN R2 = VAL(A$): R1 = R2 / 2
DIM I AS INTEGER, J AS INTEGER, N AS INTEGER
DIM K AS INTEGER, L AS INTEGER, P AS INTEGER
DIM P1 AS INTEGER, M AS INTEGER, P0 AS INTEGER
DIM G AS INTEGER, W AS INTEGER, PQ AS INTEGER
DIM IT AS INTEGER, ITT AS INTEGER, O2 AS INTEGER
DIM I1 AS INTEGER, J1 AS INTEGER, P01 AS INTEGER
DIM I2 AS INTEGER, O6 AS INTEGER, O8 AS INTEGER
DIM P2 AS INTEGER, PT AS INTEGER, J2 AS INTEGER
DIM AD AS INTEGER, O9 AS INTEGER, P03 AS INTEGER
DIM O3 AS INTEGER, O4 AS INTEGER, O203 AS INTEGER
DIM O0 AS INTEGER, O20 AS INTEGER, O7 AS INTEGER
DIM P4 AS INTEGER, IP AS INTEGER, O10 AS INTEGER
156
DIM QS3 AS INTEGER, O5 AS INTEGER, OO AS INTEGER
DIM O1 AS INTEGER, KK AS INTEGER, QS AS INTEGER
DIM P02 AS INTEGER, P023 AS INTEGER, VS AS INTEGER
DIM GP AS INTEGER, YG AS INTEGER, XG AS INTEGER
DIM J3 AS INTEGER
DIM E(R1) AS INTEGER, E0(R1) AS INTEGER
DIM P(R1) AS INTEGER, P0(R1) AS INTEGER
DIM V(R2 + R2) AS INTEGER, G0(12) AS INTEGER
DIM DE AS EXT, UE AS EXT, YE AS EXT
DIM EE AS EXT, VE AS EXT, CE AS EXT
DIM AE AS EXT, U1E AS EXT, V1E AS EXT
DIM HUGE Y(R1, R1) AS EXT
DIM E1(R1) AS EXT, E2(R1) AS EXT
DIM B1(R1) AS EXT, B2(R1) AS EXT
DIM E3(R1) AS EXT, E4(R1) AS EXT
DIM B3(R1) AS EXT, B4(R1) AS EXT
DIM Z(R1) AS EXT, L(R1) AS EXT
DIM X3(R2 + 20) AS EXT, X4(R2 + 20) AS EXT
DIM X(R2 + 20), X2(R2 + 20)
DIM S(R2 + 20), S2(R2 + 20)
DIM Q(R1), F(R1)
DIM Q0(R1), F0(R1)
DIM G(R1), H(R1)
DIM C(R1), LG(42)
ON ERROR GOTO EOS
VS = 1
INPUT " ФУНКЦИИ - 0, ТАБЛИЦЫ - 1 "; O3
5
INPUT " ФАЙЛ ДАННЫХ "; FILE$
8
FOR I = 0 TO W + PT + O9
X(I) = 0: S(I) = 0
X2(I) = 0: S2(I) = 0
157
NEXT I
PT = 0: P2 = 0
N6 = 0: A = 0
O9 = 0: PQ = 8
IF FILE$ <> "" THEN
GOSUB KOS
X$ = X$ + " APNR12N6 " + FILE$ + " "
GOTO 12
END IF
X$ = " APNR12N6 "
INPUT " ВЕЛИЧИНА W "; W
O7 = 0
FOR I = 0 TO W
IF O3 = 0 THEN
S=I
GOSUB FUN
S(I) = S: X(I) = XS
ELSE
PRINT " S"; I; ", X"; I
INPUT S(I), X(I)
IF S(I) <> I THEN O7 = 1
END IF
S2(I) = S(I): X2(I) = X(I)
NEXT I
12
GOSUB QPP
RANDOMIZE 0
O$ = ""
19
GOSUB VPP
PRINT " 0 - ПРОДОЛЖЕНИЕ СЧЕТА"
PRINT " V - ВЫХОД В ФАЙЛ"
PRINT " Z - ЗАПИСЬ ТОЧЕК Sk, Xk"
PRINT " E - ИСКЛЮЧЕНИЕ НАЧАЛЬНЫХ Xk"
PRINT " T - ИСКЛЮЧЕНИЕ, УЧЕТ КОНЕЧНЫХ Xk"
PRINT " S - УСРЕДНЕНИЕ Xk"
PRINT " R - ОБРАЩЕНИЕ Xk"
INPUT A$
158
IF (A$ = "0" OR A$ = "") AND O5 = 1 THEN 880
IF A$ = "0" OR A$ = "" THEN 21
IF A$ = "Z" THEN N = 0: V4 = 0: AD = 4: GOSUB KIS: GOTO 19
IF A$ = "V" THEN
SHELL "EDIT.COM " + FILE$
INPUT " ВВОД ИЗ ФАЙЛА "; A
IF A = 0 THEN 19
GOTO 8
END IF
X$ = X$ + A$ + " "
IF A$ = "E" THEN GOSUB ISE
IF A$ = "T" THEN GOSUB IST
IF A$ = "R" THEN GOSUB REV
IF A$ = "S" THEN GOSUB USX
GOTO 19
21
PRINT " ПОРЯДОК q ><";
COLOR 10: PRINT P;
COLOR 7: INPUT P0
IF P0 = 0 THEN P0 = P
P02 = P0
IF P0 = P AND J3 = (W + 2) / 2 THEN
INPUT " ЗНАЧЕНИЕ Ci><0 "; ZK
IF ZK = 0 THEN ZK = 1
END IF
X$ = X$ + "P0" + STR$(P0) + " "
22
IF O2 = 0 AND P0 <= P THEN
O4 = 0
GOSUB OBF
ELSE
O4 = 1
GOSUB OBF
FOR I = 1 TO P0
159
L(I) = Z(I)
NEXT I
O4 = -1
GOSUB OBF
FOR I = 1 TO P0
Z(I) = (Z(I) + L(I)) / 2
NEXT I
END IF
23
A=0
GOSUB PDO
IF O5 <= 0 THEN
PRINT
COLOR 10
PRINT USING " dfi#.###^^^^"; Z00;
COLOR 7
PRINT ", ПРОГНОЗ ПО fi:"
Z=0
K=2
FOR I = W - P0 + 1 TO W - P0 + PQ
X=0
FOR J = 1 TO P0
X = X + Z(J) * X(I + J - 1)
NEXT J
S = P0 + I
X(S) = X
IF O3 = 0 THEN GOSUB FUN ELSE XS = X2(S)
PRINT TAB(K); "X"; S; USING "+.#####^^^^ "; X; XS;
Z = Z + ABS(X - XS)
K = K + 40
IF K = 82 THEN K = 2: PRINT
NEXT I
COLOR 10
PRINT TAB(42); "dX"; PQ; USING "+.###^^^^"; Z / PQ
COLOR 7
COLOR 10
PRINT " ОПТИМИЗАЦИЯ fi:"
160
COLOR 7
PRINT " 1 - УМЕНЬШЕНИЕ dfi,";
PRINT " 2 - ВКЛЮЧЕНИЕ СТАБИЛИЗАЦИИ,";
PRINT " 4 - МЕДЛЕННАЯ ДЛЯ МАЛОГО q,"
PRINT " 5 - ДЛЯ БОЛЬШОГО q,";
PRINT " 6 - ДЛЯ ПЕРИОДИЧ.ПРОЦЕССОВ,";
PRINT " 7 - ДЛЯ ПОЛУСТАЦ.ПРОЦЕССОВ"
INPUT A
IF A > 0 THEN X$ = X$ + "OP" + STR$(A) + " "
FOR I = 0 TO W + PQ
X(I) = X2(I)
NEXT I
IF A = 1 OR A = 7 THEN
IF A = 7 THEN
Z02 = 1
FOR I = 1 TO P0
Z02 = Z02 + Z(I) * Z(I)
NEXT I
Z02 = Z02 / 3
END IF
GOSUB PDO
GOSUB ODO
GOTO 23
END IF
IF A = 2 THEN O2 = 1: GOTO 22
IF A = 4 OR A = 5 THEN
N = W + 1 - P0
N = (N * N + N) / 2
GOSUB PDE
GOSUB ODO
FOR I = 0 TO W
X(I) = X2(I)
161
NEXT I
GOTO 23
END IF
IF A = 6 THEN
INPUT " ЧИСЛО ТОЧЕК НА ПЕРИОДЕ "; M
M=4*M
Z1 = 179.2 / (W * M)
INPUT " МНОЖИТЕЛЬ КОРРЕКЦИИ (1) "; X
IF X = 0 THEN X = 1
Z1 = Z1 * X
GOSUB PDO
GOSUB ODO
GOTO 23
END IF
END IF
PRINT " W"; W; " PT"; PT; " q"; P0;
IF DE < 1D-180 THEN COLOR 12
PRINT USING " Df#.##^^^^^ "; DE;
COLOR 7
L=0
EE = .000000000001#
860
L(P0) = 1
FOR K = 0 TO P0 - 1
L(K) = -Z(K + 1)
NEXT K
N = P0
TIM = TIMER
GOSUB QRU
GOSUB PFO
IF Z01 < EE THEN
PRINT " QR-ИТЕРАЦИЙ"; INT(Z / P0);
IF O5 > 1 THEN PRINT " "; A$; "-ИТЕРАЦИЙ"; O10;
ELSE
162
PRINT "*";
L=L+1
IF L >= 24 THEN 870
EE = 1.1 * EE
GOTO 860
END IF
870
GOSUB KRS
871
IF O5 = 2 OR O5 = 3 THEN
FOR I = 0 TO W
X(I) = X2(I)
S(I) = S2(I)
NEXT I
IF O5 = 2 THEN W = W - PQ: GOSUB VPP
END IF
GOSUB KOA
PRINT USING " Da#.##^^^^^ "; DE
880
IF VS = 1 THEN
P4 = P0
FOR I = 1 TO P02
P(I) = 7
NEXT I
END IF
895
SSS = 0
FOR I = 0 TO W + O9
X(I) = X2(I)
S(I) = S2(I)
SSS = SSS + ABS(X2(I))
NEXT I
900
GOSUB FSX
GOSUB GLD
GOSUB PRO
VS = 0
IF O5 = 2 THEN N = PQ: GOTO 951
163
IF O5 = 3 THEN 957
IF O5 = 4 THEN GOSUB RWR: A = 0: GOTO 948
INPUT A
LOCATE CSRLIN - 1
905
O5 = 0
PRINT
PRINT " APNR12N6 "; FILE$;
PRINT " W"; W; " P"; P;
PRINT USING " СР ЗН#.###^^^^"; SSS / (W + 1);
IF O2 > 0 THEN COLOR 14: PRINT " СТАБ fi"; : COLOR 7
IF O20 = 0 THEN PRINT USING " НЕСТ Qi<=#.####"; Z4;
IF O20 = 1 AND QS = 0 THEN PRINT " СТАЦ";
IF O20 = 1 AND QS = 1 THEN PRINT " П СТАЦ";
IF KK > 0 THEN COLOR 14: PRINT " КР КОРНЕЙ"; KK; : COLOR 7
PRINT
N = 0: L = 0
P01 = 0
FOR I = 1 TO P0
X = ABS(1 - Q(I))
IF E2(I) = 0 AND X < .000001 THEN N = N + 1: P01 = P01 + 1: L = L + 1
IF E2(I) = 0 AND X >= .000001 THEN N = N + 2: P01 = P01 + 1
IF E2(I) <> 0 AND X < .000001 THEN N = N + 3: P01 = P01 + 2: L = L + 1
IF E2(I) <> 0 AND X >= .000001 THEN N = N + 4: P01 = P01 + 2
NEXT I
COLOR 10
PRINT USING " E#.###^^^^ "; SS3 / SSS;
GOSUB EAP
PRINT LTRIM$(STR$(PQ));
PRINT USING "#.###^^^^"; DX; : COLOR 7
PRINT " q"; P01;
PRINT "("; LTRIM$(STR$(P02)); ")";
PRINT " P0"; P0;
PRINT "("; LTRIM$(STR$(L)); " ст)";
164
PRINT " Nр"; N; " W+1-Nр"; W + 1 - N
PRINT
PRINT " ET - ИЗМЕНЕНИЕ ТИПА РЯДА И L";
PRINT TAB(43); "F - ПРОГНОЗ ЧЕРЕЗ РЯД"
PRINT " OP - ОПТИМИЗАЦИЯ РЯДА ПО Ai, Ci";
PRINT TAB(43); "N - ЗАМЕНА ФАЙЛА ДАННЫХ"
PRINT " CD - ОПРЕДЕЛЕНИЕ ШУМОВЫХ Ci";
PRINT TAB(43); "T - ИТЕРАЦИИ ДЛЯ НЕРАВНООТСТОЯЩИХ Xk"
PRINT " OT - ЗАДАНИЕ ОПОРНЫХ ТОЧЕК";
PRINT TAB(43); "L - ВЫЧИСЛЕНИЕ Ai"
PRINT " KK - УДАЛЕНИЕ КРАТНЫХ Ci И L";
PRINT TAB(43); "U - ТАБЛИЦА Xk, ОБРАЩЕНИЕ Xk И РЯДА"
PRINT " VX - ПУТЬ ОБРАБОТКИ ДАННЫХ";
PRINT TAB(43); "D - ИЗМЕНЕНИЕ P0, УДАЛЕНИЕ Ci"
PRINT " DP - ИТЕРАЦИИ ПО ТОЧНОСТИ ПРОГНОЗА";
PRINT TAB(43); "Z - ЗАПИСЬ РЕЗУЛЬТАТОВ"
PRINT " VV - ПЕРЕХОД К НАЧАЛУ СЧЕТА";
PRINT TAB(43); "V - КОМПОНЕНТЫ Qi, Fi, Gi, Hi, ВЕС"
PRINT " SR - СРАВНЕНИЕ РЯДОВ И ПРОГНОЗОВ";
PRINT TAB(43); "S - ИСКЛЮЧЕНИЕ АНОМАЛЬНЫХ |Ci|>1"
PRINT " DT - ИСКЛЮЧЕНИЕ, УЧЕТ КОНЕЧНЫХ Xk";
PRINT TAB(43); "W - СОХРАНЕНИЕ, ВЫЗОВ, ОБМЕН РЯДОВ"
PRINT " NV - ИЗМЕНЕНИЕ НАСТРОЕК";
PRINT TAB(43); "P - КОРРЕКЦИЯ Fi, ЗАДАНИЕ Qi=1 И L"
PRINT " DR - ПРЯМОЕ ПОЛУЧЕНИЕ РЯДА";
PRINT TAB(43); "R - ВОЗВРАТ К ОБРАБОТКЕ fi"
INPUT A$
IF A$ = "" THEN A$ = "Q"
912
N7 = 0
FOR K = 0 TO W + O9
IF ABS(X2(K)) > N7 THEN N7 = ABS(X2(K))
NEXT K
N7 = 1.8 / N7
IF N6 = 0 THEN N6 = N7
IF A$ = "V" THEN 900
165
IF A$ = "Q" THEN GP = 0: GOSUB FSX: GOSUB GRF
IF A$ = "VV" THEN 916
IF A$ = "VX" THEN COLOR 12: PRINT X$: COLOR 7: GOTO 905
IF A$ = "F" THEN N = PQ: GOTO 951
IF A$ = "NV" THEN 952
IF A$ = "W" THEN 959
IF A$ = "U" THEN 928
IF A$ = "SR" THEN 946
X$ = X$ + A$
IF A$ = "ET" THEN 915
IF A$ = "OT" THEN 918
IF A$ = "DT" THEN GOSUB IST: GOTO 895
IF A$ = "Z" THEN 919
IF A$ = "DR" THEN 930
IF A$ = "D" THEN 934
X$ = X$ + " "
IF A$ = "L" THEN 921
IF A$ = "CD" THEN O10 = 0: GOTO 925
IF A$ = "KK" THEN I = 1: GOSUB DKK: GOTO 871
IF A$ = "OP" THEN O8 = 1: GOTO ORP
IF A$ = "DP" THEN O10 = 0: O5 = 2: GOTO 950
IF A$ = "R" THEN GOSUB VFO: GOTO 23
IF A$ = "S" THEN 953
IF A$ = "T" THEN O10 = 0: O5 = 3: GOSUB PRO: GOTO 957
IF A$ = "P" THEN J = 0: GOTO 943
IF A$ = "N" THEN 924
GOTO 905
915
'ET-----O20 = 1
PRINT " 0 - СТАЦИОНАРНЫЙ С Qi=1"
PRINT " 1 - ПОЛУСТАЦИОНАРНЫЙ С Qi<=1"
PRINT " 2 - РАСШИРЕННЫЙ ПОЛУСТАЦИОНАРНЫЙ С Qi<=1"
PRINT " 3 - НЕСТАЦИОНАРНЫЙ С Qi<=NU"
INPUT QS
X$ = X$ + STR$(QS) + " "
166
IF QS = 1 THEN NU = 1
IF QS = 2 THEN
INPUT " ЧИСЛО ПЕРВЫХ КОМПОНЕНТ ДЛЯ ЗАДАНИЯ Qi=1 "; N
INPUT " УРОВЕНЬ NU<1 ДЛЯ ПРИВЕДЕНИЯ Qi>NU К Qi=1 "; NU
IF NU = 0 THEN NU = 1
FOR I = 1 TO N
E1(I) = E1(I) / Q(I)
E2(I) = E2(I) / Q(I)
NEXT I
QS = 1
END IF
IF QS = 3 THEN
O20 = 0
INPUT " УРОВЕНЬ NU><1 ДЛЯ ПРИВЕДЕНИЯ Qi>NU К Qi=NU ";
NU
IF NU = 0 THEN QS = 0: GOTO 905 ELSE QS = 2
END IF
GOTO 871
916
'VV-----O20 = 0: QS = 0
P4 = 0: VS = 1
GOTO 8
918
'OT-----INPUT " ЧИСЛО ОПОРНЫХ ТОЧЕК "; O9
IF O9 > 0 THEN
X$ = X$ + STR$(O9) + " "
PRINT " ПАРАМЕТРЫ ТОЧЕК Sk, Xk:"
FOR I = W + 1 TO W + O9
INPUT S(I), X(I)
S2(I) = S(I): X2(I) = X(I)
NEXT I
END IF
GOTO 905
167
919
'Z-----COLOR 10
PRINT " ЗАПИСЬ:"
COLOR 7
PRINT " 0 - РЯДА И ИСХОДНЫХ ТОЧЕК Xk"
PRINT " 1 - РЯДА И ЕГО ТОЧЕК Xр"
PRINT " 2 - ОТКЛОНЕНИЙ РЯДА ОТ Xk"
PRINT " 4 - СРЕДНИХ ОТ Xр ДО Xk И Xпр"
INPUT AD
IF AD = 0 OR AD = 1 THEN GOSUB KIR
IF AD = 2 THEN N = 0: GOSUB KIS
IF AD = 4 THEN
INPUT " ДОЛЯ ТОЧЕК РЯДА (0,...,1) "; V4
INPUT " ЧИСЛО ТОЧЕК ПРОГНОЗА "; N
GOSUB KIS
END IF
GOTO 905
921
'L-----PRINT " ВЫЧИСЛЕНИЕ Ai ПО ИСХОДНЫМ";
IF O9 > 0 THEN PRINT " И ОПОРНЫМ";
PRINT " ТОЧКАМ.";
GOTO 871
924
'N-----PRINT " 0 - ПОЛНАЯ"
PRINT " 1 - ИСХОДНЫХ ТОЧЕК ПРИ СОХРАНЕНИИ РЯДА"
PRINT " 2 - ИСПОЛЬЗОВАНИЕ ТОЧЕК РЯДА ДЛЯ ПОЛУЧЕНИЯ q
<"; P01
INPUT A
IF A = 2 THEN
FOR I = 0 TO W
S=I
168
GOSUB FUX
X(I) = XS
NEXT I
QS = 0: O20 = 0
VS = 1: A = 0
GOTO 21
END IF
INPUT " ФАЙЛ ДАННЫХ "; FILE$
IF A = 1 THEN O5 = 1: GOTO 8 ELSE 91
925
'CD-----IF O10 = 0 THEN
O5 = 4
RANDOMIZE 0
ZC = 0
FOR I = 1 TO P0
C(I) = 0
NEXT I
END IF
GOSUB SWR
P0 = P02
FOR I = 0 TO W
X(I) = X2(I) + V0 * (RND - .5)
NEXT I
O10 = O10 + 1
GOTO 22
928
'U-----GOSUB QPP
INPUT " ОБРАЩЕНИЕ "; A
IF A = 0 THEN 905
X$ = X$ + "R "
GOSUB REV
FOR I = 1 TO P0
Q = Q(I) * Q(I)
E1(I) = E1(I) / Q
169
E2(I) = E2(I) / Q
NEXT I
O20 = 0: QS = 0
GOTO 871
930
'DR-----INPUT " ПОРЯДОК q: 0 - ЧЕТНЫЙ, 1 - НЕЧЕТНЫЙ "; A
INPUT " ВЕЛИЧИНА q "; P02
X$ = X$ + STR$(P02) + " "
E1(1) = 1: E2(1) = 0
IF A = 0 THEN
P0 = P02 / 2 + 1
E1(P0) = -1: E2(P0) = 0
Z = PI / (P0 - 1)
FOR I = 2 TO P0 - 1
X = Z * (I - 1)
E1(I) = COS(X): E2(I) = SIN(X)
NEXT I
ELSE
P0 = (P02 - 1) / 2 + 1
Z = PI / P0
FOR I = 2 TO P0
X = Z * (I - 1)
E1(I) = COS(X): E2(I) = SIN(X)
NEXT I
END IF
O20 = 0: QS = 0
P4 = P0
GOTO 871
934
'D-----PRINT " ЧИСЛО КОМПОНЕНТ РЯДА <="; P4; "("; P0; ") ";
INPUT P1
IF P1 = 0 THEN GOSUB RDC: GOTO 900
X$ = X$ + " P0" + STR$(P1) + " "
170
P0 = P1
GOTO 900
943
'P-----INPUT " ЗНАМЕНАТЕЛЬ ФАЗЫ 2*PI/N (N=2,3,4,...ТОЧЕК НА ПЕРИОДЕ) "; N
IF N < 2 THEN 945
Z = 2 * PI / N
X = 1: L = 0
FOR I = 1 TO P0
IF ABS(F(I) - Z) < X THEN X = ABS(F(I) - Z): L = I
NEXT I
PRINT " C"; L;
PRINT USING " С ОТКЛОНЕНИЕМ #.#####"; X
INPUT " КОРРЕКЦИЯ ФАЗЫ "; A
IF A = 1 THEN
E1(L) = Q(L) * COS(Z)
E2(L) = Q(L) * SIN(Z)
IF N = 2 THEN E2(L) = 0
IF N = 4 THEN E1(L) = 0
J=1
END IF
GOTO 943
945
INPUT " НОМЕР КОРНЯ ДЛЯ ЗАДАНИЯ Qi=1 "; I
IF I = 0 AND J = 1 THEN 871
IF I = 0 THEN 905
E1(I) = E1(I) / Q(I)
E2(I) = E2(I) / Q(I)
J=1
GOTO 945
946
'SR, CD----INPUT " СРАВНЕНИЕ: E1,E2 - 0; F - 1; Xпр - 3 "; A
IF A = 3 THEN
947
PRINT
COLOR 10
PRINT " ДОПОЛН.ПРОГНОЗ ";
171
PRINT " ОСНОВНОЙ ПРОГН. ";
PRINT " РАЗНОСТЬ ПРОГН. ";
PRINT " ОТКЛ.ОСН.ПРОГН."
COLOR 7
Z=0
Z1 = 0: Z2 = 0
FOR K = W - PQ + 1 TO W + PQ
S=K
GOSUB RWR
GOSUB FUX
X1 = XS
GOSUB RWR
GOSUB FUX
X2 = XS
X = X2 - X1
IF K <= W THEN
Z1 = Z1 + ABS(X)
ELSE
Z2 = Z2 + ABS(X)
PRINT " X"; K; USING "+.####^^^^"; X1;
PRINT TAB(22); "X"; K; USING "+.####^^^^"; X2;
PRINT TAB(42); "dX"; K; USING "+.###^^^^"; X;
IF O3 = 1 THEN X = X2 - X(K) ELSE GOSUB FUN: X = X2 - XS
Z = Z + ABS(X)
PRINT TAB(62); "dX"; K; USING "+.###^^^^"; X
END IF
NEXT K
COLOR 10
X = (W + 1) / (PQ * SSS)
PRINT " dX РЯДОВ ОТ"; W - PQ + 1;
PRINT "ДО"; W; USING "#.###^^^^"; Z1 * X;
PRINT TAB(42); USING "dX#.###^^^^"; Z2 * X;
PRINT TAB(62); USING "dX#.###^^^^"; Z * X
COLOR 7
172
INPUT " ЧИСЛО ТОЧЕК ПРОГНОЗА "; N
IF N = 0 THEN 905 ELSE PQ = N: GOTO 947
END IF
948
K=0
Z=0
FOR I = 1 TO P0
X = 10
FOR J = 1 TO P03
Z1 = ABS(E1(I) - E3(J)) + ABS(E2(I) - E4(J))
IF A = 0 THEN Z2 = Z1
IF A = 1 THEN Z2 = ABS(F(I) - F0(J))
IF Z1 < X THEN X = Z1: Z(I) = Z2: V(I) = J
NEXT J
Z = Z + Z(I)
C(I) = C(I) + Z(I)
NEXT I
Z = Z / P0
ZC = ZC + Z
949
L=1
FOR I = 1 TO P0
PRINT TAB(L); I;
IF K = 0 THEN PRINT "-"; V(I);
IF K = 1 THEN
IF Q(I) > X AND Z(I) > Z THEN COLOR 14
PRINT TAB(L + 5); USING "#.###"; Q(I);
IF Z(I) < Z THEN I1 = I1 + 1: Z1 = Z1 + Z(I)
IF Z(I) > Z THEN Z2 = Z2 + Z(I)
END IF
P(I) = 7
IF Z(I) < Z / 5 THEN P(I) = 2
IF Z(I) > Z THEN P(I) = 5
IF Z(I) > 5 * Z THEN P(I) = 4
COLOR P(I)
PRINT TAB(L + 10); USING "#.##^^^^"; Z(I);
COLOR 7
L = L + 20
IF L = 81 THEN L = 1: PRINT
173
NEXT I
IF L <> 1 THEN PRINT
Z = 0: X = 0
FOR I = 1 TO P0
Z = Z + Z(I) * L(I)
X = X + L(I)
NEXT I
PRINT USING " РАСХОЖДЕНИЕ #.###^^^^"; P03 * (Z / X)
IF A$ = "SR" THEN INPUT A: GOTO 905
IF K = 1 THEN
Z1 = Z1 / I1
Z2 = Z2 / (P0 - I1)
PRINT " ВЛИЯНИЕ ШУМОВ Nс/Nш, Zс/Zш: ";
PRINT I1; "/"; P0 - I1;
PRINT USING "#.###^^^^."; Z1 / Z2;
PRINT " СОХРАНЕНИЕ РЯДА"
END IF
IF O5 = 4 THEN
INPUT " 1 - ВЫХОД "; K
IF K = 0 THEN 925
O5 = 0
Z = ZC / O10
FOR I = 1 TO P0
Z(I) = C(I) / O10
NEXT I
COLOR 10
PRINT " МОДУЛИ И СРЕДНИЕ ОТКЛОНЕНИЯ"
COLOR 7
Z1 = 0: Z2 = 0
I1 = 0
X = .1 ^ (1 / W)
GOSUB SWR
GOTO 949
END IF
GOSUB RDC
174
GOSUB PDC
IF L = 1 THEN O20 = 1: QS = 1: NU = 1: GOTO 871 ELSE 900
950
'F,DP----INPUT " ЧИСЛО ТОЧЕК ПРОГНОЗА (8) "; N
IF N = 0 AND A$ = "F" THEN 905
IF N = 0 THEN N = 8
IF O20 = 0 THEN V4 = .2 ELSE V4 = 0
IF O5 = 2 THEN GOSUB PRO
951
Z1 = 0: Z2 = 0
L=W
FOR K = W + 1 TO W + N
S = S(K - N)
GOSUB FUX
X3 = XS - X(K - N)
Z1 = Z1 + ABS(X3)
S=K
IF O3 = 1 THEN
IF S(K) = K THEN X1 = X(K) ELSE X1 = 0
END IF
IF O3 = 0 THEN GOSUB FUN: X1 = XS
GOSUB FUX
X2 = XS - X1
Z2 = Z2 + ABS(X2)
IF O5 = 0 OR (O5 = 2 AND K - W < 9) THEN
PRINT " Ea"; K - N; USING "+.###^^^^"; X3;
PRINT TAB(21); : IF O3 = 1 THEN PRINT "Xk"; ELSE PRINT "Xф";
PRINT K; USING "+.#####^^^^"; X1;
COLOR 10: PRINT TAB(42); "Xр"; K; USING "+.#####^^^^"; XS;
COLOR 7: PRINT TAB(63); "dX"; K; USING "+.###^^^^"; X2
END IF
IF K - L = 20 AND O5 = 0 THEN L = L + 20: INPUT A
NEXT K
175
Z = (W + 1) / (N * SSS)
COLOR 10
PRINT USING " Ea#.###^^^^"; Z1 * Z;
PQ = N
IF PT > 0 THEN
PRINT TAB(21);
GOSUB EAP
PRINT USING "#.###^^^^"; DX;
END IF
PRINT TAB(58); "dX"; USING "#.###^^^^"; Z2 * Z; Z2 / N
COLOR 7
IF O5 = 2 THEN
INPUT " 1 - ВЫХОД "; A
IF A = 1 THEN
O5 = 0
IF PQ > 8 THEN PQ = 8
PRINT
GOTO 900
END IF
FOR I = 0 TO W + PQ
S(I) = I
S=I
GOSUB FUX
IF I > W THEN X(I) = XS ELSE X(I) = X2(I) + V4 * (X2(I) - XS)
NEXT I
W = W + PQ
P0 = P01
O10 = O10 + 1
GOSUB VPP
GOTO 22
END IF
GOTO 950
952
'NV-----176
PRINT " РЕЖИМ РАБОТЫ: 0-ФУНКЦИИ, 1-ТАБЛИЦЫ: "; O3; : INPUT A$
IF A$ <> "" THEN O3 = VAL(A$)
PRINT " СТАБИЛИЗАЦИЯ ВЫЧИСЛЕНИЙ fi: "; O2; : INPUT A$
IF A$ <> "" THEN O2 = VAL(A$)
PRINT " НАЧАЛЬНАЯ ТОЧКА РАСЧЕТА ВЕСА: "; O1; : INPUT A$
IF A$ <> "" THEN O1 = VAL(A$)
PRINT " ПОРОГ УЛУЧШЕНИЯ ФУНКЦИОНАЛА: "; V5; : INPUT A$
IF A$ <> "" THEN V5 = VAL(A$)
PRINT " ВЕРХНИЙ ПРЕДЕЛ ВАРИАЦИЙ: "; V1; : INPUT A$
IF A$ <> "" THEN V1 = VAL(A$)
PRINT " НИЖНИЙ ПРЕДЕЛ ВАРИАЦИЙ: "; V2; : INPUT A$
IF A$ <> "" THEN V2 = VAL(A$)
PRINT " КОЛИЧЕСТВО ИТЕРАЦИЙ В ЦИКЛЕ: "; V8; : INPUT A$
IF A$ <> "" THEN V8 = VAL(A$)
PRINT " УРОВЕНЬ ДОПОЛНИТЕЛЬНЫХ ШУМОВ ДЛЯ Xk: "; V0; :
INPUT A$
IF A$ <> "" THEN V0 = VAL(A$)
PRINT " СДВИГ ГРАФИКА ФУНКЦИИ: "; P2; : INPUT A$
IF A$ <> "" THEN P2 = VAL(A$)
GOTO 905
953
'S-----PRINT USING " УРОВЕНЬ ИСКЛЮЧЕНИЯ #.#### "; Z4;
INPUT X2
IF X2 = 0 THEN X2 = Z4
X2 = X2 - 1E-09
I=1
954
IF Q(I) > X2 THEN
GOSUB RDR
END IF
I=I+1
IF I <= P0 THEN 954
GOTO 900
957
'T-----177
INPUT " 1 - ВЫХОД "; A
IF A = 1 THEN O5 = 0: GOTO 900
FOR I = 0 TO W
S=I
GOSUB FUX
X(I) = XS
Z = 10
FOR J = 0 TO W
X = ABS(I - S2(J))
IF X < Z THEN Z = X: K = J
NEXT J
S = S2(K)
GOSUB FUX
X(I) = X(I) + .5 * (X2(K) - XS)
S(I) = I
NEXT I
O10 = O10 + 1
P0 = P01
GOTO 22
959
'W-----PRINT " СОХРАНЕНИЕ - 1";
IF P03 > 0 THEN PRINT ", ВЫЗОВ - 2, ОБМЕН - 3";
INPUT " "; A
IF A = 1 THEN GOSUB SWR: GOTO 905
IF A = 2 THEN GOSUB VWR
IF A = 3 THEN GOSUB RWR
PRINT
P4 = P0
GOTO 900
ORP:
PRINT " V - ВЫХОД, B - ОСТАНОВ-ПРОДОЛЖЕНИЕ СЧЕТА"
INPUT " НЕОБХОДИМАЯ ТОЧНОСТЬ РЯДА E "; A$
IF A$ = "V" THEN 905
SSP = VAL(A$)
GOSUB FSX
SS1 = SS: SS2 = SS
178
SCREEN 12
SLEEP 1
TIM = TIMER
FOR I = 0 TO 4 * P0
V(I) = 1
NEXT I
V = V1 / V9
M0:
V = V * V9: VV = V
M1:
SS2 = SS1
ITT = IT: IT = 0
IF V < V2 THEN SOUND 784, 10
SOUND 392, 1
CLS
GOSUB GRO
IF V < V2 THEN 900
M2:
A$ = INKEY$
IF SS3 / SSS < SSP THEN A$ = "B"
IF A$ = "B" THEN V = 0: GOTO M1
OO = 0: IT = IT + 1
FOR L = 1 TO 2
FOR K = 1 TO 4 * P0
VK = V(K) * V
IF K <= P0 THEN
M=K
O6 = 1: GOSUB PB
END IF
IF K > P0 AND K <= 2 * P0 THEN
M = K - P0
O6 = 2: GOSUB PE
END IF
179
IF K > 2 * P0 AND K <= 3 * P0 THEN
M = K - 2 * P0
IF B2(M) = 0 THEN M3
O6 = 3: GOSUB PB
END IF
IF K > 3 * P0 THEN
M = K - 3 * P0
IF E2(M) = 0 THEN M3
O6 = 4: GOSUB PE
END IF
M3:
NEXT K
NEXT L
IF IT = V8 AND (SS2 - SS1) / SS2 > .0003 * SQR(V8) THEN M1
IF IT = V8 THEN M0
IF OO = 0 THEN M0 ELSE M2
PB:
B1 = B1(M)
B2 = B2(M)
GOSUB FSY
IF O6 = 1 THEN B1(M) = B1 * (1 + VK * SGN(B1)) + VK
IF O6 = 3 THEN B2(M) = B2 * (1 + VK * SGN(B2)) + VK
GOSUB FSZ
IF (SS1 - SS) / SS1 > V5 THEN OO = 1: V(K) = V(K) + SGN(V(K))
IF SS < SS1 THEN
FOR I = 0 TO W + O9
X3(I) = X4(I)
NEXT I
G(M) = GG: H(M) = HH
SS1 = SS
ELSE
FOR I = 0 TO W + O9
X4(I) = X3(I)
NEXT I
B1(M) = B1
B2(M) = B2
180
V(K) = -SGN(V(K))
END IF
RETURN
PE:
E1 = E1(M)
E2 = E2(M)
GOSUB FSY
VK = VK * V7
IF O6 = 2 THEN E1(M) = E1 * (1 + VK * SGN(E1)) + VK
IF O6 = 4 THEN E2(M) = E2 * (1 + VK * SGN(E2)) + VK
GOSUB FSZ
IF (SS1 - SS) / SS1 > V5 THEN OO = 1: V(K) = V(K) + SGN(V(K))
IF SS < SS1 THEN
FOR I = 0 TO W + O9
X3(I) = X4(I)
NEXT I
Q(M) = QQ: F(M) = FF
SS1 = SS
ELSE
FOR I = 0 TO W + O9
X4(I) = X3(I)
NEXT I
E1(M) = E1
E2(M) = E2
V(K) = -SGN(V(K))
END IF
RETURN
VPP:
I = INT((W + 1) / 2): J3 = INT((W + 2) / 2)
IF I = (W + 1) / 2 THEN P = I ELSE P = J3
RETURN
KRS:
Z04 = 0
FOR I = 1 TO P0
Q = SQR(E1(I) * E1(I) + E2(I) * E2(I))
IF Q > Z04 THEN Z04 = Q
NEXT I
RETURN
DKK:
181
IF E(I) > 0 THEN
IF E2(I) = 0 THEN P1 = P1 - 1
GOSUB RDR
END IF
I=I+1
IF I <= P0 THEN DKK
RETURN
SWP:
FOR I = 1 TO P0
L(I) = 0
FOR J = O1 TO W
S = S(J)
GOSUB FIS
L(I) = L(I) + ABS(X3(J) - X - X(J))
NEXT J
L(I) = (L(I) - SS3) / SSS
NEXT I
FOR K = 1 TO P0 - 1
FOR J = 1 TO P0 - K
IF L(J) < L(J + 1) THEN GOSUB SWK
NEXT J
NEXT K
RETURN
SWK:
SWAP E1(J), E1(J + 1)
SWAP E2(J), E2(J + 1)
SWAP E(J), E(J + 1)
SWAP Q(J), Q(J + 1)
SWAP F(J), F(J + 1)
SWAP B1(J), B1(J + 1)
SWAP B2(J), B2(J + 1)
SWAP G(J), G(J + 1)
SWAP H(J), H(J + 1)
SWAP Z(J), Z(J + 1)
182
SWAP P(J), P(J + 1)
SWAP L(J), L(J + 1)
RETURN
SWR:
FOR I = 1 TO P0
E3(I) = E1(I): E4(I) = E2(I)
B3(I) = B1(I): B4(I) = B2(I)
E0(I) = E(I): P0(I) = P(I)
Q0(I) = Q(I): F0(I) = F(I)
NEXT I
P03 = P0
P023 = P02
O203 = O20
QS3 = QS
Z043 = Z04
NU3 = NU
X0$ = X$
RETURN
VWR:
FOR I = 1 TO P03
E1(I) = E3(I): E2(I) = E4(I)
B1(I) = B3(I): B2(I) = B4(I)
E(I) = E0(I): P(I) = P0(I)
NEXT I
P0 = P03
P02 = P023
O20 = O203
QS = QS3
Z04 = Z043
NU = NU3
X$ = X0$
RETURN
RWR:
IF P0 < P03 THEN N = P03 ELSE N = P0
FOR I = 1 TO N
SWAP E1(I), E3(I)
SWAP E2(I), E4(I)
SWAP B1(I), B3(I)
SWAP B2(I), B4(I)
183
SWAP E(I), E0(I)
SWAP P(I), P0(I)
SWAP Q(I), Q0(I)
SWAP F(I), F0(I)
NEXT I
SWAP P0, P03
SWAP P02, P023
SWAP O20, O203
SWAP QS, QS3
SWAP Z04, Z043
SWAP NU, NU3
SWAP X$, X0$
RETURN
GRF:
COLOR 10: PRINT " V - ВЫХОД": COLOR 7
PRINT USING " МАСШТАБ#.###^^^^ "; N6; : INPUT A$
IF A$ = "V" THEN RETURN
IF A$ <> "" THEN N6 = VAL(A$)
PRINT " СДВИГ ВЛЕВО НА"; O0; "ТОЧЕК "; : INPUT A$
IF A$ <> "" THEN O0 = VAL(A$)
PRINT " ШИРИНА ПОЛЯ ГРАФИКА"; V3; : INPUT A$
IF A$ <> "" THEN V3 = VAL(A$)
SCREEN 12
GRO:
GOSUB SET
Q4 = 320 / N6
H = (600 * V3) / (W - O0)
IF O3 = 0 THEN GOSUB PRF
GOSUB PRG
GOSUB PRT
LOCATE 24, 6
PRINT FILE$; " ";
GOSUB GIS
LOCATE 27, 1
184
IF O8 = 1 THEN
PRINT USING " V#.##^^^^"; VV;
PRINT USING " S#.####^^^^"; SQR(SS1 / (W + 1 + O9));
ELSE
GOSUB FSX
PRINT " APNR12N6";
PRINT USING " S#.####^^^^"; SQR(SS / (W + 1 + O9));
END IF
L=0
Z2 = 1: Z4 = 0
FOR I = 1 TO P0
IF Q(I) < Z2 THEN Z2 = Q(I)
IF Q(I) > Z4 THEN Z4 = Q(I)
IF ABS(1 - Q(I)) < .000001 THEN L = L + 1
NEXT I
PRINT " W"; W; " q"; P01; " P0"; P0; "("; LTRIM$(STR$(L)); " ST) ";
PRINT USING " E#.####^^^^"; SS3 / SSS;
IF O8 = 1 THEN PRINT " IT"; ITT ELSE PRINT
LOCATE 28, 1
FOR N = 1 TO 8
PRINT " ";
NEXT N
LOCATE 28, 6
COLOR 7
GOSUB EAP
PRINT USING " #.#### "; DX;
FOR N = 1 TO 6
IF N = 3 THEN LOCATE 29, 6: PRINT USING "K1 #.#### "; Z2;
IF N = 5 THEN LOCATE 30, 6: PRINT USING "K2 #.#### "; Z4;
K=W+N
S=K
GOSUB FUX
185
X1 = XS
COLOR 10
PRINT "X"; K; USING "#.###^^^^ "; X1;
COLOR 7
IF O3 = 1 THEN
IF S(K) = K THEN X2 = X1 - X(K) ELSE X2 = X1
END IF
IF O3 = 0 THEN GOSUB FUN: X2 = X1 - XS
PRINT USING "dX #.###^^^^ "; X2;
NEXT N
COLOR 15
IF O8 = 1 AND V > V2 THEN RETURN
GR:
TIM = TIMER - TIM
LOCATE 28, 1
INPUT A$
IF A$ = "" OR A$ = "V" THEN SCREEN 0: RETURN
IF O8 = 1 AND A$ = "B" THEN V = VV: RETURN
LOCATE 28, 1
FOR N = 1 TO 24
PRINT " ";
NEXT N
S = VAL(A$)
GOSUB FUX
X1 = XS
GOSUB POI
LOCATE 28, 6
COLOR 10
PRINT USING "Xp +.#########^^^^ "; X1;
COLOR 7
K=0
IF S >= 0 THEN K = CINT(S)
IF S(K) = K OR K <= W + PT THEN X2 = X(K) ELSE X2 = 0
186
IF K = S THEN PRINT USING "Xk +.#########^^^^ "; X2;
IF O3 = 0 THEN GOSUB FUN: PRINT USING "Xf +.#########^^^^";
XS
LOCATE 29, 6
PRINT "S"; S;
IF K = S THEN PRINT USING " dXk +.######^^^^ "; X1 - X2;
IF O3 = 0 THEN PRINT USING " dXf +.######^^^^"; X1 - XS
GOTO GR
RETURN
GIS:
Z = .005: K = 360
FOR I = 1 TO P0
FOR J = 2 TO 11
IF Q(I) <= 1 + Z * (J - 6) AND Q(I) > 1 + Z * (J - 7) THEN G0(J) = G0(J)
+1
NEXT J
IF Q(I) <= .975 THEN G0(1) = G0(1) + 1
IF Q(I) > 1.025 THEN G0(12) = G0(12) + 1
NEXT I
FOR I = 1 TO 12
X = 2 + 8 * POS(0)
Z = 100 * G0(I) / P0
GOSUB GI
NEXT I
PRINT " ";
Z = .1 * PI
FOR I = 1 TO P0
FOR J = 2 TO 11
IF F(I) <= Z * (J - 1) AND F(I) > Z * (J - 2) THEN G0(J) = G0(J) + 1
NEXT J
IF F(I) = 0 THEN G0(1) = G0(1) + 1
NEXT I
187
FOR I = 1 TO 12
X = 2 + 8 * POS(0)
Z = 200 * G0(I) / P0
GOSUB GI
NEXT I
PRINT
RETURN
GI:
LINE (X, K)-(X, K - Z), 12
LINE (X + 1, K)-(X + 1, K - Z), 12
LINE (X + 2, K)-(X + 2, K - Z), 12
PRINT G0(I);
G0(I) = 0
LOCATE CSRLIN, POS(0) - 1, 1
RETURN
KOA:
J=1
FOR I = 1 TO P0
IF E2(I) = 0 THEN
B1(J) = E1(I): B2(J) = 0
E(J) = P(I)
J=J+1
END IF
NEXT I
P1 = J - 1
FOR I = 1 TO P0
IF E2(I) > 0 THEN
B1(J) = E1(I): B2(J) = E2(I)
E(J) = P(I)
J=J+1
END IF
NEXT I
P0 = J - 1
FOR I = 1 TO P0
E1(I) = B1(I): E2(I) = B2(I)
P(I) = E(I)
NEXT I
188
GOSUB FSQ
GOSUB CEN
IF O5 = 2 THEN I = 1: GOSUB DKK
N = 2 * P0 - P1
FOR I = 1 TO N
IF I <= P0 AND E(I) = 0 THEN
X3(I) = X(0)
ELSE
X3(I) = 0
END IF
FOR J = 1 TO N
IF I <= P0 AND J <= P0 AND E(I) = 0 AND E(J) = 0 THEN
Y(I, J) = 1
ELSE
Y(I, J) = 0
END IF
NEXT J
NEXT I
FOR K = 1 TO W + O9
FOR I = 1 TO P0
UE = Q(I) ^ S(K)
VE = F(I) * S(K)
B1(I) = UE * COS(VE)
B2(I) = UE * SIN(VE)
NEXT I
FOR I = 1 TO N
I1 = I - P0 + P1
IF I <= P0 THEN
UE = X(K) * B1(I)
IF E(I) > 0 THEN UE = UE * (S(K) ^ E(I))
END IF
189
IF I > P0 THEN
UE = X(K) * B2(I1)
IF E(I1) > 0 THEN UE = UE * (S(K) ^ E(I1))
END IF
X3(I) = X3(I) + UE
FOR J = 1 TO N
J1 = J - P0 + P1
IF I <= P0 AND J <= P0 THEN
UE = B1(I) * B1(J)
IF E(I) > 0 THEN UE = UE * (S(K) ^ E(I))
IF E(J) > 0 THEN UE = UE * (S(K) ^ E(J))
END IF
IF I > P0 AND J <= P0 THEN
UE = B2(I1) * B1(J)
IF E(I1) > 0 THEN UE = UE * (S(K) ^ E(I1))
IF E(J) > 0 THEN UE = UE * (S(K) ^ E(J))
END IF
IF I <= P0 AND J > P0 THEN
UE = -B1(I) * B2(J1)
IF E(I) > 0 THEN UE = UE * (S(K) ^ E(I))
IF E(J1) > 0 THEN UE = UE * (S(K) ^ E(J1))
END IF
IF I > P0 AND J > P0 THEN
UE = -B2(I1) * B2(J1)
IF E(I1) > 0 THEN UE = UE * (S(K) ^ E(I1))
IF E(J1) > 0 THEN UE = UE * (S(K) ^ E(J1))
END IF
Y(I, J) = Y(I, J) + UE
NEXT J
NEXT I
NEXT K
GOSUB OBR
FOR I = 1 TO N
190
X4(I) = 0
FOR J = 1 TO N
X4(I) = X4(I) + Y(I, J) * X3(J)
NEXT J
NEXT I
FOR I = 1 TO P0
B1(I) = X4(I)
B2(I) = 0
NEXT I
FOR I = P1 + 1 TO P0
B2(I) = X4(I + P0 - P1)
NEXT I
RETURN
FIS:
X = (Q(I) ^ S) * (B1(I) * COS(S * F(I)) - B2(I) * SIN(S * F(I)))
IF E(I) > 0 THEN X = X * (S ^ E(I))
RETURN
FSQ:
FOR I = 1 TO P0
Q(I) = SQR(E1(I) * E1(I) + E2(I) * E2(I))
IF O20 = 1 AND (QS = 0 OR Q(I) > NU) THEN
E1(I) = E1(I) / Q(I)
E2(I) = E2(I) / Q(I)
Q(I) = 1
END IF
IF O20 = 0 AND QS = 2 AND Q(I) > NU THEN
E1(I) = E1(I) * NU / Q(I)
E2(I) = E2(I) * NU / Q(I)
Q(I) = NU
END IF
IF E1(I) <> 0 THEN
F(I) = ATN(E2(I) / E1(I))
IF E1(I) < 0 THEN F(I) = F(I) + PI
ELSE
191
F(I) = PI * .5 * SGN(E2(I))
END IF
NEXT I
RETURN
FSX:
GOSUB FSQ
FOR I = 1 TO P0
IF E2(I) < 0 THEN E2(I) = -E2(I): F(I) = -F(I): B2(I) = -B2(I)
G(I) = SQR(B1(I) * B1(I) + B2(I) * B2(I))
IF B1(I) <> 0 THEN
H(I) = ATN(B2(I) / B1(I))
IF B1(I) < 0 THEN
IF B2(I) >= 0 THEN H(I) = H(I) + PI
IF B2(I) < 0 THEN H(I) = H(I) - PI
END IF
ELSE
H(I) = PI * .5 * SGN(B2(I))
END IF
NEXT I
SS = 0: SS3 = 0
FOR J = 0 TO W + O9
S = S(J)
XS = 0
FOR I = 1 TO P0
GOSUB FIS
XS = XS + X
NEXT I
X3(J) = XS: X4(J) = XS
SE = ABS(XS - X(J))
SS3 = SS3 + SE
SS = SS + SE * SE
NEXT J
192
RETURN
FSY:
QZ = 1
FOR J = 0 TO W + O9
S = S(J)
Y = S * F(M) + H(M)
IF O7 = 0 THEN
X = QZ * G(M) * COS(Y)
QZ = QZ * Q(M)
ELSE
X = (Q(M) ^ S) * G(M) * COS(Y)
END IF
IF E(M) > 0 THEN X = X * (S ^ E(M))
X4(J) = X4(J) - X
NEXT J
RETURN
FSZ:
QQ = SQR(E1(M) * E1(M) + E2(M) * E2(M))
IF O20 = 1 AND (QS = 0 OR QQ > NU) THEN
E1(M) = E1(M) / QQ
E2(M) = E2(M) / QQ
QQ = 1
END IF
IF O20 = 0 AND QS = 2 AND QQ > NU THEN
E1(M) = E1(M) * NU / QQ
E2(M) = E2(M) * NU / QQ
QQ = NU
END IF
IF E1(M) <> 0 THEN
FF = ATN(E2(M) / E1(M))
IF E1(M) < 0 THEN FF = FF + PI
ELSE
FF = PI * .5 * SGN(E2(M))
END IF
193
GG = SQR(B1(M) * B1(M) + B2(M) * B2(M))
IF B1(M) <> 0 THEN
HH = ATN(B2(M) / B1(M))
IF B1(M) < 0 THEN
IF B2(M) >= 0 THEN HH = HH + PI
IF B2(M) < 0 THEN HH = HH - PI
END IF
ELSE
HH = PI * .5 * SGN(B2(M))
END IF
QZ = 1
SS = 0: SS3 = 0
FOR J = 0 TO W + O9
S = S(J)
Y = S * FF + HH
IF O7 = 0 THEN
X = QZ * GG * COS(Y)
QZ = QZ * QQ
ELSE
X = (QQ ^ S) * GG * COS(Y)
END IF
IF E(M) > 0 THEN X = X * (S ^ E(M))
X4(J) = X4(J) + X
SE = ABS(X4(J) - X(J))
SS3 = SS3 + SE
SS = SS + SE * SE
NEXT J
RETURN
EAP:
DX = 0
FOR I = 1 TO PQ
IF PT > 0 THEN K = W + I ELSE K = W - PQ + I
S = S(K)
GOSUB FUX
194
DX = DX + ABS(XS - X(K))
NEXT I
DX = (DX * (W + 1)) / (PQ * SSS)
IF PT > 0 THEN PRINT "En"; ELSE PRINT "Ea";
RETURN
ISE:
PRINT " НОВОЕ ЗНАЧЕНИЕ W <="; W; : INPUT P1
P2 = W - P1
FOR I = 0 TO W + PT
IF I <= P1 + PT THEN
X(I) = X(I + P2)
S(I) = S(I + P2) - S(P2)
X2(I) = X2(I + P2)
S2(I) = S2(I + P2) - S(P2)
ELSE
X(I) = 0: X2(I) = 0
S(I) = 0: S2(I) = 0
END IF
NEXT I
GOTO IE
IST:
PRINT " W"; W; " PT"; PT;
INPUT ". НОВОЕ ЗНАЧЕНИЕ W<=W+PT "; P1
PT = PT + W - P1
IF PT > 0 THEN PQ = PT
IE:
W = P1
X$ = X$ + STR$(W) + " "
RETURN
REV:
IF O$ = "" THEN O$ = "R" ELSE O$ = ""
FOR I = 0 TO P - 1
SWAP X(I), X(W - I)
SWAP X2(I), X2(W - I)
S = S(I): S(I) = W - S(W - I): S(W - I) = W - S
S = S2(I): S2(I) = W - S2(W - I): S2(W - I) = W - S
NEXT I
195
IF VS = 1 THEN GOSUB QPP
RETURN
USX:
FOR I = 2 TO W - 2
X3(I) = (X(I - 2) + X(I - 1) + X(I) + X(I + 1) + X(I + 2)) / 5
NEXT I
X3(0) = (3 * X(0) + 2 * X(1) + X(2) - X(4)) / 5
X3(1) = (4 * X(0) + 3 * X(1) + 2 * X(2) + X(3)) / 10
X3(W - 1) = (X(W - 3) + 2 * X(W - 2) + 3 * X(W - 1) + 4 * X(W)) / 10
X3(W) = (-X(W - 4) + X(W - 2) + 2 * X(W - 1) + 3 * X(W)) / 5
FOR I = 0 TO W
X(I) = X3(I)
X2(I) = X3(I)
NEXT I
GOSUB QPP
RETURN
QPP:
K = 0: J = 2
COLOR 10
PRINT " "; FILE$;
PRINT " W"; W; " PT"; PT;
IF O7 = 1 THEN COLOR 12: PRINT " НЕРАВНООТСТОЯЩИЕ ТОЧКИ" ELSE PRINT
COLOR 7
FOR I = 0 TO W + PT
IF O7 = 0 THEN PP
PRINT TAB(J); "S"; I;
PRINT USING "#.#####^^^^"; S(I);
J = J + 20
PP:
PRINT TAB(J); "X"; I;
PRINT USING "+.#####^^^^"; X(I);
J = J + 20
IF J = 82 THEN J = 2: K = K + 1: PRINT
IF K = 22 THEN K = 0: INPUT A
NEXT I
IF J > 2 THEN PRINT
IF K > 0 AND A$ <> "U" THEN INPUT A
RETURN
196
ODO:
TIM = TIMER
FOR I = 1 TO P0
V(I) = 1
NEXT I
V = .01 * Z00
SS1 = Z00
G=0
PRINT USING "#.###^^^^"; SS1;
D3:
V = V * V9: G = G + 1
IF V < 5E-16 THEN D5
VX = .01 * V
IF VX < .000001 THEN VX = .000001
D4:
LOCATE CSRLIN, 12
PRINT USING "#.###^^^^ "; SS1;
PRINT G;
A$ = INKEY$
IF A$ = "B" THEN D5
OO = 0
FOR L = 1 TO 2
FOR K = 1 TO P0
VK = V(K) * V
Z = Z(K)
Z(K) = Z(K) * (1 + VK * SGN(Z)) + VK
IF A = 4 OR A = 5 THEN GOSUB PDE ELSE GOSUB PDO
IF (SS1 - Z00) / SS1 > VX THEN OO = 1
IF SS1 > Z00 THEN
SS1 = Z00
ELSE
Z(K) = Z
V(K) = -V(K)
END IF
NEXT K
197
NEXT L
IF OO = 0 THEN D3 ELSE D4
D5:
PRINT USING " ВРЕМЯ СЧЕТА ####.#"; TIMER - TIM
BEEP
RETURN
PDO:
Z2 = 1
IF A = 7 THEN
FOR I = 1 TO P0
Z2 = Z2 + Z(I) * Z(I)
NEXT I
Z2 = Z2 / Z02
END IF
Z00 = 0: Z0 = 0
FOR I = 0 TO W - P0
X = X(P0 + I)
Z0 = Z0 + ABS(X)
FOR J = 1 TO P0
X = X - Z(J) * X(I + J - 1)
NEXT J
Z00 = Z00 + X * X
NEXT I
N = W + 1 - P0
Z00 = SQR(Z00 * Z2 / N)
Z00 = Z00 * N / Z0
IF A = 6 THEN
Z01 = 0
FOR I = W - P0 + 1 TO W - P0 + M
X=0
FOR J = 1 TO P0
X = X + Z(J) * X(I + J - 1)
NEXT J
I2 = P0 + I
X(I2) = X
198
X = X - X(I2 - M / 4)
Z01 = Z01 + X * X
NEXT I
Z01 = SQR(Z01 / M)
Z01 = Z01 * N / Z0
Z00 = Z00 + Z1 * Z01
END IF
RETURN
PDE:
Z00 = 0: Z0 = 0
GOSUB PDS
IF A = 4 THEN
FOR I = 0 TO P - 1
SWAP X2(I), X2(W - I)
NEXT I
GOSUB PDS
FOR I = 0 TO P - 1
SWAP X2(I), X2(W - I)
NEXT I
END IF
Z00 = SQR(Z00 / N)
Z00 = Z00 * N / Z0
RETURN
PDS:
FOR I = 0 TO W
X(I) = X2(I)
NEXT I
FOR M = W - P0 TO 0 STEP -1
FOR I = M TO W - P0
X=0
FOR J = 1 TO P0
X = X + Z(J) * X(I + J - 1)
NEXT J
I2 = P0 + I
X(I2) = X
Z0 = Z0 + ABS(X)
199
X = X - X2(I2)
Z00 = Z00 + X * X
NEXT I
NEXT M
RETURN
PFO:
X3(1) = -E1(1): X4(1) = -E2(1)
FOR I = 2 TO P0
X3(I) = 1: X4(I) = 0
B1(1) = -X3(1) * E1(I) + X4(1) * E2(I)
B2(1) = -X3(1) * E2(I) - X4(1) * E1(I)
FOR J = 2 TO I
B1(J) = -X3(J) * E1(I) + X4(J) * E2(I) + X3(J - 1)
B2(J) = -X3(J) * E2(I) - X4(J) * E1(I) + X4(J - 1)
NEXT J
FOR J = 1 TO I
X3(J) = B1(J): X4(J) = B2(J)
NEXT J
NEXT I
Z01 = 0
FOR I = 1 TO P0
Z01 = Z01 + ABS(Z(I) + X3(I))
NEXT I
Z01 = Z01 / P0
RETURN
VFO:
J=0
FOR I = 1 TO P0
J=J+1
B1(J) = E1(I): B2(J) = E2(I)
IF E2(I) <> 0 THEN
J=J+1
B1(J) = E1(I): B2(J) = -E2(I)
END IF
NEXT I
200
P0 = J
FOR I = 1 TO P0
E1(I) = B1(I): E2(I) = B2(I)
NEXT I
GOSUB PFO
FOR I = 1 TO P0
Z(I) = -X3(I)
NEXT I
O20 = 0
P4 = 0: QS = 0
N6 = 0: VS = 1
RETURN
PRO:
GOSUB SWP
X=1
FOR I = 1 TO P0 - 1
FOR J = I + 1 TO P0
Z = ABS(E1(I) - E1(J)) + ABS(E2(I) - E2(J))
IF Z < V6 THEN Z = 1
IF Z < X THEN K = I: L = J: X = Z
NEXT J
NEXT I
X = X * P0 / (PI + 1)
Z02 = 100: Z4 = 0
FOR I = 1 TO P0
IF Q(I) < Z02 THEN Z02 = Q(I)
IF Q(I) > Z4 THEN Z4 = Q(I)
NEXT I
COLOR 10
PRINT USING " КрСт #.####"; Z02;
PRINT USING " ##.#####"; Z04; Z4;
PRINT TAB(38); "QF"; STR$(K); STR$(L); USING " .###"; X;
IF O8 = 1 THEN
PRINT USING " ВРЕМЯ СЧЕТА ####.#"; TIM
O8 = 0
201
ELSE
PRINT USING " dfi#.##^^^^"; Z00;
PRINT USING " dCi#.##^^^^"; Z01
END IF
IF O5 < 2 THEN
L = 0: KK = 0
FOR I = 1 TO P0
COLOR P(I)
PRINT I;
COLOR 7
IF Q(I) < 1.002 * Z02 THEN COLOR 11
IF Q(I) > .998 * Z4 THEN COLOR 14
PRINT TAB(6); USING "#.######### "; Q(I);
COLOR 7
PRINT USING "#.######### "; F(I);
IF Q(I) > 1.000001 THEN PRINT "+";
IF E(I) > 0 THEN KK = KK + 1: PRINT USING "t#"; E(I);
IF ABS(1 - Q(I)) < .000001 AND E(I) = 0 THEN PRINT "s";
IF E1(I) < 0 AND E2(I) = 0 THEN PRINT "*";
COLOR P(I)
PRINT TAB(37); I;
COLOR 7
PRINT TAB(41); USING "#.#########^^^^ "; G(I);
PRINT USING "+#.######### "; H(I);
PRINT USING "#.###^^^^"; L(I)
L=L+1
IF L = 21 AND I < P0 THEN L = 0: INPUT A
NEXT I
END IF
COLOR 10
PRINT USING " E#.###^^^^"; SS3 / SSS;
PRINT USING " G#.###^^^^"; GL / SSS;
202
PRINT TAB(38);
IF VS = 0 THEN
Z = SS3 / SS4
PRINT "dE ";
IF Z > 1 THEN COLOR 12
PRINT USING "#.###^^^^"; Z
ELSE
PRINT "Mod Ci Arg Ci Mod Ai Arg Ai ВЕС"
END IF
SS4 = SS3
COLOR 7
RETURN
GLD:
GL = 0
S=0
GOSUB FUX
Z2 = XS
FOR I = 0 TO W - 1
Z1 = Z2
S=I+1
GOSUB FUX
Z2 = XS
FOR J = 1 TO 3
S=I+J/4
GOSUB FUX
X = Z1 + (Z2 - Z1) * (S - I)
GL = GL + ABS(X - XS)
NEXT J
NEXT I
GL = GL / 3
RETURN
RDR:
FOR J = I TO P0 - 1
GOSUB SWK
NEXT J
203
P0 = P0 - 1
I=I-1
RETURN
RDC:
I = P0
DC:
PRINT " НОМЕР ИСКЛЮЧАЕМОЙ КОМПОНЕНТЫ <="; I; : INPUT
I
IF I = 0 THEN RETURN
X$ = X$ + STR$(I) + " "
L=1
GOSUB RDR
IF I = 0 THEN RETURN
GOTO DC
PDC:
INPUT " ПРИВЕДЕНИЕ К РАСШИРЕННОМУ ПОЛУСТАЦИОНАРНОМУ РЯДУ "; L
IF L = 0 THEN RETURN
PRINT USING " УРОВЕНЬ ПРИВЕДЕНИЯ <#.###^^^^ "; Z / 5;
INPUT A
IF A = 0 THEN A = Z / 5
FOR I = 1 TO P0
IF Z(I) < A THEN
E1(I) = E1(I) / Q(I)
E2(I) = E2(I) / Q(I)
Q(I) = 1
END IF
NEXT I
RETURN
QRU:
G = 0: Z = 0
M = 0: X = 2
T1:
IF N = 1 THEN G = G + 1: E1(G) = -L(0): E2(G) = 0: GOTO T7
IF N = 2 THEN CE = L(1): DE = L(0): GOTO T4
IF M > 2 THEN M = 0: X = X + 2
UE = 2 * RND - 1: VE = RND - 1
T2:
IF TIMER - TIM > .003 * W THEN RETURN
204
B2(0) = 1: B1(0) = 1
B2(1) = L(N - 1) + UE: B1(1) = B2(1) + UE
FOR K = 2 TO N
B2(K) = L(N - K) + UE * B2(K - 1) + VE * B2(K - 2)
B1(K) = B2(K) + UE * B1(K - 1) + VE * B1(K - 2)
NEXT K
CE = B1(N - 2) * B1(N - 2) - B1(N - 1) * B1(N - 3)
IF CE = 0 THEN CE = 1
U1E = (B2(N) * B1(N - 3) - B2(N - 1) * B1(N - 2)) / CE
V1E = (B2(N - 1) * B1(N - 1) - B2(N) * B1(N - 2)) / CE
IF ABS(U1E) < EE AND ABS(V1E) < EE THEN T3
Z=Z+1
IF ABS(U1E) > X OR ABS(V1E) > X THEN M = M + 1: GOTO T1
UE = UE + U1E: VE = VE + V1E
GOTO T2
T3:
M = 0: X = 2
UE = UE + U1E: VE = VE + V1E
CE = -UE: DE = -VE
T4:
UE = -CE / 2: VE = ((CE * CE) / 4) - DE
AE = SQR(ABS(VE))
IF VE < 0 THEN T5
G=G+1
E1(G) = UE + AE: E2(G) = 0
G=G+1
E1(G) = UE - AE: E2(G) = 0
GOTO T6
T5:
G=G+1
E1(G) = UE: E2(G) = AE
G=G+1
E1(G) = UE: E2(G) = -AE
T6:
IF N = 2 THEN T7
FOR I = 0 TO N: B2(I) = 0: NEXT I
FOR K = 2 TO N
205
B2(N - K) = L(N - K + 2) - CE * B2(N - K + 1) - DE * B2(N - K + 2)
NEXT K: N = N - 2
FOR I = 0 TO N: L(I) = B2(I): NEXT I
GOTO T1
T7:
RETURN
EOS:
RESUME NEXT
KOR:
IF O4 <> 0 THEN
X = .0000005 * O4 * (1 + 2 * I / P0)
Y(I, I) = Y(I, I) + X
END IF
RETURN
OBF:
IF P0 = P THEN
FOR I = 1 TO P0
FOR J = 1 TO P0
Y(I, J) = X(I + J - 2)
NEXT J
X3(I) = X(P0 + I - 1)
GOSUB KOR
NEXT I
IF J3 = (W + 2) / 2 THEN
Y(P0, 1) = 1
FOR J = 2 TO P0
Y(P0, J) = Y(P0, J - 1) * ZK
NEXT J
X3(P0) = Y(P0, P0) * ZK
END IF
ELSE
FOR I = 1 TO P0
I1 = I - 1
FOR J = 1 TO P0
J1 = J - 1
206
Y(I, J) = 0
FOR K = 0 TO W - P0
Y(I, J) = Y(I, J) + X(I1 + K) * X(J1 + K)
NEXT K
NEXT J
X3(I) = 0
FOR K = 0 TO W - P0
X3(I) = X3(I) + X(I1 + K) * X(P0 + K)
NEXT K
GOSUB KOR
NEXT I
END IF
N = P0
GOSUB OBR
FOR I = 1 TO P0
Z(I) = 0
FOR J = 1 TO P0
Z(I) = Z(I) + Y(I, J) * X3(J)
NEXT J
NEXT I
RETURN
OBR:
DE = 1
FOR I = 1 TO N
IF Y(I, I) = 0 THEN Y(I, I) = .00000001#
UE = 1 / Y(I, I): Y(I, I) = 1
DE = DE * UE
FOR K = 1 TO N
Y(I, K) = Y(I, K) * UE
NEXT K
FOR J = 1 TO N
IF I = J OR Y(J, I) = 0 THEN BR
UE = Y(J, I): Y(J, I) = 0
FOR L = 1 TO N
207
Y(J, L) = Y(J, L) - UE * Y(I, L)
NEXT L
BR:
NEXT J
NEXT I
DE = ABS(1 / DE)
RETURN
SET:
FOR I = 0 TO 400 STEP 20
LINE (20, I)-(619, I), 8
NEXT I
FOR I = 19 TO 619 STEP 20
LINE (I, 0)-(I, 399), 8
NEXT I
LINE (19, 0)-(19, 400), 7
LINE (19, 200)-(619, 200), 7
LINE (19, 400)-(619, 400), 7
LINE (19, 0)-(619, 0), 7
LINE (619, 0)-(619, 400), 7
RETURN
PRT:
N = 600 / H + O0
IF N > R2 + 20 THEN N = R2 + 20
FOR S = O0 TO N
SH = H * (S(S) - O0)
IF S > S(W) THEN SH = H * (S - O0)
XG = CINT(SH + 19)
X = N6 * X(S)
J1 = CINT(200 - X * 100)
IF J1 > 400 THEN J1 = 400
IF J1 < 0 THEN J1 = 0
IF S > S(W) THEN
GOSUB FUX
IF XS > Q4 THEN XS = Q4
IF XS < -Q4 THEN XS = -Q4
J3 = CINT(200 - N6 * XS * 100)
IF J3 > 400 THEN J3 = 400
208
IF J3 < 0 THEN J3 = 0
END IF
FOR I = -1 TO 1
FOR J = -1 TO 1
IF S <= S(W) THEN PSET (XG + J, J1 + I), 12
IF S > S(W) THEN PSET (XG + J, J3 + I), 7
IF S > S(W) AND S(S) <> 0 THEN
K = CINT(H * (S(S) - O0) + 19)
PSET (K + J, J1 + I), 14
END IF
NEXT J
NEXT I
NEXT S
RETURN
POI:
IF XH < 19 OR XH > 619 OR GP = 0 THEN PO
PUT (XH, J2 - 20), LG, PSET
PO:
GP = 1
CH = (S - O0) * H + 19
IF XS > Q4 THEN XS = Q4
IF XS < -Q4 THEN XS = -Q4
J1 = CINT(200 - XS * N6 * 100)
IF J1 > 390 THEN J1 = 390
IF J1 < 10 THEN J1 = 10
IF CH >= 19 AND CH <= 619 THEN
GET (CH, J1 - 20)-(CH, J1 + 20), LG
LINE (CH, J1 - 20)-(CH, J1 + 20), 15
END IF
XH = CH: J2 = J1
RETURN
PRG:
IP = 0
FOR CH = 0 TO 600
XG = CH + 19
S = CH / H + O0
GOSUB FUX
IF XS > Q4 THEN XS = Q4
209
IF XS < -Q4 THEN XS = -Q4
J1 = CINT(200 - XS * N6 * 100)
IF J1 > 400 THEN J1 = 400
IF J1 < 0 THEN J1 = 0
IF XG = 19 THEN
PSET (XG, J1), 10
ELSE
LINE (XG - 1, YG)-(XG, J1), 10
END IF
YG = J1
NEXT CH
RETURN
PRF:
FOR CH = 0 TO 600
XG = CH + 19
S = CH / H + O0
GOSUB FUN
IF XS > Q4 THEN XS = Q4
IF XS < -Q4 THEN XS = -Q4
J1 = CINT(200 - XS * N6 * 100)
IF J1 > 400 THEN J1 = 400
IF J1 < 0 THEN J1 = 0
IF XG = 19 THEN
PSET (XG, J1), 7
ELSE
LINE (XG - 1, YG)-(XG, J1), 7
END IF
YG = J1
NEXT CH
RETURN
FUX:
XS = 0
FOR I2 = 1 TO P0
X = (Q(I2) ^ S) * (B1(I2) * COS(S * F(I2)) - B2(I2) * SIN(S * F(I2)))
IF E(I2) > 0 THEN X = X * (S ^ E(I2))
XS = XS + X
NEXT I2
210
RETURN
KI:
INPUT " ИМЯ ФАЙЛА "; FILE1$
IF FILE1$ = "" THEN RETURN
OPEN FILE1$ FOR OUTPUT AS #4
RETURN
KIS:
GOSUB KI
PRINT #4, W + N
FOR I = 0 TO W
S = S(I)
GOSUB FUX
IF AD = 2 THEN X1 = X(I) - XS
IF AD = 4 THEN X1 = V4 * XS + (1 - V4) * X(I)
PRINT #4, S; X1
NEXT I
FOR S = W + 1 TO W + N
GOSUB FUX
PRINT #4, S; XS
NEXT S
CLOSE #4
RETURN
KIR:
GOSUB KI
PRINT #4, W
FOR J = 0 TO W
IF AD = 0 THEN PRINT #4, S(J); X(J)
IF AD = 1 THEN S = J: GOSUB FUX: PRINT #4, S; XS
NEXT J
PRINT #4, P0
FOR J = 1 TO P0
PRINT #4, J; E1(J); E2(J); B1(J); B2(J); E(J); P(J)
NEXT J
PRINT #4, " J E1(J) E2(J) B1(J) B2(J) E(J) P(J)"
PRINT #4,
PRINT #4, V0; V1; V2; V3; V4; V5; V6; V7; V8; V9
PRINT #4, " V0 V1 V2 V3 V4 V5 V6 V7 V8 V9"
PRINT #4,
PRINT #4, QS; 1; NU; O6; O7; O8; P2; O0; PQ; PT; P02; O20
211
PRINT #4, " QS XM NU O6 O7 O8 P2 O0 PQ PT P02 O20"
PRINT #4, X$
FOR J = W + 1 TO W + PT
PRINT #4, S(J); X(J)
NEXT J
CLOSE #4
RETURN
KOS:
OPEN FILE$ FOR INPUT AS #5
INPUT #5, W
O7 = 0
FOR I = 0 TO W
INPUT #5, S(I), X(I)
S2(I) = S(I): X2(I) = X(I)
IF S(I) <> I THEN O7 = 1
NEXT I
IF O5 = 1 THEN CLOSE #5: RETURN
X$ = ""
INPUT #5, A
IF A > 1 AND A < S(W) THEN
O5 = 1
P0 = A
FOR J = 1 TO P0
INPUT #5, A, E1(J), E2(J), B1(J), B2(J), E(J), P(J)
NEXT J
INPUT #5, A$
INPUT #5, A$
INPUT #5, A, A, A, A, A, A, A, A, A, A
INPUT #5, A$
INPUT #5, A$
INPUT #5, QS, A, NU, A, A, A, P2, A, PQ, PT, P02, O20
INPUT #5, A$
INPUT #5, X$
IF P02 = 0 THEN P02 = P0
GOSUB KRS
212
FOR I = W + 1 TO W + PT
INPUT #5, S(I), X(I)
S2(I) = S(I): X2(I) = X(I)
NEXT I
END IF
CLOSE #5
RETURN
CEN:
FOR I = 1 TO P0
E(I) = 0
NEXT I
FOR I = 1 TO P0 - 1
IF E(I) = 0 THEN
K=0
FOR J = I + 1 TO P0
IF E(J) = 0 THEN
Z = ABS(E1(I) - E1(J)) + ABS(E2(I) - E2(J))
IF Z < V6 THEN K = K + 1: E(J) = K
END IF
NEXT J
END IF
NEXT I
RETURN
FUN:
IF O$ = "R" THEN S = W - S
IF O3 = 0 THEN S = S + S(P2)
XS = 1 - COS(.53 * PI * S + .1) - COS(.31 * PI * S + .15)
XS = XS + SIN(.39 * PI * S - .2) + SIN(.23 * PI * S - .3)
XS = XS + .5 * COS(PI * S)
IF O$ = "R" THEN S = W - S
IF O3 = 0 THEN S = S - S(P2)
RETURN
END
213
Авторами разработаны также другие специализированные программы для прогнозирования. Перечислим лишь некоторые из них:
APR12 – Выбор числа точек и порядка процесса по ошибкам аппроксимации последних или пробных точек. Увеличение точности
прогноза с помощью DP – итераций. Программа создана на базе однородных разностных уравнений для равноотстоящих точек процессов.
ANF – Выбор числа точек и порядка процесса по критерию стационарности. Оптимизация корней и коэффициентов разностного
уравнения и ряда путем случайных вариаций исходных равноотстоящих точек. Использование метода Монте – Карло позволяет существенно уменьшить вычислительные затраты на решение оптимизационных задач.
AGR – Построение нескольких графиков процессов, определенных для одного и того же количества исходных точек. Определение
параметров и прогнозов этих процессов.
Дополнительно разработаны также расширенные аналоги всех
приведенных выше программ – APNR12U6, APR12U, ANFU, AGRU2
для компилирующего языка PB версии 5.05.0131. Помимо двух-трех
кратного повышения быстродействия, программы используют всю
оперативную память машины и работают в операционных системах
Windows XP, Windows-7 и им подобных.
214
Научное издание
КОЛЬВАХ Владимир Федорович
КОЛЬВАХ Денис Владимирович
ПРОГНОЗИРОВАНИЕ СЛОЖНЫХ ПРОЦЕССОВ
С ПОМОЩЬЮ КОМБИНИРОВАННЫХ РЯДОВ
Монография
Научный редактор:
доктор технических наук, профессор А. Г. Дедегкаев
Редактор: Иванченко Н. К.
Компьютерная верстка: Цишук Т. С.
Подписано в печать 12.11.2013. Формат 60х84 1/16. Бумага "Снегурочка".
Гарнитура «Таймс». Печать на ризографе. Усл. п.л. 12,44. Тираж 50 экз. Заказ №
.
Северо-Кавказский горно-металлургический институт (государственный технологический
университет). Издательство «Терек».
Отпечатано в отделе оперативной полиграфии СКГМИ (ГТУ).
362021, г. Владикавказ, ул. Николаева, 44.
215
Download