В. Ф. КОЛЬВАХ, Д. В. КОЛЬВАХ ПРОГНОЗИРОВАНИЕ СЛОЖНЫХ ПРОЦЕССОВ С ПОМОЩЬЮ КОМБИНИРОВАННЫХ РЯДОВ Монография Владикавказ 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]. В дальнейшем будет показано, что это ограничение не имеет принципиального характера. Среди всего многообразия форм разностных уравнений рационально выбрать следующую: xqk f q xq1k f 2 x1k f1 xk 0 , 11 (2.3) где q – порядок уравнения, k = 0, 1, 2, …, w – q, … – номер точки процесса. Соответствующее выражению (2.3) характеристическое уравнение имеет вид [21]: f c c q f q c q1 f 2 c f1 0 . (2.4) Формула для вычисления коэффициентов fi следует из уравнения (2.3), если известны начальные точки процесса x0, x1 , ..., xw. Полагая k = 0, 1, …, w - q, получим систему линейных уравнений относительно неизвестных коэффициентов fi: x0 x 1 xwq xq 1 xq xw1 x1 x2 xwq 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 xwq 1 1 xq 1 xq xw1 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 xwq 1 1 xq 1 xq xw1 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), процесс в системе описывается неоднородным разностным уравнением того же вида: xqk f q xq1k f 2 x1k f1 xk u (k ) , (2.8) где u(k) обычно считается вынуждающим воздействием. Условимся считать также, что функцию u(k) можно представить в виде конечного ряда типа (2.2): u k p d i 1 13 i eik k gi1 . (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 q22 d q 1d q 3 bq 1d q 1 bq d q 2 d q22 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 , b1 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 coski i sin ki k mi 1 , (2.16) i 1 где ai i ji , ci i ji , i Arg(ci ). При использовании данной формулы некоторое упрощение достигается за счет того, что комплексные величины ai, ci всегда будут иметь сопряженные пары. Эти пары будут давать одинаковый вклад в сумму (2.16). Пример 2.1 Пусть линейный процесс описывается следующим соотношением: xk 2 e 0,02k cos0,5 Пk e 0,01k cos0,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,087110-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,461510–4 –8,094910–3 –8,087110–3 –5,233210–2 –7,524510–2 –7,518310–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,0550103 х21 = 1,0547103 x22 = 2,6228103 х22 = 2,6204103 В дополнение к полученным ранее выводам можно заключить, что увеличение количества исходных точек при одновременном росте задающего временного интервала также приводит к повышению точ25 ности прогнозирования. То же происходит, если увеличивать этот временной интервал не только в сторону роста величины k (вперед), но и путем присоединения точек с малыми, в том числе отрицательными, значениями аргумента k (назад). Последнее утверждение иллюстрировано расчетами, приведенными в табл. 2.4 . Таблица 2.4 № рисунка – – – – – q 5 6 7 9 11 Прогноз для х21 1,0850103 1,0491103 1,0556103 1,0528103 1,0550103 Прогноз для х22 2,9586103 2,5535103 2,6261103 2,5950103 2,6228103 Рассмотренные примеры наглядно демонстрируют хорошие экстраполирующие возможности ряда (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 xk 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 l1) . 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 cqw1 0 dc1wa1c1w1 0 (3.4) откуда, после исключения дифференциалов, найдем: I G Q G 1 1 0 c1 cq a1 c12 cq2 2a1c1 w w w1 c1 cq wa1c1 aq 2 a q cq , waq cqw1 0 (3.5) где I – единичная матрица. Таким образом, искомая матрица G получается обращением матрицы Q: G Q 1 1 c1 c12 c1w 1 0 cq a1 2 cq 2a1c1 w cq wa1c1w1 1 0 aq 2aq cq . (3.6) waq cqw1 Пусть эта матрица будет содержать элементы 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 w1 g ij dx j 1 , j 1 dci q w1 g ij dx j 1 . (3.8) j 1 Важной особенностью элементов gij матрицы G являются следующие свойства: w1 g ij 1 для i<=q , j 1 w1 g ij 0 для i>q . (3.9) j 1 Это означает, что одновременное одинаковое изменение всех исходных точек приводит к такому же изменению всех коэффициентов аi. При этом корни ряда ci не меняются. Степень влияния всех исходных точек на компоненты ряда удобно оценивать с помощью интегральных коэффициентов Hi, полученных для одинаковых изменений dxj = dx: Hi 1 w1 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,2010-1 0,20 0,1710-1 0,5210-2 0,8110-1 0,30 0,1610-1 0,49 0,1210-1 0,14 Hi ai 0,11 Hi ci 0,38101 11, 12 13, 14 15, 16 17, 18 0,2710- 4 9, 10 0,4010-3 7, 8 0,2710- 4 5, 6 0,4510-3 3, 4 0,1810- 4 1, 2 0,2910-3 Номеркомп. Из табл. 3.1 следует, что первые шесть компонент существенно меньше подвержены действию шумов, чем остальные 12. То есть эти шесть компонент являются информационными. Теперь при тех же условиях увеличим уровень шумов исходной числовой последовательности до величины 0,2(RND – 0,5), т. е. в 20 раз. В результате получим следующую таблицу: Таблица 3.2 Hi ci 0,1010-2 0,2310-3 0,9210-3 0,5710-3 0,6210-3 Hi ai 0,3610-2 0,8810-2 0,6010-2 0,1210-1 17, 18 0,2910-1 15, 16 0,5810-2 13, 14 0,17 11, 12 0,1610- 4 9, 10 0,2310-3 7, 8 0,2510- 4 5, 6 0,44*10-3 3, 4 0,1710- 4 1, 2 0,3010-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 qi ,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 ci1 ( 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,399010–1 1,5559 –5,2570 1,2173101 –2,3293101 3,6450101 –4,5747101 5,2880101 –4,5905101 3,7201101 –2,2693101 1,1592101 –4,1167 М (е, 3) –1,8371 7,0356 –2,2106101 4,7042101 –7,7073101 1,2118102 –1,1317102 1,3876102 –7,9609101 5,9763101 –1,9443101 4,7717 –2,4245 М (е, 8) –9,7636 4,0203102 –1,2513102 2,7376102 –4,4383102 7,2293102 –6,5378102 8,6438102 –4,8643102 4,0754102 –1,5752102 5,8985101 –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) e0 и не зависит от выбора величины у. Сумма (3.16) существенно меньше отдельных значений M (e , y) . Тогда, по закону больших чисел, совместное действие чисто случайных погрешностей исходных точек будет намного меньше, чем влияние погрешности какой-либо одной точки. Так, например, добавление шумов величины 210-3 (RND – 0.5) к процессу (3.14) вызывает следу40 ющие отклонения прогноза точек Δх13=8,618910-3, Δх15=1,620410-2, Δх20=1,71510-1. Именно этот факт позволяет надежно прогнозировать процессы со случайными погрешностями исходных точек. Наоборот, принудительное небольшое изменение одной или нескольких точек исходной последовательности может резко ухудшить прогноз. В том же примере, если положить Δx5 =10-3 в процессе без шумов, получим: Δх13=4,075510-2, Δх15=2,546410-1, Δх20=8,342310-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 xq1k ... 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 1k 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 ik Zj x j k ; k 0 m x ik 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 – функция выделения действительной части комплексного числа. Введем теперь следующие обозначения: для первой группы: Rik k mi 1cik , i ai , i 1, ... , q1 , для второй группы: 45 (3.28) Rik jIik k mi 1cik , i j i 2ai , i q1 1, ..., q2 . (3.29) Тогда ряд (3.27) преобразуется следующим образом: xk* q1 i 1 R I . q2 i Rik 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 ij1 Z ij3 Z ij2 Z ij4 (3.31) где 46 1 : 1 : Zi : , : q1 q2 q1 q2 1 : Z i2 q Z ij1 w R R , 1 i q k k i 1 j q2 , 1 j q1 q2 ; k 0 Z ij2 w I k 0 Z ij3 k i q2 R jk , q1 q2 i q, 1 j q1 q2 ; w R I k i k 0 Z ij4 w I k i q2 k 0 w k j q2 , 1 i q1 q2 , q1 q2 j q; I jkq2 , q1 q2 i q, q1 q2 j q; Z i1 xk Rik , 1 i q1 q2 ; k 0 Z i2 w x k 0 k I ikq2 , 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 ji , ai i ji . При выполнении вариаций следует учитывать то, что эти аргументы не являются свободными в математическом смысле. По виду ограничений на изменения их можно условно разделить на три группы: 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 | 0mi1 | ai | wmi1 | 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 wq 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 ji . 14. Кратные корни по типу п.13 с колебательными компонентами ai kmi-1cik, затухающими при k . 15. Некратные комплексно сопряженные пары корней ci i ji , имеющие |ci | > 1. Определяют нарастающие колебательные компоненты ai cik. 16. Кратные корни по типу п.15 с нарастающими компонентами mi-1 k ai k ci . 17. Некратные комплексно сопряженные пары корней ci i ji , для которых |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 jni , (4.1) i 1 где φi – частоты компонент, q _ реальное число членов ряда, не зависящее от количества исходных точек w+1, если оно достаточно велико. Все частоты i ряда (4.1) делятся на пары равных по величине и противоположных по знаку величин от 0 до , за исключением частоты , соответствующей корню характеристического уравнения с = –1. Чаще всего встречается частота 0 , определяющая постоянную составляющую процесса, как фаза корня с = 1. Замечательным свойством коэффициентов fi разностного и характеристического уравнений для стационарных процессов является симметрия этих коэффициентов. Запишем эти уравнения: xqn f q xq1n f1 xn 0 , (4.2) где n = 0, 1, …, m = w – q, … . f (c) c q f q c q1 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 xnq1 ) f ( q1) / 2 ( xn ( q1) / 2 xn ( q1) / 2 ) xnq xn , (4.6) 2. Порядок q нечетный и в уравнении присутствует корень ci = –1: f 2 ( xn 1 xnq1 ) f ( q1) / 2 ( xn ( q1) / 2 xn ( q1) / 2 ) xnq 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 xnq1 ) f q / 2 ( xn ( q2) / 2 xn ( q2) / 2 ) xnq 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,2RND 0,5 . 65 (4.12) Если не вводить шумы, идеальный ряд для этой функции будет иметь следующие компоненты: а0 = 1,0000 а1,2 = –0,4944 0,747210–1, с1,2 = 0,5621 j0,8271, а3,4 = –0,993310–1 j0,4900, с3,4 = 0,3387 j0,9409, а5,6 = –0,4975 j0,499210–1, с5,6 = –0,941110–1 j0,9956. Будем решать задачу для процесса с шумами обычным методом при исходном числе членов ряда q = 13 и w = 24 . Получим полный ряд типа (2.2): а0 = 0,1014101 а1,2 = –0,5144 j0,2836, с1,2 = 0,3449 j0,9811, а3,4 = –0,4624 j0,598210–1, с3,4 = –0,1107 j0,9959, а5,6 = –0,3379 j0,1993, с5,6 = 0,5916 j0,8106, а7,8 = 0,163410–1 j0,404310–2, с7,8 = 0,8951 j0,4963, а9,10 = –0,122810–1 j0,131910–1, с9,10 = 0,8982 j0,4298, а11,12 = –0,3008 0,622210–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,494110–1, с3,4 = –0,944510–1 j0,9917, а5,6 = –0,4551 0,1308, с5,6 = 0,5720 j0,8198. Итоги расчета представлены на рис. 4.2. При этом определены следующие значения ближнего и дальнего прогнозов с соответствующими погрешностями: х25 = 0,806510–1 Δх25 = –0,860010–1 х26 = –0,3187 Δх26 = –0,2174 х35 = 0,9075 Δх35 = 0,3322 х36 = 0,2857101 Δх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,654110–1, с3,4 = –0,927110–1 j0,9957, а5,6 = –0,4866 j 0,707410–1, с5,6 = 0,5632 j0,8263. 66 Результаты расчета представлены на рис. 4.3. Получены следующие значения аналогичного прогноза: х25 = 0,206610–1 Δх25 = –0,260110–1 х26 = –0,4804 Δх26 = –0,556810–1 х35 = 0,1180101 Δх35 = 0,598310–1 х36 = 0,2744101 Δх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 p2 c1 w c1 c2p 1 cqp 1 c2p 2 cqp 2 c2w cqw a1 x p 1 a 2 x p2 . 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,813510 -1, x 18 = 0,251710 -1 составили: e17 = 0,65710 –2, e18 = –0,86310 –1. Это результат низкого качества. Для построения процесса x*(t*) будем использовать моменты времени t = 0, t1 , 2t1 , …, 16t1 . Это будет соответствовать значениям t* = 0, 1, 2 …, 16. После определения соответствующих точек процесса x*(t*) и построения по ним полного первичного ряда определяем погрешности тех же точек для моментов t* = 172 / 16, 182 / 16: e17 = –0,15810 –5, e18 = –0,37610 –4. Это на 3–4 порядка лучше, чем в предыдущем случае. Таким образом, переход от переменной частоты первичного процесса x(t) к постоянной частоте нового процесса x*(t*) резко улучшил точность прогноза. Если не использовать переменный масштаб времени, получение сопоставимых погрешностей прогноза указанных значений процесса x(t) потребует использования в два раза большего количества исходных точек на том же временном интервале. При этом можно получить погрешности: e17 = –0,15110 –5, e18 = 0,28610 –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Гц-110-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,71210-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,11810-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,15710-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,21110-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,13010-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,76010-1 , 99 и 0,49610-1, 96 и 0,88910-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,31510-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,26510-3, а для табл. 5.14 E = 0,12710-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,19110-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,81610-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,17410-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 задать разностное уравнение в виде: yqk g q yq1k g q1 yq2k g1 yk 0 , (6.2) то коэффициенты этого уравнения можно выразить через коэффициенты уравнения (2.3) следующим образом: g1 fq 1 , g2 f1 f1 , , gq f2 . f1 (6.3) Корни di характеристического уравнения: d p g p d p1 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 m1 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 mj1 , (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 pk f p x p1k ... f1 xk g 'p y pk ... g a' yak , yqk g q yq1k ... g1 yk f q' xqk ... f b' xbk , 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 ... xw1 ... 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 w1 ... 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 p1 ... f 2 z f1 , G z q gq z q1 ... g2 z g1 , F ' f q' z q f q' 1 z q1 ... f b' z b , G ' g 'p z p g 'p1 z p1 ... 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' 1Sq1 ... fb' Sb , Q' g 'pQp g 'p1Qp1 ... 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,814110-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 q1 f q(i 1) c q2 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 xwq xwq 1 xw1 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 p1k f p x pk f p1x p1k f1x1k 0 . (7.17) Соответствующий этому уравнению характеристический многочлен имеет следующий вид [38]: c 1 f c c 1 c p f p c p1 f p1c p2 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 xw1 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 pk f p y p1k f 2 y1k 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)1k f p(i)1z (pi) 2k f 2(i ) z1(i )k f1(i ) zk(i ) 0 . Соответствующий этому выражению характеристический многочлен находится из общего многочлена (7.18): f (i ) (c) f (c) c p1 f p(i )1c p2 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 p1 k f p(i )1 y p 2k f 2(i ) y1k f1(i ) yk cik (cip1 f p(i )1cip2 f 2(i ) ci f1(i ) ) , (7.25) где yj = xj - a0. При этом выражение в скобках знаменателя легко вычисляется без возведения корня ci в большую степень: f (i ) (ci ) (ci c1 )(ci c2 )(ci ci1 )(c1 ci1 )(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