РефератыИнформатикаИсИспользование нечеткой искусственной нейронной сети TSK Takagi Sugeno Kanga в задаче прогнозирования

Использование нечеткой искусственной нейронной сети TSK Takagi Sugeno Kanga в задаче прогнозирования

МИНИСТЕРСТВО ОБРАЗОВАНИЯ и НАУКИ УКРАИНЫ


НАЦИОНАЛЬНАЯ АКАДЕМИЯ НАУК УКРАИНЫ


НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ УКРАИНЫ


«КИЕВСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ»


НАУЧНО-ОБУЧАЮЩИЙ КОМПЛЕКС


«ИНСТИТУТ ПРИКЛАДНОГО СИСТЕМНОГО АНАЛИЗА»


Курсовая робота

По дисциплине«Основы проектирования интеллектуальных систем»


«Использование нечеткой искусственной нейронной сети


TSK (Takagi, Sugeno, Kang’a) в задаче прогнозирования валютных курсов»


Выполнил


Поляновский Н. А


група КА-55


5 курс


Принял


Зайченко Ю. П


Киев – 2009г.


Реферат


Ключевые слова: прогнозирование, нечеткая нейронная сеть, нечеткость, валютные курсы, TSK.


В данной работе рассматривается прогнозирование валютных курсов. Рассматривалась искусственная нечеткая нейронная сеть TSK. В качестве критерия правильности прогноза были выбраны средний квадрат отклонения и средняя абсолютная процентная погрешность. ННС TSKсравнивается с методом экспоненциального сглаживания и с искусственной нейронной сетью с кубическими сплайнами. Были получены результаты, которые свидетельствуют о том, что рассматриваемый искусственная нейронная сеть может быть использованы в деятельности банков и других инвесторов.


Введение


Повышение эффективности краткосрочных операций с валютой – одна из важнейших задач в деятельности банков и других инвесторов. Ежедневно (а иногда и несколько раз в день) банки продают и покупают различные валюты в значительных объемах, стремясь придать движение имеющимся в наличии свободным валютным резервам с целью избежать потерь от конъюнктурных колебаний курсов и получить дополнительную прибыль. Эффективность валютных операций существенным образом зависит он надежности прогнозов колебаний курсов валют. Именно поэтому краткосрочное прогнозирование курсов имеет большое практическое значение для оперативной деятельности банков и прочих инвесторов, а вопрос о возможности применения статистических методов для этой цели представляется актуальным.


Информация о динамике курсов национальных валют создает впечатление хаотического движения: падение и рост курсов сменяют друг друга в каком-то случайном порядке. Даже если за большой интервал времени отмечается тенденция, например, к росту, то на графике легко можно увидеть, что эта тенденция прокладывала себе путь через сложные движения временного ряда курса валюты. Направление ряда все время меняется под воздействием нерегулярных и часто неизвестных сил. Исследуемый объект в полной мере подвержен воздействию стихии мирового рынка, и точной информации о будущем движении курса нет. Необходимо сделать прогноз.


В данной курсовой работе предпринята попытка прогнозирования валютных курсов с использованием искусственной нейронной сети.


Раздел 1. Область исследований


1.1 Важность задачи прогнозирования


В наше время перед человечеством стоит задача прогнозирования различных важных с точки зрения прикладной деятельности человека показателей. Эти показатели могут быть физическими, социальными и экономическими. Жизненно важным для человечества является задача своевременного прогнозирования землетрясений, цунами, повышенной солнечной активности. Не менее важной задачей прогнозирования является прогнозирование социальных показателей, таких как: численность народонаселения, уровень смертности, градация граждан по возрастному цензу в будущем. В условиях рыночной экономики для обеспечения населения необходимыми товарами и услугами, а также для обеспечения нормального функционирования экономики требуется прогнозировать следующие макроэкономические показатели: валовой внутренний продукт, валовой внутренний продукт, внешнеэкономическое торговое сальдо, курсы национальных валют.


1.2 Существующие методы прогнозирования


Одним из самых первых и распространенных методов прогнозирования является метод наименьших квадратов (МНК). В основе этого метода лежит гипотеза о том, что временной ряд имеет линейный тренд. Данное допущение в задаче краткосрочного прогнозирования валютных курсов является недопустимым.


В середине двадцатого века независимо друг от друга Браун и Холт предложили метод экспоненциального сглаживания. Суть метода состоит в том, что прогноз на следующий шаг является взвешенной суммой предыдущих, уже известных членов временного ряда. Веса при членах временного ряда экспоненциально уменьшаются со временем.


В 60-х годах двадцатого века Калманом был предложен метод фильтрации, позже названный в его честь. Суть данного метода состоит в представлении временного ряда в модели пространстве состояний [2].


Метод Группового Учета Аргументов (МГУА) разрабатывается академиком НАН Украины А.Г. Ивахненко и его школой, с 60-х годов двадцатого века, и является типичным методом индуктивного моделирования и одним из наиболее эффективных методов структурно-параметрической идентификации сложных объектов, процессов и систем по данным наблюдений в условиях неполноты информации.


Искусственные нейронные сети являются перспективным направлением в создании искусственного интеллекта и еще одним инструментом, позволяющим осуществлять прогнозирование.


Раздел 2. Описание выбранных инструментов


2.1 Общая характеристика нечетких нейронных сетей


Нечеткие искусственные нейроны, так же называемые нейронными клетками, узлами модулями, моделируют структуру и функции биологических нейронов. Архитектура и особенности нечетких искусственных нейронных сетей, состоящих из нейронов, зависит от конкретных задач, которые будут решаться с их помощью.


Соединенные между собой нейроны создают искусственную нейронную сеть (ИНС). Таким образом ИНС – это пара (M, V), где M – множество нейронов; V – множество связей. Структура сети задается в виде графа, в котором вершинами являются нейроны, а ребрами являются связи.


ИНС могут быть применены в следующих областях и для решения следующих задач: аппроксимация функций, создание ассоциативной памяти, архивирование данных, распознавание и классификация, оптимизационные задачи, управление сложными процессами, прогнозирование, нейрокомпьютеры.


Нечеткие нейронные сети (ННС) применяются в системах с нечеткой логикой. ННС помогают снять неопределенность в задачах, где входные переменные заданы интервально


2.2 Общая характеристика среды программирования Delphi 7


Для программной реализации искусственной нейронной сети, рассматриваемой в данной курсовой работе, была использована визуальная среда программирования Delphi 7. Выбор был обусловлен возможностью быстрого написания приложения с удобным пользовательским интерфейсом для семейства операционных систем Windows и Linux.


Раздел 3. Математическое описание задачи


3.1 Описание общей задачи прогнозирования валютных курсов


В данном подразделе рассматривается прогнозирование валютных курсов. Объектом исследования является временной ряд последовательных ежедневных данных (наблюдений) о динамике валютных пар, который будем записывать как



где – длина ряда.


Исходные ряды исследуются на абсолютную случайность. Проверяется, не являются ли они белым шумом. В качестве критериев случайности используются: критерий поворотных точек, критерий распределения длины фазы и критерий, основанный на знаках разностей [1].


В целом, проведенное автором работы изучение исходных рядов валютных курсов показало, что, несмотря на сильную колеблемость ежедневных данных, они не являются совершенно случайными.


3.2 Описание структуры ННС TSK


На рисунке 1 приводится структура нейронной сети TSK. Выделяются следующие характеристики, свойства, особенности и функциональные элементы сети:


1) Обучение проводится с учителем. Т.е. для каждого входного вектора имеется желаемое для выхода значение.


2) Выборка разбивается на 2 части: обучающая и проверочная.


Обобщенную схему вывода в модели TSK при использовании правил и переменных можно представить в следующем виде:


, то ;


, то


где - значение лингвистической переменной для правила с функцией принадлежности (ФП)


, ,


В нечеткой нейронной сети TSK пересечение правил определяется ФП в форме произведения, т.е.



При правилах вывода композиция исходных результатов сети определяется по следующей формуле (аналогично выводу Сугено):



где ,


Нечеткая нейронная сеть TSK задается многослойной структурной сетью, представленной на рисунке 1. В такой сети выделяют 5 слоев.


1. Первый слой выполняет раздельную фаззификацию каждой переменной , , определяя для каждого -го правила вывода значение ФП в соответствии с функцией фаззификации. Это параметрический слой с параметрами , которые подлежат адаптации в процессе обучения.


2. Второй слой выполняет агрегирование отдельных переменных , определяя результирующую степень принадлежности для вектора условиям -го правила. Это не параметрический слой.


3. Третий слой представляет собой генератор функции TSK, в котором рассчитывается значения . В этом слое также происходит умножение функции на , сформированных на предыдущем слое. Это параметрический слой, в котором адаптации подлежат линейные параметры (веса), для , , определяющие функции последствий правил.


4. Четвертый слой составляют 2 нейрона-сумматора, один из которых рассчитывает взвешенную сумму сигналов , а второй определяет сумму весов .


5. Пятый слой состоит из одного единственного нейрона. В нем веса подлежат нормализации и вычисляется выходной сигнал в соответствием с выражением



Это так же не параметрический слой.


Из приведенного описания следует, что нечеткая сеть TSK содержит только 2 параметрических слоя (первый и третий), параметры которых уточняются в процессе обучения. Параметры первого слоя () будем называть нелинейными, а параметры третьего слоя - линейными весами.


Общее выражение для функциональной зависимости для сети TSK задается так:















Рисунок 1. Структура ННС TSK


3.3 Алгоритм обучения


Рассмотрим гибридный алгоритм обучения. В гибридном алгоритме параметры, подлежащие адаптации, делятся на 2 группы. Первая из них состоит из линейных параметров третьего слоя, а вторая группа – из параметров нелинейной ФП первого слоя. Уточнение параметров происходит в 2 этапа.


На первом этапе при фиксации отдельных значений параметров функции принадлежности, решая систему линейных уравнений, рассчитываются линейные параметры полинома TSK. При известных значениях ФП зависимость для выхода можно представить в виде линейной формы относительно параметра :


, где ,


При размерности обучающей выборки , и замене выходного сигнала сети ожидаемым значением получим систему из линейных уравнений вида



где означает уровень активации (вес) условия -го правила при предъявлении -го входного вектора . Это выражение можно записать в матричном виде



Размерность матрицы равняется . При этом количество строк обычно бывает значительно больше количества столбцов . Решение этой системы уравнений можно получить как обычными методами, так и за один шаг, используя псевдо инверсию матрицы :


,


где - псевдо инверсная матрица.


На втором этапе после фиксации значения линейных параметров рассчитываются фактические выходные сигналы , , для этого используется линейная зависимость:



После этого рассчитывается вектор ошибки и критерий



Сигналы ошибок направляются через сеть в обратном порядке согласно методу BackPropagation вплоть до первого слоя, где могут быть рассчитаны компоненты . После вычисления вектора градиента делается шаг спуска градиентным методом. Соответствующие формулы обучения (для самого простого метода быстрого спуска) принимают вид:


,


,


,


где - номер итерации.


После уточнения нелинейных параметров снова запускается процесс адаптации линейных параметров функции TSK (первый этап) и нелинейных параметров (второй этап). Этот цикл продолжается до тех пор пока не стабилизируются все параметры процесса.


В курсовой работе использовалась обобщенная колоколообразная функция принадлежности



соответствующие формулы градиентного метода целевой функции для одной пары данных принимают вид:


,


,



Соответствующие производные



принимают следующий вид:


,


,



для ,


где - дельта Кронекера, ;


При практической реализации гибридного метода обучения нечетких сетей доминирующим фактором их адаптации считается первый этап, на котором веса подбираются с использованием псевдо инверсии за один шаг. Для уравновешивания его влияния второй этап много раз повторяется в каждом цикл.


Представленный гибридный алгоритм – один из наиболее эффективных способов обучения нечетких нейронных сетей. Его характерной чертой является разделение процесса на два отделенных во времени этапа. Если учитывать, что расчетная сложность каждого алгоритма оптимизации нелинейно зависит от количества параметров, которые подлежат оптимизации, то уменьшение размерности задач оптимизации значительно сокращает объем расчетных операций и повышает скорость сходимости алгоритма. Благодаря этому гибридный алгоритм является более эффективным в сравнении с обычным градиентным методом. [3]


Раздел 4. Полученные результаты


4.1 Экспериментальные исследования ННС TSK


Рассматриваются временные ряды валютных курсов российского рубля по отношению к американскому доллару, евро, британскому фунту стерлингов, швейцарскому франку, японской йене. А также рассматриваются временные ряды курсов валютных пар доллара к евро, британскому фунту стерлингов, японской йене. Временные ряды взяты за 2007, 2008 и начало 2009 года – всего 500 измерений. Данные о временных рядах взяты с сайта биржевых торгов Forex и официального сайта центрального банка России.


Количество точек обучающей выборке в эксперименте взято равным 250, количество точек проверочной выборки – 250. На рисунках 2-9 приведены графики курсов валют реальные данные и прогноз на 1 шаг. Видно, что реальные данные от спрогнозированных данных визуально практически неотличимы. На рисунках 10-17 приведены графики курсов валют реальные данные и прогноз на 3 шага. Видно, что реальные данные от спрогнозированных данных уже можно отличить визуально. В приложении 1 приведены численные значения реальных и спрогнозированных значений курсов валют, а также ошибки прогноза.


Каждая валютная пара рассматривается независимо от других валютных пар. Входными данными для прогнозирования значения курса валютной пары являются наблюдения за ежедневными курсами этой валютной пары за предыдущие периоды. Выходом является прогноз курса рассматриваемой валютной пары на следующий период.


Критерием эффективности прогноза было выбрано среднеквадратическое отклонение СКО.



где – прогноз на -ый момент времени, сделанный в момент времени .


Вторым критерием эффективности был САПП.


.


СКО и САПП искались отдельно на обучающей выборке и отдельно на проверочной выборке. Полученные значения СКО и САПП приведены в разделе 4.4., где будет проведена сравнительная характеристика рассматриваемой ИНС и метода экспоненциального сглаживания.



Рисунок 2. График курса валюты доллара США к евро. Зеленый – реальные данные, красный – спрогнозированные



Рисунок 3. График курса валюты доллара США к британскому фунту стерлингов. Зеленый – реальные данные, красный – спрогнозированные



Рисунок 4. График курса валюты доллара США к евро. Зеленый – реальные данные, красный – спрогнозированные



Рисунок 5. График курса валюты российского рубля к доллару США. Зеленый – реальные данные, красный – спрогнозированные



Рисунок 6. График курса валюты российского рубля к евро. Зеленый – реальные данные, красный – спрогнозированные



Рисунок 7. График курса валюты российского рубля к британскому фунту стерлингов. Зеленый – реальные данные, красный – спрогнозированные



Рисунок 8. График курса валюты российского рубля к швейцарскому франку. Зеленый – реальные данные, красный – спрогнозированные



Рисунок 9. График курса валюты российского рубля к доллару японской йене. Зеленый – реальные данные, красный – спрогнозированные



Рисунок 10. График курса валюты доллара США к евро. Зеленый – реальные данные, красный – спрогнозированные на 3 шага



Рисунок 11. График курса валюты доллара США к британскому фунту стерлингов. Зеленый – реальные данные, красный – спрогнозированные на 3 шага



Рисунок 12. График курса валюты доллара США к японской йене. Зеленый – реальные данные, красный – спрогнозированные на 3 шага



Рисунок 13. График курса валюты российского рубля к доллару США. Зеленый – реальные данные, красный – спрогнозированные на 3 шага



Рисунок 14. График курса валюты российского рубля к евро. Зеленый – реальные данные, красный – спрогнозированные на 3 шага



Рисунок 15. График курса валюты российского рубля к британскому фунту стерлингов. Зеленый – реальные данные, красный – спрогнозированные на 3 шага



Рисунок 16. График курса валюты российского рубля к швейцарскому франку. Зеленый – реальные данные, красный – спрогнозированные на 3 шага



Рисунок 17. График курса валюты российского рубля к японской йене. Зеленый – реальные данные, красный – спрогнозированные на 3 шага


4.2 Экспериментальные исследования метода экспоненциально сглаживания


Метод экспоненциально сглаживания (МЭС) является адаптивным алгоритмом прогнозирования. МЭС проявил себя с хорошей стороны во многих экспериментальных исследованиях [1]. Поэтому МЭС был выбран для сравнения потенциальной эффективности ННС TSKв данной курсовой работе.


Экспоненциальное сглаживание ряда осуществлялось по рекуррентной формуле:



где – значение экспоненциальной средней в момент ; – постоянная сглаживания (параметр адаптации), , .


При прогнозировании исходная выборка была разбита на 2 части: обучающую и проверочную. Длины обучающей и проверочной выборке в эксперименте с ННС TSK и МЭС были равны. На обучающей выборке была выбрана наилучшая постоянная сглаживания . Далее она использовалась для прогнозирования на проверочной выборке.


4.3 Экспериментальные исследования нейронной сети с кубическими сплайнами


На рисунке 2 приводится структура нейронной сети, которая была ранее предложена автором курсовой работы. Данная нейронная сеть приводится для сравнения. Выделяются следующие характеристики, свойства, особенности и функциональные элементы сети:


1. Обучение проводится с учителем. Т.е. для каждого входного вектора имеется желаемое для выхода значение.


2. Выборка разбивается на 2 части: обучающая и проверочная.


3. На вход необходимо подавать сигналы


. ,


где – память системы.


4. На входов подаются следующие величины


,


где – память системы.


5. На выходе ИНС ожидается прогноз изменения значения величины . Т.е.



где – выход ИНС.


6. функции принадлежности типа кубических сплайнов, предложенные Е. В. Бодянским. На интервале [0,1], нужно расположить функций принадлежности при этом центр расположен в нуле (), а центр в единице




.


Данные функции принадлежности не допускают «дыр» и обеспечивают единичное разбиение, т.е.




Рисунок 2. Структура исследуемой нейронной сети


4.4 Сравнение полученных результатов


В таблице 1 приведено СКО на обучающей и через черту приведено СКО на проверочной выборке для ННС TSK, ИНС с кубическими сплайнами (далее ИНС) и МЭС.


Как видно с таблицы 1 ННС TSK на обучающей выборке во всех экспериментах показала СКО более чем в два раза меньшее, чем МЭС.


На проверочной выборке ННС TSK также показала лучший результат во всех экспериментах в сравнении с МЭС.


ННС TSK в сравнении с ИНС показала приблизительно одинаковые результаты, но в среднем на 3.75% хуже по критерию СКО.





















USD-EUR USD-GBR USD-JPY

ННС


TSK


0.0000162/


0.0000234


0.0000104/


0.0000286


0.0729360/


0.3195586


ИНС

0.00001249/


0.00002505


0.00000625/


0.00001168


0.67920842/


1.25459400


МЭС

0.00002453/


0.00005979


0.00001302/


0.00005821


1.34542648/


0.98794776



Таблица 1. СКО на обучающей выборке. Через черту приведено СКО на проверочной выборке





























RUR-USD RUR-EUR RUR-GBR RUR-CHF RUR-JPY

ННС


TSK


0.0027301/


0.0202277


0.0059374/


0.03839935


0.0339521/


0.0951158


0.0083554/


0.0156637


0.0229360/


0.0695586


ИНС

0.00297544/


0.00663364


0.00545026/


0.01173761


0.03610494/


0.07352309


0.00545026/


0.01173761


0.02180100/


0.04099284


МЭС

0.00524360/


0.04131376


0.00992108/


0.06564615


0.06952535/


0.24069109


0.00992108/


0.06564615


0.04279490/


0.11568037



В таблице 2 приведены значения критерия САПП на обучающей и через черту на проверочной выборке для рассматриваемой ИНС и МЭС. Как видно с таблицы 2 ННС TSKна обучающей и проверочной выборках во всех экспериментах показала лучшие результаты, чем МЭС. ННС TSK в сравнении с ИНС показала приблизительно одинаковые результаты, но в среднем на 1% хуже по критерию САПП. Полученные результаты свидетельствуют о том, что ННС TSKдает результаты по критерию среднеквадратического отклонения и САПП значительно лучше чем МЭС, но немного уступает ИНС с кубическими сплайнами.





















USD-EUR USD-GBR USD-JPY
ННС TSK

0.0056839/


0.00522093


0.0058833/


0.0089322


0.0046822/


0.0127999


ИНС

0.0055841/


0.0075334


0.0054146/


0.0084466


0.0040441/


0.0106893


МЭС

0.0075474/


0.0125653


0.0084500/


0.0093964


0.0094191/


0.0195964



Таблица 2. САПП на обучающей выборке. Через черту приведенСАПП на проверочной выборке





























RUR-USD RUR-EUR RUR-GBR RUR-CHF RUR-JPY

ННС


TSK


0.0025303/


0.0035533


0.0011895/


0.0061127


0.0049555/


0.0089827


0.0022569/


0.0063632


0.0066822/


0.0077999


ИНС

0.0024876/


0.0045957


0.0015338/


0.0071520


0.0037962/


0.0065741


0.0022448/


0.0081520


0.0066179/


0.0084628


МЭС

0.0046019/


0.0123068


0.00992108/


0.06564615


0.0041510/


0.0118451


0.0141510/


0.0178451


0.0117940/


0.0168037



4.5 Исследование чувствительности ННСTSK


4.5.1 Исследование чувствительности к длине обучающей выборки


В данном разделе рассматривается чувствительность ННС TSK в зависимости от длины обучающей выборки. Рассматривается только одна валютная пара доллар США – евро. Во всех экспериментах варьировалась длина обучающей выборки, она составляла 50, 100, 200, 300 и 400 точек. На рисунках 18-25 приведены графики зависимостей СКО и критерия САПП в зависимости от длины обучающей выборки.


На графиках 18, 20, 22, 24 изображены графики критериев СКО и САПП на обучающей выборке. Как видно с графиков, при увеличении обучающей выборки уменьшаются значения СКО и САПП. На графиках 19, 21, 23, 25 изображены графики критериев СКО и САПП на проверочной выборке. Как видно с графиков, при увеличении обучающей выборки увеличиваются значения СКО и САПП и достигают своего максимального значения при длине обучающей выборки в 400 точек. Далее графики начинают убывать.


Можно сделать вывод, что оптимальным значеное значение обучающей выборки составляет 50 точек.



Рисунок 18. Зависимость при прогнозированни на 1 шаг СКО () на обучающей выборке от изменения длины обучающей выборки.



Рисунок 19. Зависимость СКО () при прогнозированни на 1 шаг на проверочной выборке от изменения длины обучающей выборки.



Рисунок 20. Зависимость при прогнозированни на 3 шага вперед СКО () на обучающей выборке от изменения длины обучающей выборки



Рисунок 21. Зависимость при прогнозированни на 3 шага вперед СКО () на проверочной выборке от изменения длины обучающей выборки.



Рисунок 22. Зависимость при прогнозированни на 1 шаг САПП на обучающей выборке от изменения длины обучающей выборки



Рисунок 23. Зависимость при прогнозированни на 1 шаг САПП на проверочной выборке от изменения длины обучающей выборки



Рисунок 24. Зависимость при прогнозированни на 3 шага САПП на обучающей выборке от изменения длины обучающей выборки



Рисунок 25. Зависимость при прогнозированни на 3 шага САПП на проверочной выборке от изменения длины обучающей выборки


4.5.2 Исследование чувствительно ННС TSK к изменению количества правил


В данном разделе рассматривается чувствительность ННС TSK в зависимости от количества правил в первом слое структуры сети. Рассматривается только одна валютная пара доллар США – евро. Длина обучающей выборки была выбрана равной 50. Во всех экспериментах варьировалось количество правил, оно составляло 1, 3, 5, 7, 9.


На рисунках 26, 28, 30, 32 изображена зависимость критериев СКО и САПП при прогнозировании на 1 и 3 шага вперед на обучающей выборке. Как видно с этих рисунков, при увеличении количества правил уменьшается ошибка по критерию СКО и САПП при прогнозах на 1 и на 3 шага вперед.


На рисунках 27, 29, 31, 33 изображена зависимость критериев СКО и САПП при прогнозировании на 1 и 3 шага вперед на проверочной выборке. Как видно из этих рисунков, при увеличении количества правил сначала достигается минимум при количества правил , а затем ошибка увеличивается.



Рисунок 26. Зависимость СКО при прогнозировании на 1 шаг на обучающей выборке в зависимости от количества правил



Рисунок 27. Зависимость СКО при прогнозировании на 1 шаг на проверочной выборке в зависимости от количества правил



Рисунок 28. Зависимость СКО при прогнозировании на 3 шага на обучающей выборке в зависимости от количества правил



Рисунок 29. Зависимость СКО при прогнозировании на 3 шага на проверочной выборке в зависимости от количества правил



Рисунок 30. Зависимость САПП при прогнозировании на 1 шаг на обучающей выборке в зависимости от количества правил



Рисунок 31. Зависимость САПП при прогнозировании на 1 шаг на проверочной выборке в зависимости от количества правил



Рисунок 32. Зависимость САПП при прогнозировании на 3 шага на обучающей выборке в зависимости от количества правил



Рисунок 33. Зависимость САПП при прогнозировании на 3 шага на проверочной выборке в зависимости от количества правил


4.6 Анализ полученных результатов


Во время первого экспериментального исследования ННС TSK прогнозировались валютные курсы для восьми валютных пар. Были получены значения критериев эффективности СКО и САПП. Для сравнения потенциальной эффективности ННС TSKбыли выбраны МЭС и ИНС с кубическими сплайнами. В результате экспериментов было установлено, что ННС TSKпроизводит значительно более эффективное прогнозирование валютных курсов. СКО, полученное при прогнозировании рассматриваемой ИНС, было в 2-6 раз меньше, чем СКО, полученное при прогнозировании МЭС. Таким образом, ННС TSKлучше МЭС по критерию СКО. Критерий САПП, полученный при прогнозировании ННС TSK, был в 1,5-2 раза меньше, чем критерий САПП, полученный при прогнозировании МЭС. Таким образом ННС TSK по критериям СКО и САПП показала результаты лучше чем МЭС. ИНС с кубическими сплайнами и ННС TSK показали приблизительно равные показатели СКО и САПП, но в среднем ИНС с кубическими сплайнами дала прогноз на 3.5% лучше по критерию СКО и на 1% лучше по критерию САПП.


Во время второго экспериментального исследования рассматривалась чувствительность ННС TSK к изменению длины обучающей выборки. Были получены следующие результаты. При увеличении длины обучающей выборки СКО и критерий САПП на обучающей выборке убывали до установившегося значения. Это свидетельствует о том, что даже безграничное увеличение длины обучающей выборки не приведет к улучшению прогноза по критерию СКО и САПП. На проверочной выборке достигался максимум по критерию СКО и САПП, а далее был спад. Можно сделать вывод, что оптимальная длина обучающей выборки составляет 50 точек.


Раздел 5. Описание программного продукта


5.1 Описание пользовательского интерфейса


Пользовательский интерфейс был выполнен в визуальной среде программирования Delphi 7. Это позволило в сжатые сроки написать удобный пользовательский интерфейс.


Пользовательский интерфейс является очень удобным и позволяет загружать данные из файла, редактировать данные в удобном для пользователя окне, подобном MicrosoftExcel, и сохранять данные в файле. Так же предусмотрена возможность изменять длину обучающей выборки, память системы, количество правил, а также задавать другие параметры настройки ННС TSK.


Реализована возможность сохранить настройки ННС TSK. Это является очень полезной функцией программы, т.к. время для настройки параметров растет нелинейно в зависимости от их количества и может достигать нескольких минут.


Реализована возможность просмотра графиков курсов валют.


5.2 Инструкция по работе с программой


При запуске программы перед пользователем появляется интерфейс, показанный на рисунке 34.


Функции и процедуры, вызываемые кнопками интерфейса:


«Загрузить данные» – открывает диалоговое окно, позволяющее выбрать файл с данными.


«Загрузить нейросеть» – открывает диалоговое окно, позволяющее выбрать файл с параметрами ННС TSK.


«Сохранить данные» – открывает диалоговое окно, позволяющее выбрать файл для сохранения данных.


«Сохранить нейросеть» – открывает диалоговое окно, позволяющее выбрать файл для сохранения настроек ННС TSK.


«Настройки» – открывает окно настроек, рисунок 35. В окне можно задать длину обучающей выборки, количество правил и память системы. Для того чтобы изменения вошли в силу, необходимо нажать кнопку «Сохранить и выйти». Для отмены изменений необходимо нажать кнопку «Выйти без сохранения».


«Обучить нейросеть» – настраивает весовые коэффициенты ННС TSK, а также делает прогноз по имеющейся выборке. После введения данных и нажатия клавиши интерфейс пользователя принимает вид, представленный на рисунке 36.


«Графики курса валюты» – открывает окно с графиками курсов валют реального и спрогнозированного на 1 шаг вперед. Пример окон проиллюстрирован на рисунках 2-9.


«Графики курса валюты (3)» – открывает окно с графиками курсов валют реального и спрогнозированного на 3 шага вперед. Пример окон проиллюстрирован на рисунках 10-17.


«RUN» – служит для того, чтобы получить прогноз при изменении данных в окне редактирования. При нажатии клавиши не происходит пересчет весовых коэфициентов, а только происходит прогнозирование.


«Закрыть» – закрывает программу.


Так же реализована возможность просмотра значений среднеквадратичного отклонения обучающей и проверочной выборки в окне пользовательского интерфейса, рисунок 34.



Рисунок 34. Интерфейс при запуске программы



Рисунок 35. Окно интерфейса «настройки»



Рисунок 36. Интерфейс после нажатия клавиши «обучить нейросеть»


4.5. Описание программы


Unit 1 является основным модулем программной реализации ИНС. В Unit 1 реализованы интерфейс пользователя, рисунок 34, возможность вводить данные вручную и с файла, обучение ИНС, получение прогноза. В Unit 1 реализована главная форма из которой вызываются формы 2, 3, 4, которые программно реализованы в Unit 2, Unit 3, Unit 4. Для возможности работы с матрицами подключается модуль matrices.


Основными структурами данных являются следующие массивы:


а – массив реального курса валют;


ap – массив спрогнозированного курса валюты на 1 шаг.


ap3 – массив спрогнозированного курса валюты на 3 шага.


Основными процедурами и функциями Unit 1 являются:


procedure TForm1.Button4Click(Sender: TObject); - обучение ННСTSK. В этой процедуре реализована настройка параметров, а также получение прогноза. Так же подсчитываются критерии СКО и САПП.


procedureTForm1.Button1Click(Sender: TObject); - загрузить данные из файла. Открывает диалоговое окно, в котором можно выбрать файл с исходными данными. При выборе файла происходит прочтение данных.


procedureTForm1.Button2Click(Sender: TObject); - загрузить настройки ННСTSK из файла. Загружает параметры ННСTSKиз файла.


procedureTForm1.Button7Click(Sender: TObject); - сохранить данные.


procedure TForm1.Button8Click(Sender: TObject); - сохранить нейросеть.


procedure TForm1.Button9Click(Sender: TObject); - получитьпрогноз. Если необходимо получить прогноз, в случае редактирования данных вручную.


procedureTForm1.Button3Click(Sender: TObject); открыть форму 2, в которой размещается меню настроек.


procedureTForm1.Button5Click(Sender: TObject); - открыть форму 3, в которой реализованы графики курсов валют – реальный и спрогнозированный на 1 шаг вперед.


procedureTForm1.Button6Click(Sender: TObject); открыть форму 4, в которой реализованы графики курсов валют – реальный и спрогнозированный на 3 шага вперед.


Unit 2. В данном программном модуле реализована возможность изменять настройки ННСTSK.


Unit 3, Unit 4. Данные два программных модуля являются однотипными. В этих программных модулях происходит вывод графиков. Основной функцией данных программных модулей является:


functionfi(g:real):integer; - при построении графика курса валюты сопоставляет реальное значение курса валюты к координате на экране.


В приложении 2 представлен текст программного модуля.


Выводы


В данной курсовой работе рассматривалась нечеткая нейронная сеть TSK. Целью данной работы было исследовать возможность применения ННС TSKдля прогнозирования валютных курсов.


Для экспериментальных исследований были выбраны курсы валют доллара США и российского рубля, а критериями правильности служили среднеквадратическое отклонение и средняя абсолютная процентная погрешность. Выборка была взята за 2007-2009 года, всего 500 точек.


Для сравнения потенциальной эффективности ННС TSK были выбраны ИНС с кубическими сплайнами и МЭС. В результате экспериментов было установлено, что ННС TSKпроизводит значительно более эффективное прогнозирование валютных курсов чем МЭС, но немного уступает ИНС с кубическими сплайнами. СКО, полученное при прогнозировании ННС TSK, было в 2-6 раз меньше, чем СКО, полученное при прогнозировании МЭС. Таким образом, ННС TSKлучше МЭС по критерию СКО. Критерий САПП, полученный при прогнозировании рассматриваемой ИНС, был в 1,5-2 раза меньше, чем критерий САПП, полученный при прогнозировании МЭС. ННС TSK в сравнении с ИНС с кубическими сплайнами показала приблизительно одинаковые результаты, но в среднем на 3.75% хуже по критерию СКО и на 1% хуже по критерию САПП.


Рассматривалась чувствительность ННС TSK к изменению длины обучающей выборке. При увеличении длины обучающей выборки СКО и критерий САПП уменьшались и стремились к установившемуся значению, на обучающей выборке. На проверочной выборке при увеличении обучающей выборки увеличиваются значения СКО и САПП и достигают своего максимального значения при длине обучающей выборки в 400 точек. Далее графики начинают убывать. Можно сделать вывод, что оптимальным значеное значение обучающей выборки составляет 50 точек.


Рассматривалась чувствительность ННС TSK к изменению количества правил. На обучающей выборке при увеличении количества правил уменьшается ошибка по критерию СКО и САПП при прогнозах на 1 и на 3 шага вперед. На проверочной выборке при увеличении количества правил сначала достигается минимум при количества правил , а затем ошибка увеличивается.


Во время выполнения экспериментальных исследований, были получены результаты, которые могут быть использованы в деятельности банков и других инвесторов.


Литература


1. Лукашин Ю. П. Адаптивные методы краткосрочного прогнозирования временных рядов. – М.: Финансы и статистика, 2003. – 416 с.


2. Згуровский М. З., Подладчиков В. Н. Аналитические методы калмановской фильтрации для систем с априорной неопределенностью. – К.: Наукова думка, 1995. – 584с.


3. Зайченко Ю. П. Нечеткие модели и методы в интеллектуальных системах. К.: Слово, 2008. – 344с.


4. Круглов В. В., Борисов В. В. Искусственные нейронные сети. Теория и практика. – М.: Горячая линия – Телеком, 2001. – 382с.


5. Руденко О. Г., Бодянський Є. В. Штучні нейронні мережі. – Харків: Компанія СМІТ, 2006. – 404с.


6. Хоменко А., Гофман В., Мещеряков Е., Никифоров В. Delphi 7. – Санкт-Петербург: БВХ-Петербург, 2004. – 1200с.


Приложение 1. Результаты экспериментальных исследований.


Первый столбец – реальные данные. Второй столбец – прогноз на 1 шаг вперед. Третий столбец – ошибка прогноза на 1 шаг вперед. Четвертый столбец – прогноз на 3 шага вперед. Пятый столбец – ошибка прогноза на 3 шага вперед.


USD_EUR


0.6456 0.6467 -0.0011 0.6447 0.0009


0.6415 0.6456 -0.0041 0.6467 -0.0052


0.6447 0.6438 0.0009 0.6474 -0.0027


0.6467 0.6447 0.0020 0.6438 0.0029


0.6441 0.6415 0.0026 0.6456 -0.0015


0.6384 0.6441 -0.0057 0.6415 -0.0031


0.6341 0.6384 -0.0043 0.6441 -0.0100


0.6368 0.6341 0.0027 0.6384 -0.0016


0.6336 0.6368 -0.0032 0.6341 -0.0005


0.6358 0.6336 0.0022 0.6368 -0.0010


0.6399 0.6358 0.0041 0.6336 0.0063


0.6441 0.6399 0.0042 0.6358 0.0083


0.6428 0.6441 -0.0013 0.6399 0.0029


0.6432 0.6428 0.0004 0.6441 -0.0009


0.6472 0.6432 0.0040 0.6428 0.0044


0.6472 0.6472 -0.0000 0.6432 0.0040


0.6427 0.6472 -0.0045 0.6472 -0.0045


0.6356 0.6427 -0.0071 0.6472 -0.0116


0.6363 0.6356 0.0007 0.6427 -0.0064


0.6464 0.6363 0.0101 0.6356 0.0108


0.6427 0.6464 -0.0037 0.6363 0.0064


0.6487 0.6427 0.0060 0.6464 0.0023


0.6508 0.6487 0.0021 0.6427 0.0081


0.6464 0.6508 -0.0044 0.6487 -0.0023


0.6444 0.6464 -0.0020 0.6508 -0.0064


0.6452 0.6444 0.0008 0.6464 -0.0012


0.6451 0.6452 -0.0001 0.6444 0.0007


0.6400 0.6451 -0.0051 0.6452 -0.0052


0.6456 0.6400 0.0056 0.6451 0.0005


0.6414 0.6456 -0.0042 0.6400 0.0014


0.6423 0.6414 0.0009 0.6456 -0.0033


0.6355 0.6423 -0.0068 0.6414 -0.0059


0.6350 0.6355 -0.0005 0.6423 -0.0073


0.6350 0.6350 -0.0000 0.6355 -0.0005


0.6330 0.6350 -0.0020 0.6350 -0.0020


0.6302 0.6330 -0.0028 0.6350 -0.0048


0.6366 0.6302 0.0064 0.6330 0.0036


0.6392 0.6366 0.0026 0.6302 0.0090


0.6389 0.6392 -0.0003 0.6366 0.0023


0.6352 0.6389 -0.0037 0.6392 -0.0040


0.6341 0.6352 -0.0011 0.6389 -0.0048


0.6291 0.6341 -0.0050 0.6352 -0.0061


0.6284 0.6291 -0.0007 0.6341 -0.0057


0.6280 0.6284 -0.0004 0.6291 -0.0011


0.6311 0.6280 0.0031 0.6284 0.0027


0.6306 0.6311 -0.0005 0.6280 0.0026


0.6307 0.6306 0.0001 0.6311 -0.0004


0.6299 0.6307 -0.0008 0.6306 -0.0007


0.6325 0.6299 0.0026 0.6307 0.0018


0.6367 0.6325 0.0042 0.6299 0.0068


0.6376 0.6367 0.0009 0.6325 0.0051


0.6351 0.6376 -0.0025 0.6367 -0.0016


0.6416 0.6351 0.0065 0.6376 0.0040


0.6428 0.6416 0.0012 0.6351 0.0077


0.6414 0.6428 -0.0014 0.6416 -0.0002


0.6424 0.6414 0.0010 0.6428 -0.0004


0.6435 0.6424 0.0011 0.6414 0.0021


0.6466 0.6435 0.0031 0.6424 0.0042


0.6489 0.6466 0.0023 0.6435 0.0054


0.6519 0.6489 0.0030 0.6466 0.0053


0.6646 0.6519 0.0127 0.6489 0.0157


0.6686 0.6646 0.0040 0.6519 0.0167


0.6711 0.6686 0.0025 0.6646 0.0065


0.6714 0.6711 0.0003 0.6686 0.0028


0.6731 0.6714 0.0017 0.6711 0.0020


0.6806 0.6731 0.0075 0.6714 0.0092


0.6789 0.6806 -0.0017 0.6731 0.0058


0.6782 0.6789 -0.0007 0.6806 -0.0024


0.6803 0.6782 0.0021 0.6789 0.0014


0.6724 0.6803 -0.0079 0.6782 -0.0058


0.6757 0.6724 0.0033 0.6803 -0.0046


0.6756 0.6757 -0.0001 0.6724 0.0032


0.6822 0.6756 0.0066 0.6757 0.0065


0.6811 0.6822 -0.0011 0.6756 0.0055


0.6809 0.6811 -0.0002 0.6822 -0.0013


0.6818 0.6809 0.0009 0.6811 0.0007


0.6887 0.6818 0.0069 0.6809 0.0078


0.6903 0.6887 0.0016 0.6818 0.0085


0.6965 0.6903 0.0062 0.6887 0.0078


0.7007 0.6965 0.0042 0.6903 0.0104


0.7081 0.7007 0.0074 0.6965 0.0116


0.7056 0.7081 -0.0025 0.7007 0.0049


0.7134 0.7056 0.0078 0.7081 0.0053


0.7176 0.7134 0.0042 0.7056 0.0120


0.7057 0.7176 -0.0119 0.7134 -0.0077


0.7052 0.7057 -0.0005 0.7176 -0.0124


0.7067 0.7052 0.0015 0.7057 0.0010


0.7076 0.7067 0.0009 0.7052 0.0024


0.6953 0.7076 -0.0123 0.7067 -0.0114


0.6950 0.6953 -0.0003 0.7076 -0.0126


0.6806 0.6950 -0.0144 0.6953 -0.0147


0.6786 0.6806 -0.0020 0.6950 -0.0164


0.6825 0.6786 0.0039 0.6806 0.0019


0.6830 0.6825 0.0005 0.6786 0.0044


0.6852 0.6830 0.0022 0.6825 0.0027


0.6954 0.6852 0.0102 0.6830 0.0124


0.7103 0.6954 0.0149 0.6852 0.0251


0.7114 0.7103 0.0011 0.6954 0.0160


0.7219 0.7114 0.0105 0.7103 0.0116


0.7238 0.7219 0.0019 0.7114 0.0124


0.7403 0.7238 0.0165 0.7219 0.0184


0.7327 0.7403 -0.0076 0.7238 0.0089


0.7311 0.7327 -0.0016 0.7403 -0.0092


0.7329 0.7311 0.0018 0.7327 0.0002


0.7425 0.7329 0.0096 0.7311 0.0114


0.7381 0.7425 -0.0044 0.7329 0.0052


0.7322 0.7381 -0.0059 0.7425 -0.0103


0.7372 0.7322 0.0050 0.7381 -0.0009


0.7454 0.7372 0.0082 0.7322 0.0132


0.7430 0.7454 -0.0024 0.7372 0.0058


0.7512 0.7430 0.0082 0.7454 0.0058


0.7632 0.7512 0.0120 0.7430 0.0202


0.7792 0.7632 0.0160 0.7512 0.0280


0.7766 0.7792 -0.0026 0.7632 0.0134


0.7902 0.7766 0.0136 0.7792 0.0110


0.8035 0.7902 0.0133 0.7766 0.0269


0.8016 0.8035 -0.0019 0.7902 0.0114


0.7782 0.8016 -0.0234 0.8035 -0.0253


0.7783 0.7782 0.0001 0.8016 -0.0233


0.7886 0.7783 0.0103 0.7782 0.0104


0.7863 0.7886 -0.0023 0.7783 0.0080


0.7681 0.7863 -0.0182 0.7886 -0.0205


0.7669 0.7681 -0.0012 0.7863 -0.0194


0.7840 0.7669 0.0171 0.7681 0.0159


0.7828 0.7840 -0.0012 0.7669 0.0159


0.7838 0.7828 0.0010 0.7840 -0.0002


0.7966 0.7838 0.0128 0.7828 0.0138


0.7984 0.7966 0.0018 0.7838 0.0146


0.7856 0.7984 -0.0128 0.7966 -0.0110


0.7858 0.7856 0.0002 0.7984 -0.0126


0.7882 0.7858 0.0024 0.7856 0.0026


0.7939 0.7882 0.0057 0.7858 0.0081


0.7986 0.7939 0.0047 0.7882 0.0104


0.7983 0.7986 -0.0003 0.7939 0.0044


0.7758 0.7983 -0.0225 0.7986 -0.0228


0.7675 0.7758 -0.0083 0.7983 -0.0308


0.7798 0.7675 0.0123 0.7758 0.0040


0.7798 0.7798 -0.0000 0.7675 0.0123


0.7916 0.7798 0.0118 0.7798 0.0118


0.7859 0.7916 -0.0057 0.7798 0.0061


0.7893 0.7859 0.0034 0.7916 -0.0023


0.7789 0.7893 -0.0104 0.7859 -0.0070


0.7903 0.7789 0.0114 0.7893 0.0010


0.7730 0.7903 -0.0173 0.7789 -0.0059


0.7729 0.7730 -0.0001 0.7903 -0.0174


0.7680 0.7729 -0.0049 0.7730 -0.0050


0.7523 0.7680 -0.0157 0.7729 -0.0206


0.7492 0.7523 -0.0031 0.7680 -0.0188


0.7320 0.7492 -0.0172 0.7523 -0.0203


0.7242 0.7320 -0.0078 0.7492 -0.0250


0.6968 0.7242 -0.0274 0.7320 -0.0352


0.6996 0.6968 0.0028 0.7242 -0.0246


0.7211 0.6996 0.0215 0.6968 0.0243


0.7168 0.7211 -0.0043 0.6996 0.0172


0.7162 0.7168 -0.0006 0.7211 -0.0049


0.7162 0.7162 0.0000 0.7168 -0.0006


0.7130 0.7162 -0.0032 0.7162 -0.0032


0.7027 0.7130 -0.0103 0.7162 -0.0135


0.7100 0.7027 0.0073 0.7130 -0.0030


0.7184 0.7100 0.0084 0.7027 0.0157


0.7172 0.7184 -0.0012 0.7100 0.0072


0.7366 0.7172 0.0194 0.7184 0.0182


0.7439 0.7366 0.0073 0.7172 0.0267


0.7290 0.7439 -0.0149 0.7366 -0.0076


0.7293 0.7290 0.0003 0.7439 -0.0146


0.7411 0.7293 0.0118 0.7290 0.0121


0.7493 0.7411 0.0082 0.7293 0.0200


0.7579 0.7493 0.0086 0.7411 0.0168


0.7591 0.7579 0.0012 0.7493 0.0098


0.7638 0.7591 0.0047 0.7579 0.0059


0.7553 0.7638 -0.0085 0.7591 -0.0038


0.7725 0.7553 0.0172 0.7638 0.0087


0.7772 0.7725 0.0047 0.7553 0.0219


0.7720 0.7772 -0.0052 0.7725 -0.0005


0.7782 0.7720 0.0062 0.7772 0.0010


0.7603 0.7782 -0.0179 0.7720 -0.0117


0.7601 0.7603 -0.0002 0.7782 -0.0181


0.7552 0.7601 -0.0049 0.7603 -0.0051


0.7700 0.7552 0.0148 0.7601 0.0099


0.7811 0.7700 0.0111 0.7552 0.0259


0.7809 0.7811 -0.0002 0.7700 0.0109


0.7687 0.7809 -0.0122 0.7811 -0.0124


0.7779 0.7687 0.0092 0.7809 -0.0030


0.7791 0.7779 0.0012 0.7687 0.0104


0.7769 0.7791 -0.0022 0.7779 -0.0010


0.7656 0.7769 -0.0113 0.7791 -0.0135


0.7714 0.7656 0.0058 0.7769 -0.0055


0.7757 0.7714 0.0043 0.7656 0.0101


0.7800 0.7757 0.0043 0.7714 0.0086


0.7766 0.7800 -0.0034 0.7757 0.0009


0.7832 0.7766 0.0066 0.7800 0.0032


0.7957 0.7832 0.0125 0.7766 0.0191


0.7971 0.7957 0.0014 0.7832 0.0139


0.7891 0.7971 -0.0080 0.7957 -0.0066


0.7881 0.7891 -0.0010 0.7971 -0.0090


0.7846 0.7881 -0.0035 0.7891 -0.0045


0.7849 0.7846 0.0003 0.7881 -0.0032


0.7856 0.7849 0.0007 0.7846 0.0010


0.7835 0.7856 -0.0021 0.7849 -0.0014


0.7899 0.7835 0.0064 0.7856 0.0043


0.7950 0.7899 0.0051 0.7835 0.0115


0.7970 0.7950 0.0020 0.7899 0.0071


0.7933 0.7970 -0.0037 0.7950 -0.0017


0.7959 0.7933 0.0026 0.7970 -0.0011


0.7892 0.7959 -0.0067 0.7933 -0.0041


0.7914 0.7892 0.0022 0.7959 -0.0045


0.7842 0.7914 -0.0072 0.7892 -0.0050


0.7829 0.7842 -0.0013 0.7914 -0.0085


0.7814 0.7829 -0.0015 0.7842 -0.0028


0.7759 0.7814 -0.0055 0.7829 -0.0070


0.7695 0.7759 -0.0064 0.7814 -0.0119


0.7710 0.7695 0.0015 0.7759 -0.0049


0.7628 0.7710 -0.0082 0.7695 -0.0067


0.7310 0.7628 -0.0318 0.7710 -0.0400


0.7372 0.7310 0.0062 0.7628 -0.0256


0.7371 0.7372 -0.0001 0.7310 0.0061


0.7395 0.7371 0.0024 0.7372 0.0023


0.7387 0.7395 -0.0008 0.7371 0.0016


0.7376 0.7387 -0.0011 0.7395 -0.0019


0.7516 0.7376 0.0140 0.7387 0.0129


0.7609 0.7516 0.0093 0.7376 0.0233


0.7542 0.7609 -0.0067 0.7516 0.0026


0.7563 0.7542 0.0021 0.7609 -0.0046


0.7431 0.7563 -0.0132 0.7542 -0.0111


0.7437 0.7431 0.0006 0.7563 -0.0126


0.7484 0.7437 0.0047 0.7431 0.0053


0.7530 0.7484 0.0046 0.7437 0.0093


0.7526 0.7530 -0.0004 0.7484 0.0042


0.7606 0.7526 0.0080 0.7530 0.0076


0.7489 0.7606 -0.0117 0.7526 -0.0037


0.7533 0.7489 0.0044 0.7606 -0.0073


0.7587 0.7533 0.0054 0.7489 0.0098


0.7579 0.7587 -0.0008 0.7533 0.0046


0.7675 0.7579 0.0096 0.7587 0.0088


0.7751 0.7675 0.0076 0.7579 0.0172


0.7706 0.7751 -0.0045 0.7675 0.0031


0.7686 0.7706 -0.0020 0.7751 -0.0065


0.7665 0.7686 -0.0021 0.7706 -0.0041


0.7532 0.7665 -0.0133 0.7686 -0.0154


0.7613 0.7532 0.0081 0.7665 -0.0052


0.7657 0.7613 0.0044 0.7532 0.0125


0.7506 0.7657 -0.0151 0.7613 -0.0107


0.7552 0.7506 0.0046 0.7657 -0.0105


0.7539 0.7552 -0.0013 0.7506 0.0033


0.7483 0.7539 -0.0056 0.7552 -0.0069


0.7478 0.7483 -0.0005 0.7539 -0.0061


0.7513 0.7478 0.0035 0.7483 0.0030


0.7458 0.7513 -0.0055 0.7478 -0.0020


0.7412 0.7458 -0.0046 0.7513 -0.0101


0.7343 0.7412 -0.0069 0.7458 -0.0115


0.7343 0.7412


0.7458


0.7343


USD_GBR


0.5135 0.5135 0.0007 0.5098 0.0044


0.5142 0.5098 0.0037 0.5133 0.0002


0.5131 0.5142 -0.0011 0.5135 -0.0004


0.5108 0.5131 -0.0023 0.5142 -0.0034


0.5129 0.5108 0.0021 0.5131 -0.0002


0.5076 0.5129 -0.0053 0.5108 -0.0032


0.5084 0.5076 0.0008 0.5129 -0.0045


0.5054 0.5084 -0.0030 0.5076 -0.0022


0.5046 0.5054 -0.0008 0.5084 -0.0038


0.5062 0.5046 0.0016 0.5054 0.0008


0.5049 0.5062 -0.0013 0.5046 0.0003


0.5061 0.5049 0.0012 0.5062 -0.0001


0.5053 0.5061 -0.0008 0.5049 0.0004


0.5085 0.5053 0.0032 0.5061 0.0024


0.5089 0.5085 0.0004 0.5053 0.0036


0.5116 0.5089 0.0027 0.5085 0.0031


0.5112 0.5116 -0.0004 0.5089 0.0023


0.5078 0.5112 -0.0034 0.5116 -0.0038


0.5061 0.5078 -0.0017 0.5112 -0.0051


0.5117 0.5061 0.0056 0.5078 0.0039


0.5090 0.5117 -0.0027 0.5061 0.0029


0.5137 0.5090 0.0047 0.5117 0.0020


0.5129 0.5137 -0.0008 0.5090 0.0039


0.5093 0.5129 -0.0036 0.5137 -0.0044


0.5117 0.5093 0.0024 0.5129 -0.0012


0.5110 0.5117 -0.0007 0.5093 0.0017


0.5069 0.5110 -0.0041 0.5117 -0.0048


0.5068 0.5069 -0.0001 0.5110 -0.0042


0.5100 0.5068 0.0032 0.5069 0.0031


0.5074 0.5100 -0.0026 0.5068 0.0006


0.5083 0.5074 0.0009 0.5100 -0.0017


0.5058 0.5083 -0.0025 0.5074 -0.0016


0.5016 0.5058 -0.0042 0.5083 -0.0067


0.5024 0.5016 0.0008 0.5058 -0.0034


0.5012 0.5024 -0.0012 0.5016 -0.0004


0.5019 0.5012 0.0007 0.5024 -0.0005


0.5045 0.5019 0.0026 0.5012 0.0033


0.5077 0.5045 0.0032 0.5019 0.0058


0.5080 0.5077 0.0003 0.5045 0.0035


0.5048 0.5080 -0.0032 0.5077 -0.0029


0.5057 0.5048 0.0009 0.5080 -0.0023


0.5027 0.5057 -0.0030 0.5048 -0.0021


0.5018 0.5027 -0.0009 0.5057 -0.0039


0.4988 0.5018 -0.0030 0.5027 -0.0039


0.5002 0.4988 0.0014 0.5018 -0.0016


0.4991 0.5002 -0.0011 0.4988 0.0003


0.5004 0.4991 0.0013 0.5002 0.0002


0.5006 0.5004 0.0002 0.4991 0.0015


0.5014 0.5006 0.0008 0.5004 0.0010


0.4995 0.5014 -0.0019 0.5006 -0.0011


0.5030 0.4995 0.0035 0.5014 0.0016


0.5015 0.5030 -0.0015 0.4995 0.0020


0.5049 0.5015 0.0034 0.5030 0.0019


0.5048 0.5049 -0.0001 0.5015 0.0033


0.5049 0.5048 0.0001 0.5049 0.0000


0.5065 0.5049 0.0016 0.5048 0.0017


0.5100 0.5065 0.0035 0.5049 0.0051


0.5120 0.5100 0.0020 0.5065 0.0055


0.5134 0.5120 0.0014 0.5100 0.0034


0.5144 0.5134 0.0010 0.5120 0.0024


0.5210 0.5144 0.0066 0.5134 0.0076


0.5223 0.5210 0.0013 0.5144 0.0079


0.5262 0.5223 0.0039 0.5210 0.0052


0.5353 0.5262 0.0091 0.5223 0.0130


0.5344 0.5353 -0.0009 0.5262 0.0082


0.5363 0.5344 0.0019 0.5353 0.0010


0.5356 0.5363 -0.0007 0.5344 0.0012


0.5360 0.5356 0.0004 0.5363 -0.0003


0.5370 0.5360 0.0010 0.5356 0.0014


0.5331 0.5370 -0.0039 0.5360 -0.0029


0.5393 0.5331 0.0062 0.5370 0.0023


0.5380 0.5393 -0.0013 0.5331 0.0049


0.5438 0.5380 0.0058 0.5393 0.0045


0.5459 0.5438 0.0021 0.5380 0.0079


0.5477 0.5459 0.0018 0.5438 0.0039


0.5498 0.5477 0.0021 0.5459 0.0039


0.5600 0.5498 0.0102 0.5477 0.0123


0.5620 0.5600 0.0020 0.5498 0.0122


0.5654 0.5620 0.0034 0.5600 0.0054


0.5654 0.5654 0.0000 0.5620 0.0034


0.5701 0.5654 0.0047 0.5654 0.0047


0.5659 0.5701 -0.0042 0.5654 0.0005


0.5699 0.5659 0.0040 0.5701 -0.0002


0.5715 0.5699 0.0016 0.5659 0.0056


0.5588 0.5715 -0.0127 0.5699 -0.0111


0.5589 0.5588 0.0001 0.5715 -0.0126


0.5610 0.5589 0.0021 0.5588 0.0022


0.5589 0.5610 -0.0021 0.5589 -0.0000


0.5499 0.5589 -0.0090 0.5610 -0.0111


0.5467 0.5499 -0.0032 0.5589 -0.0122


0.5410 0.5467 -0.0057 0.5499 -0.0089


0.5380 0.5410 -0.0030 0.5467 -0.0087


0.5405 0.5380 0.0025 0.5410 -0.0005


0.5432 0.5405 0.0027 0.5380 0.0052


0.5435 0.5432 0.0003 0.5405 0.0030


0.5542 0.5435 0.0107 0.5432 0.0110


0.5617 0.5542 0.0075 0.5435 0.0182


0.5617 0.5617 0.0000 0.5542 0.0075


0.5660 0.5617 0.0043 0.5617 0.0043


0.5636 0.5660 -0.0024 0.5617 0.0019


0.5754 0.5636 0.0118 0.5660 0.0094


0.5685 0.5754 -0.0069 0.5636 0.0049


0.5777 0.5685 0.0092 0.5754 0.0023


0.5800 0.5777 0.0023 0.5685 0.0115


0.5870 0.5800 0.0070 0.5777 0.0093


0.5780 0.5870 -0.0090 0.5800 -0.0020


0.5720 0.5780 -0.0060 0.5870 -0.0150


0.5736 0.5720 0.0016 0.5780 -0.0044


0.5801 0.5736 0.0065 0.5720 0.0081


0.5779 0.5801 -0.0022 0.5736 0.0043


0.5836 0.5779 0.0057 0.5801 0.0035


0.5939 0.5836 0.0103 0.5779 0.0160


0.6184 0.5939 0.0245 0.5836 0.0348


0.6180 0.6184 -0.0004 0.5939 0.0241


0.6312 0.6180 0.0132 0.6184 0.0128


0.6465 0.6312 0.0153 0.6180 0.0285


0.6414 0.6465 -0.0051 0.6312 0.0102


0.6136 0.6414 -0.0278 0.6465 -0.0329


0.6152 0.6136 0.0016 0.6414 -0.0262


0.6189 0.6152 0.0037 0.6136 0.0053


0.6307 0.6189 0.0118 0.6152 0.0155


0.6213 0.6307 -0.0094 0.6189 0.0024


0.6190 0.6213 -0.0023 0.6307 -0.0117


0.6331 0.6190 0.0141 0.6213 0.0118


0.6334 0.6331 0.0003 0.6190 0.0144


0.6395 0.6334 0.0061 0.6331 0.0064


0.6663 0.6395 0.0268 0.6334 0.0329


0.6758 0.6663 0.0095 0.6395 0.0363


0.6730 0.6758 -0.0028 0.6663 0.0067


0.6654 0.6730 -0.0076 0.6758 -0.0104


0.6650 0.6654 -0.0004 0.6730 -0.0080


0.6627 0.6650 -0.0023 0.6654 -0.0027


0.6760 0.6627 0.0133 0.6650 0.0110


0.6747 0.6760 -0.0013 0.6627 0.0120


0.6589 0.6747 -0.0158 0.6760 -0.0171


0.6516 0.6589 -0.0073 0.6747 -0.0231


0.6570 0.6516 0.0054 0.6589 -0.0019


0.6570 0.6570 -0.0000 0.6516 0.0054


0.6737 0.6570 0.0167 0.6570 0.0167


0.6690 0.6737 -0.0047 0.6570 0.0120


0.6766 0.6690 0.0076 0.6737 0.0029


0.6762 0.6766 -0.0004 0.6690 0.0072


0.6846 0.6762 0.0084 0.6766 0.0080


0.6742 0.6846 -0.0104 0.6762 -0.0020


0.6768 0.6742 0.0026 0.6846 -0.0078


0.6744 0.6768 -0.0024 0.6742 0.0002


0.6688 0.6744 -0.0056 0.6768 -0.0080


0.6724 0.6688 0.0036 0.6744 -0.0020


0.6546 0.6724 -0.0178 0.6688 -0.0142


0.6529 0.6546 -0.0017 0.6724 -0.0195


0.6469 0.6529 -0.0060 0.6546 -0.0077


0.6622 0.6469 0.0153 0.6529 0.0093


0.6734 0.6622 0.0112 0.6469 0.0265


0.6755 0.6734 0.0021 0.6622 0.0133


0.6776 0.6755 0.0021 0.6734 0.0042


0.6817 0.6776 0.0041 0.6755 0.0062


0.6850 0.6817 0.0033 0.6776 0.0074


0.6853 0.6850 0.0003 0.6817 0.0036


0.6947 0.6853 0.0094 0.6850 0.0097


0.6842 0.6947 -0.0105 0.6853 -0.0011


0.6886 0.6842 0.0044 0.6947 -0.0061


0.6848 0.6886 -0.0038 0.6842 0.0006


0.6768 0.6848 -0.0080 0.6886 -0.0118


0.6557 0.6768 -0.0211 0.6848 -0.0291


0.6585 0.6557 0.0028 0.6768 -0.0183


0.6564 0.6585 -0.0021 0.6557 0.0007


0.6746 0.6564 0.0182 0.6585 0.0161


0.6886 0.6746 0.0140 0.6564 0.0322


0.6843 0.6886 -0.0043 0.6746 0.0097


0.6849 0.6843 0.0006 0.6886 -0.0037


0.6787 0.6849 -0.0062 0.6843 -0.0056


0.7132 0.6787 0.0345 0.6849 0.0283


0.7286 0.7132 0.0154 0.6787 0.0499


0.7225 0.7286 -0.0061 0.7132 0.0093


0.7327 0.7225 0.0102 0.7286 0.0041


0.7164 0.7327 -0.0163 0.7225 -0.0061


0.7070 0.7164 -0.0094 0.7327 -0.0257


0.6986 0.7070 -0.0084 0.7164 -0.0178


0.7012 0.6986 0.0026 0.7070 -0.0058


0.6939 0.7012 -0.0073 0.6986 -0.0047


0.7029 0.6939 0.0090 0.7012 0.0017


0.6949 0.7029 -0.0080 0.6939 0.0010


0.6910 0.6949 -0.0039 0.7029 -0.0119


0.6836 0.6910 -0.0074 0.6949 -0.0113


0.6769 0.6836 -0.0067 0.6910 -0.0141


0.6697 0.6769 -0.0072 0.6836 -0.0139


0.6848 0.6697 0.0151 0.6769 0.0079


0.6961 0.6848 0.0113 0.6697 0.0264


0.7020 0.6961 0.0059 0.6848 0.0172


0.6934 0.7020 -0.0086 0.6961 -0.0027


0.7009 0.6934 0.0075 0.7020 -0.0011


0.7031 0.7009 0.0022 0.6934 0.0097


0.7027 0.7031 -0.0004 0.7009 0.0018


0.6989 0.7027 -0.0038 0.7031 -0.0042


0.6978 0.6989 -0.0011 0.7027 -0.0049


0.6874 0.6978 -0.0104 0.6989 -0.0115


0.6942 0.6874 0.0068 0.6978 -0.0036


0.7011 0.6942 0.0069 0.6874 0.0137


0.6973 0.7011 -0.0038 0.6942 0.0031


0.7004 0.6973 0.0031 0.7011 -0.0007


0.7150 0.7004 0.0146 0.6973 0.0177


0.7127 0.7150 -0.0023 0.7004 0.0123


0.7072 0.7127 -0.0055 0.7150 -0.0078


0.7082 0.7072 0.0010 0.7127 -0.0045


0.7088 0.7082 0.0006 0.7072 0.0016


0.7270 0.7088 0.0182 0.7082 0.0188


0.7225 0.7270 -0.0045 0.7088 0.0137


0.7260 0.7225 0.0035 0.7270 -0.0010


0.7242 0.7260 -0.0018 0.7225 0.0017


0.7158 0.7242 -0.0084 0.7260 -0.0102


0.7098 0.7158 -0.0060 0.7242 -0.0144


0.7134 0.7098 0.0036 0.7158 -0.0024


0.7158 0.7134 0.0024 0.7098 0.0060


0.6857 0.7158 -0.0301 0.7134 -0.0277


0.6929 0.6857 0.0072 0.7158 -0.0229


0.6899 0.6929 -0.0030 0.6857 0.0042


0.6790 0.6899 -0.0109 0.6929 -0.0139


0.6857 0.6790 0.0067 0.6899 -0.0042


0.6899 0.6857 0.0042 0.6790 0.0109


0.6982 0.6899 0.0083 0.6857 0.0125


0.7070 0.6982 0.0088 0.6899 0.0171


0.6993 0.7070 -0.0077 0.6982 0.0011


0.6943 0.6993 -0.0050 0.7070 -0.0127


0.6804 0.6943 -0.0139 0.6993 -0.0189


0.6757 0.6804 -0.0047 0.6943 -0.0186


0.6799 0.6757 0.0042 0.6804 -0.0005


0.6783 0.6799 -0.0016 0.6757 0.0026


0.6807 0.6783 0.0024 0.6799 0.0008


0.6840 0.6807 0.0033 0.6783 0.0057


0.6745 0.6840 -0.0095 0.6807 -0.0062


0.6710 0.6745 -0.0035 0.6840 -0.0130


0.6671 0.6710 -0.0039 0.6745 -0.0074


0.6709 0.6671 0.0038 0.6710 -0.0001


0.6768 0.6709 0.0059 0.6671 0.0097


0.6881 0.6768 0.0113 0.6709 0.0172


0.6805 0.6881 -0.0076 0.6768 0.0037


0.6899 0.6805 0.0094 0.6881 0.0018


0.6833 0.6899 -0.0066 0.6805 0.0028


0.6805 0.6833 -0.0028 0.6899 -0.0094


0.6814 0.6805 0.0009 0.6833 -0.0019


0.6847 0.6814 0.0033 0.6805 0.0042


0.6757 0.6847 -0.0090 0.6814 -0.0057


0.6758 0.6757 0.0001 0.6847 -0.0089


0.6721 0.6758 -0.0037 0.6757 -0.0036


0.6675 0.6721 -0.0046 0.6758 -0.0083


0.6625 0.6675 -0.0050 0.6721 -0.0096


0.6640 0.6625 0.0015 0.6675 -0.0035


0.6659 0.6640 0.0019 0.6625 0.0034


0.6629 0.6659 -0.0030 0.6640 -0.0011


0.6604 0.6629 -0.0025 0.6659 -0.0055


0.6604 0.6629


0.6629


0.6604


USD_JPY


104.2047103.6934 0.5113104.4752 -0.2705


103.6750104.1532 -0.4782103.9586 -0.2836


103.3538103.7136 -0.3598104.2417 -0.8879


104.4162103.8443 0.5719103.1780 1.2382


105.1965104.6120 0.5845103.7789 1.4176


104.6245105.3017 -0.6772104.4557 0.1688


103.8663104.6587 -0.7924105.1283 -1.2620


104.0468103.2421 0.8047103.7106 0.3362


103.2146104.0812 -0.8666103.4110 -0.1964


104.0054103.2579 0.7475103.9839 0.0215


104.6970103.9241 0.7729103.2032 1.4938


105.5150104.8956 0.6194104.0755 1.4395


105.4793105.6390 -0.1597104.5459 0.9334


104.4164105.5561


-1.1397105.5807 -1.1643


105.2747104.2905 0.9842105.3336 -0.0589


104.9968105.1988


-0.2020104.4596 0.5372


106.0071105.1390 0.8681105.3583 0.6488


105.3396106.0117 -0.6721104.9532 0.3864


106.0645105.4359 0.6286106.1152 -0.0507


107.2048105.9861 1.2187105.1282 2.0766


106.7869107.4222 -0.6353106.2245 0.5624


107.9575106.8772 1.0803107.0488 0.9087


107.9269107.9415 -0.0146106.8273 1.0996


108.1965108.1012 0.0953107.9392 0.2573


108.0338108.1617 -0.1279107.8048 0.2290


108.0664108.0579 0.0085108.3384 -0.2720


107.9554108.0349 -0.0795107.9153 0.0401


107.4351107.9581 -0.5230108.1700 -0.7349


107.8848107.3776 0.5072107.9300 -0.0452


107.7769107.8545-0.0776107.4728 0.3041


108.2971107.8528 0.4443107.9095 0.3876


107.2984108.3039 -1.0055107.7333 -0.4349


106.2944107.2947 -1.0003108.3423 -2.0479


106.1863106.0563 0.1300107.1921 -1.0058


106.0248106.0854 -0.0606106.4272 -0.4024


105.8753106.0431 -0.1678106.1969 -0.3216


106.8054105.8473 0.9581106.0948 0.7106


107.5554106.8658 0.6896105.8739 1.6815


107.3564107.7478 -0.3914106.7494 0.6070


107.1263107.4012 -0.2749107.4787 -0.3524


107.0368107.0468 -0.0100107.3239 -0.2871


106.1570107.0067 -0.8497107.1020 -0.9450


106.1868106.0859 0.1009107.0694 -0.8826


104.7869106.0738 -1.2869106.2198 -1.4329


104.6150104.7198 -0.1048106.2534 -1.6384


105.8364104.4107 1.4257104.7460 1.0904


106.7551105.9719 0.7832104.7716 1.9835


106.7465107.0026 -0.2561105.7435 1.0030


107.1114106.8163 0.2951106.7354 0.3760


107.6872107.0969 0.5903106.6261 1.0611


107.8848107.7818 0.1030107.0591 0.8257


107.5046107.9624 -0.4578107.6889 -0.1843


108.2056107.4754 0.7302107.9143 0.2913


108.1870108.1999 -0.0129107.4856 0.7014


108.0871108.2976 -0.2105108.2339 -0.1468


107.6053108.0457 -0.4404108.1475 -0.5422


107.6109107.5539 0.0570108.1463 -0.5354


108.2055107.5503 0.6552107.5461 0.6594


109.3957108.2748 1.1209107.6952 1.7005


109.4451109.5706 -0.1255108.1942 1.2509


110.1055109.5842 0.5213109.3696 0.7359


110.0850110.1106 -0.0256109.3361 0.7489


109.7970110.1698 -0.3728110.1055 -0.3085


108.7249109.7420 -1.0171110.0064 -1.2815


109.7552108.6015 1.1537109.8985 -0.1433


110.4866109.7037 0.7829108.7124 1.7742


110.0572110.7325 -0.6753109.8777 0.1795


109.6855110.0777 -0.3922110.3860 -0.7005


109.9856109.5642 0.4214110.0738 -0.0882


108.3790109.9773 -1.5983109.6098 -1.2308


109.8756108.3100 1.5656110.0301 -0.1545


109.1267109.7623 -0.6356108.4184 0.7083


109.8350109.3425 0.4925110.0045 -0.1695


109.7370109.7238 0.0132108.9142 0.8228


109.5551109.8576 -0.3025110.0551 -0.5000


108.6947109.4965 -0.8018109.4605 -0.7658


108.8670108.6058 0.2612109.7313 -0.8643


108.1861108.7719 -0.5858108.6138 -0.4277


107.7733108.1944 -0.4211108.9838 -1.2105


106.9573107.6413 -0.6840108.1489 -1.1916


107.9747106.8670 1.1077107.8699 0.1048


107.1451107.9631 -0.8180106.8994 0.2457


107.8066107.2547 0.5519108.0774 -0.2708


106.6838107.7014 -1.0176107.0155 -0.3317


107.4962106.7212 0.7750107.9234 -0.4272


105.7049107.3789 -1.6740106.4903 -0.7854


105.0252105.7235 -0.6983107.7239 -2.6987


104.6862104.6929 -0.0067105.5097 -0.8235


104.9147104.6463 0.2684105.3032 -0.3885


107.2019104.9187 2.2832104.5594 2.6425


106.3546107.4292 -1.0746105.0790 1.2756


105.7269106.5887 -0.8618107.0892 -1.3623


106.0364105.4599 0.5765106.1532 -0.1168


106.4852106.0112 0.4740105.8302 0.6550


106.0768106.5915 -0.5147105.9432 0.1336


105.1272106.0923 -0.9651106.6466 -1.5194


105.9056104.9764 0.9292106.0290 -0.1234


106.0050105.8558 0.1492105.1129 0.8921


105.2649106.1614 -0.8965105.9634 -0.6985


105.7965105.1861 0.6104105.9675 -0.1710


101.2568105.7327 -4.4759105.3084 -4.0516


102.2947101.0037 1.2910105.7483 -3.4536


99.8173101.7366 -1.9193101.2389 -1.4216


100.6065 99.9650 0.6415102.7212 -2.1147


99.4775100.2899 -0.8124 99.5095 -0.0320


101.9915 99.6053 2.3862101.1341 0.8574


102.2266102.0035 0.2231 98.9648 3.2618


101.4766102.6365 -1.1599102.3201 -0.8435


100.4066101.3382 -0.9316101.7757 -1.3691


101.3968100.2074 1.1894101.6569 -0.2601


101.7571101.3628 0.3943100.2512 1.5059


100.4266101.9686 -1.5420101.6170 -1.1904


98.6563100.3274 -1.6711101.7039 -3.0476


97.6207 98.3188 -0.6981100.4396 -2.8189


94.2454 97.3574 -3.1120 98.6428 -4.3974


93.2939 93.9185 -0.6246 97.7662 -4.4723


95.6676 92.8079 2.8597 94.3728 1.2948


97.5334 95.8772 1.6562 93.5395 3.9939


97.4601 98.0488 -0.5887 95.5741 1.8860


98.3483 97.6028 0.7455 97.4382 0.9101


98.9630 98.3229 0.6401 97.2104 1.7526


100.5150 99.1338 1.3812 98.2112 2.3038


98.9452100.6814 -1.7362 98.9457 -0.0005


98.0802 99.0040 -0.9238100.6267 -2.5465


98.1398 97.7287 0.4111 98.7853 -0.6455


97.9667 98.0956 -0.1289 98.2796 -0.3129


95.5363 98.0012 -2.4649 98.1114 -2.5751


95.9177 95.3191 0.5986 98.1315 -2.2138


96.6655 95.6251 1.0404 95.4940 1.1715


97.0700 96.8850 0.1850 96.0422 1.0278


97.3705 97.1888 0.1817 96.5722 0.7983


96.7957 97.4155 -0.6198 97.1509 -0.3552


95.0168 96.7724 -1.7556 97.1733 -2.1565


95.4330 94.7845 0.6485 96.7678 -1.3348


96.6894 95.2495 1.4399 95.1000 1.5894


95.5379 96.9251 -1.3872 95.5664 -0.0285


95.4584 95.6008 -0.1424 96.6537 -1.1953


95.4584 95.2391 0.2193 95.5144 -0.0560


93.7002 95.4978 -1.7976 95.4435 -1.7433


93.6774 93.5661 0.1113 95.3844 -1.7070


93.2757 93.4367 -0.1610 93.8503 -0.5746


92.8238 93.3194 -0.4956 93.7424 -0.9186


92.1794 92.7362 -0.5568 93.2163 -1.0369


92.7862 92.0851 0.7011 92.9562 -0.1700


92.4707 92.7670 -0.2963 92.0831 0.3876


92.9495 92.5575 0.3920 92.8446 0.1049


91.9511 92.9179 -0.9668 92.4006 -0.4495


91.2942 91.9509 -0.6567 92.9999 -1.7057


90.6955 91.0856 -0.3901 91.8239 -1.1284


89.9984 90.6031 -0.6047 91.4485 -1.4501


87.8918 89.8923 -2.0005 90.6667 -2.7749


89.8309 87.6581 2.1728 90.1155 -0.2846


89.4728 89.7293 -0.2565 87.8974 1.5754


90.0872 89.8028 0.2844 89.9653 0.1219


90.5922 90.0024 0.5898 89.2512 1.3410


90.6927 90.7298 -0.0371 90.2506 0.4421


90.7961 90.7422 0.0539 90.2757 0.5204


90.1971 90.7948 -0.5977 90.8259 -0.6288


90.3676 90.1589 0.2087 90.7442 -0.3766


90.7826 90.2949 0.4877 90.2052 0.5774


91.1710 90.8652 0.3058 90.4473 0.7237


93.2288 91.2510 1.9778 90.7510 2.4778


94.2125 93.4253 0.7872 91.1851 3.0274


92.6775 94.5521 -1.8746 93.1602 -0.4827


91.1701 92.5978 -1.4277 94.0493 -2.8792


90.2615 90.7967 -0.5352 92.6708 -2.4093


88.9377 90.0525 -1.1148 91.2312 -2.2935


89.6021 88.7784 0.8237 90.4170 -0.8149


89.2845 89.5166 -0.2321 89.1180 0.1665


89.6059 89.4097 0.1962 89.6598 -0.0539


90.2992 89.5597 0.7395 89.1386 1.1606


90.2350 90.4112 -0.1762 89.6661 0.5689


87.8123 90.3101 -2.4978 90.1344 -2.3221


88.6358 87.5811 1.0547 90.2541 -1.6183


88.7680 88.3737 0.3943 87.7991 0.9689


89.2236 88.9986 0.2250 88.8081 0.4155


88.9986 89.2430 -0.2444 88.6771 0.3215


89.8851 89.0361 0.8490 89.3744 0.5107


89.7548 89.9040 -0.1492 88.7528 1.0020


89.8599 89.8746 -0.0147 89.9663 -0.1064


89.8895 89.8111 0.0784 89.6602 0.2293


89.1458 89.9111 -0.7653 89.9426 -0.7968


89.5372 89.0866 0.4506 89.8105 -0.2733


91.0048 89.4656 1.5392 89.2152 1.7896


91.9793 91.2070 0.7723 89.5821 2.3972


91.4678 92.2389 -0.7711 90.9557 0.5121


90.6801 91.4940 -0.8139 91.9201 -1.2400


90.6920 90.5036 0.1884 91.3634 -0.6714


90.5481 90.6078 -0.0597 90.6939 -0.1458


91.8299 90.5740 1.2559 90.7829 1.0470


91.7903 91.9117 -0.1214 90.6186 1.1717


92.1859 91.9678 0.2181 91.8520 0.3339


93.7943 92.1546 1.6397 91.6293 2.1650


94.1347 93.9756 0.1591 92.2388 1.8959


93.8757 94.3625 -0.4868 93.6779 0.1978


94.6506 93.8294 0.8212 94.1099 0.5407


96.5962 94.6599 1.9363 93.8742 2.7220


97.3393 96.8663 0.4730 94.6164 2.7229


98.5506 97.6280 0.9226 96.6173 1.9333


97.7521 98.6596 -0.9075 97.2478 0.5043


97.2149 97.8187 -0.6038 98.4909 -1.2760


98.1670 97.0092 1.1578 97.6207 0.5463


99.3445 98.2037 1.1408 97.4075 1.9370


98.3789 99.5915 -1.2126 98.1655 0.2134


97.8970 98.4207 -0.5237 99.3811 -1.4841


98.8658 97.6743 1.1915 98.2918 0.5740


98.3694 98.9188 -0.5494 97.9192 0.4502


97.7678 98.4843 -0.7165 98.8709 -1.1031


97.8455 97.6101 0.2354 98.4137 -0.5682


98.0733 97.7911 0.2822 97.7994 0.2739


98.1854 98.1292 0.0562 97.7886 0.3968


98.8252 98.2223 0.6029 98.1432 0.6820


98.0766 98.8807 -0.8041 98.1704 -0.0938


93.8748 98.0993 -4.2245 98.7777 -4.9029


96.2015 93.4128 2.7887 98.0216 -1.8201


97.3443 95.8469 1.4974 93.9637 3.3806


97.8650 97.9390 -0.0740 96.4820 1.3830


97.7297 97.9614 -0.2317 97.1135 0.6162


98.4887 97.7366 0.7521 98.0388 0.4499


98.0442 98.5059 -0.4617 97.3021 0.7421


97.4509 98.1178 -0.6669 98.6099 -1.1590


99.1565 97.3099 1.8466 98.0282 1.1283


98.9339 99.2296 -0.2957 97.5538 1.3801


99.4738 99.1750 0.2988 99.1365 0.3373


99.9801 99.4106 0.5695 98.8575 1.1226


100.6456100.1018 0.5438 99.5492 1.0964


100.7463100.7430 0.0033 99.7912 0.9551


99.9573100.8216 -0.8643100.7525 -0.7952


100.4478 99.8785 0.5693100.6632 -0.2154


100.1850100.3742 -0.1892 99.9783 0.2067


99.1191100.2661 -1.1470100.5100 -1.3909


99.4106 98.9781 0.4325100.1609 -0.7503


99.2822 99.3000 -0.0178 99.2079 0.0743


99.2366 99.3595 -0.1229 99.4044 -0.1678


98.2790 99.2035 -0.9245 99.2741 -0.9951


98.6319 98.2027 0.4292 99.2994 -0.6675


98.1775 98.5318 -0.3543 98.1886 -0.0111


97.9343 98.2324 -0.2981 98.7338 -0.7995


97.0596 97.8385 -0.7789 98.1129 -1.0533


96.6301 96.9775 -0.3474 98.0336 -1.4035


96.5189 96.4886 0.0303 96.9784 -0.4595


96.9999 96.4910 0.5089 96.7422 0.2577


98.7637 97.0427 1.7210 96.5080 2.2557


99.2699 98.9736 0.2963 97.0288 2.2411


99.1705 99.5282 -0.3577 98.6867 0.4838


98.7453 99.1523 -0.4070 99.1221 -0.3768


98.5859 98.6740 -0.0881 99.1509 -0.5650


99.0247 98.5195 0.5052 98.7007 0.3240


98.9880 99.0567 -0.0687 98.7084 0.2796


97.4909 99.0523 -1.5614 99.0643 -1.5734


97.3483 -0.7667


98.9848


97.5723


RUR_USD


24.5076 24.5046 0.0030 24.3359 0.1717


24.6456 24.5071 0.1385 24.5037 0.1419


24.8917 24.6467 0.2450 24.5077 0.3840


24.6325 24.8928 -0.2603 24.6460 -0.0135


24.6349 24.6309 0.0040 24.8931 -0.2582


24.4386 24.6368 -0.1982 24.6331 -0.1945


24.5952 24.4378 0.1574 24.6357 -0.0405


24.4750 24.5958 -0.1208 24.4404 0.0346


24.4764 24.4735 0.0029 24.5934 -0.1170


24.4262 24.4766 -0.0504 24.4748 -0.0486


24.4201 24.4261 -0.0060 24.4749 -0.0548


24.4543 24.4199 0.0344 24.4270 0.0273


24.5211 24.4544 0.0667 24.4194 0.1017


24.6706 24.5211 0.1495 24.4541 0.2165


24.5486 24.5202 0.0284 24.5767 -0.0281


24.5299 24.5487 -0.0188 24.5204 0.0095


24.4663 24.5296 -0.0633 24.5481 -0.0818


24.4558 24.4660 -0.0102 24.5298 -0.0740


24.1966 24.4560 -0.2594 24.4659 -0.2693


24.6466 24.6711 -0.0245 24.5208 0.1258


24.7813 24.6462 0.1351 24.6706 0.1107


24.6715 24.7825 -0.1110 24.6470 0.0245


24.6537 24.6709 -0.0172 24.7818 -0.1281


24.6655 24.6543 0.0112 24.6728 -0.0073


24.6392 24.6657 -0.0265 24.6536 -0.0144


24.5861 24.6387 -0.0526 24.6664 -0.0803


24.5767 24.5859 -0.0092 24.6386 -0.0619


24.5206 24.5768 -0.0562 24.5858 -0.0652


24.1159 24.1953 -0.0794 24.4559 -0.3400


24.0023 24.1162 -0.1139 24.1965 -0.1942


24.0103 24.0014 0.0089 24.1151 -0.1048


24.0480 24.0098 0.0382 24.0020 0.0460


24.0473 24.0476 -0.0003 24.0083 0.0390


23.9349 24.0469 -0.1120 24.0471 -0.1122


23.8353 23.9345 -0.0992 24.0465 -0.2112


23.8587 23.8354 0.0233 23.9348 -0.0761


23.8461 23.8589 -0.0128 23.8354 0.0107


23.6924 23.8454 -0.1530 23.8586 -0.1662


23.6490 23.6915 -0.0425 23.8453 -0.1963


23.5126 23.6494 -0.1368 23.6916 -0.1790


23.5325 23.5118 0.0207 23.6489 -0.1164


23.5581 23.5325 0.0256 23.5124 0.0457


23.6781 23.5577 0.1204 23.5312 0.1469


23.7773 23.6782 0.0991 23.5576 0.2197


23.8351 23.7774 0.0577 23.6771 0.1580


23.7010 23.8354 -0.1344 23.7774 -0.0764


23.6559 23.7008 -0.0449 23.8355 -0.1796


23.5171 23.6566 -0.1395 23.7020 -0.1849


23.5156 23.5165 -0.0009 23.6566 -0.1410


23.5027 23.5156 -0.0129 23.5175 -0.0148


23.5799 23.5022 0.0777 23.5145 0.0654


23.6706 23.5799 0.0907 23.5022 0.1684


23.6153 23.6707 -0.0554 23.5789 0.0364


23.5982 23.6149 -0.0167 23.6705 -0.0723


23.6028 23.5988 0.0040 23.6153 -0.0125


23.5330 23.6030 -0.0700 23.5987 -0.0657


23.5437 23.5325 0.0112 23.6035 -0.0598


23.4628 23.5439 -0.0811 23.5327 -0.0699


23.4825 23.4623 0.0202 23.5434 -0.0609


23.5139 23.4827 0.0312 23.4628 0.0511


23.4549 23.5138 -0.0589 23.4819 -0.0270


23.4482 23.4544 -0.0062 23.5139 -0.0657


23.3703 23.4485 -0.0782 23.4544 -0.0841


23.3696 23.3699 -0.0003 23.4482 -0.0786


23.4704 23.3697 0.1007 23.3705 0.0999


23.4299 23.4706 -0.0407 23.3691 0.0608


23.3448 23.4292 -0.0844 23.4703 -0.1255


23.4391 23.3448 0.0943 23.4295 0.0096


23.6007 23.4400 0.1607 23.3447 0.2560


23.6037 23.6007 0.0030 23.4397 0.1640


23.6471 23.6031 0.0440 23.6006 0.0465


23.6588 23.6479 0.0109 23.6033 0.0555


23.7633 23.6592 0.1041 23.6477 0.1156


23.7456 23.7638 -0.0182 23.6601 0.0855


23.7523 23.7453 0.0070 23.7635 -0.0112


23.8833 23.7527 0.1306 23.7460 0.1373


23.8328 23.8841 -0.0513 23.7524 0.0804


23.7199 23.8321 -0.1122 23.8840 -0.1641


23.8521 23.7199 0.1322 23.8330 0.0191


23.8482 23.8533 -0.0051 23.7199 0.1283


23.8391 23.8473 -0.0082 23.8529 -0.0138


23.7238 23.8391 -0.1153 23.8481 -0.1243


23.7462 23.7237 0.0225 23.8383 -0.0921


23.6874 23.7467 -0.0593 23.7246 -0.0372


23.5758 23.6868 -0.1110 23.7462 -0.1704


23.6007 23.5752 0.0255 23.6873 -0.0866


23.5483 23.6011 -0.0528 23.5749 -0.0266


23.5513 23.5475 0.0038 23.6006 -0.0493


23.5847 23.5512 0.0335 23.5479 0.0368


23.6659 23.5848 0.0811 23.5504 0.1155


23.7384 23.6660 0.0724 23.5847 0.1537


23.7473 23.7385 0.0088 23.6656 0.0817


23.6968 23.7474 -0.0506 23.7385 -0.0417


23.8019 23.6970 0.1049 23.7477 0.0542


23.8116 23.8028 0.0088 23.6974 0.1142


23.6809 23.8112 -0.1303 23.8024 -0.1215


23.5210 23.6804 -0.1594 23.8119 -0.2909


23.6109 23.5211 0.0898 23.6806 -0.0697


23.6748 23.6116 0.0632 23.5215 0.1533


23.7795 23.6740 0.1055 23.6108 0.1687


23.6402 23.7795 -0.1393 23.6739 -0.0337


23.6586 23.6397 0.0189 23.7783 -0.1197


23.5979 23.6596 -0.0617 23.6408 -0.0429


23.6288 23.5975 0.0313 23.6590 -0.0302


23.5908 23.6288 -0.0380 23.5987 -0.0079


23.6223 23.5904 0.0319 23.6279 -0.0056


23.6113 23.6225 -0.0112 23.5908 0.0205


23.5245 23.6111 -0.0866 23.6219 -0.0974


23.4573 23.5241 -0.0668 23.6115 -0.1542


23.4068 23.4574 -0.0506 23.5243 -0.1175


23.4689 23.4066 0.0623 23.4574 0.0115


23.4147 23.4689 -0.0542 23.4066 0.0081


23.3759 23.4139 -0.0380 23.4682 -0.0923


23.5125 23.3759 0.1366 23.4142 0.0983


23.5024 23.5133 -0.0109 23.3754 0.1270


23.4147 23.5016 -0.0869 23.5128 -0.0981


23.4363 23.4146 0.0217 23.5022 -0.0659


23.3727 23.4371 -0.0644 23.4144 -0.0417


23.2300 23.3721 -0.1421 23.4371 -0.2071


23.1255 23.2294 -0.1039 23.3728 -0.2473


23.1638 23.1255 0.0383 23.2293 -0.0655


23.2250 23.1638 0.0612 23.1254 0.0996


23.1937 23.2245 -0.0308 23.1632 0.0305


23.2120 23.1931 0.0189 23.2239 -0.0119


23.1960 23.2124 -0.0164 23.1929 0.0031


23.3220 23.1960 0.1260 23.2121 0.1099


23.3782 23.3226 0.0556 23.1965 0.1817


23.3572 23.3780 -0.0208 23.3218 0.0354


23.3610 23.3572 0.0038 23.3784 -0.0174


23.3278 23.3616 -0.0338 23.3572 -0.0294


23.4456 23.3278 0.1178 23.3619 0.0837


23.4186 23.4462 -0.0276 23.3283 0.0903


23.4697 23.4180 0.0517 23.4455 0.0242


23.4039 23.4702 -0.0663 23.4187 -0.0148


23.4354 23.4037 0.0317 23.4695 -0.0341


23.5142 23.4358 0.0784 23.4047 0.1095


23.5816 23.5144 0.0672 23.4353 0.1463


23.8782 23.5815 0.2967 23.5145 0.3637


24.5697 23.8795 0.6902 23.5813 0.9884


24.3424 24.5721 -0.2297 23.8785 0.4639


24.1559 24.3399 -0.1840 24.5707 -0.4148


24.2901 24.1584 0.1317 24.3439 -0.0538


24.5054 24.2928 0.2126 24.1580 0.3474


24.4898 24.5048 -0.0150 24.2950 0.1948


24.5703 24.4888 0.0815 24.5047 0.0656


24.4316 24.5716 -0.1400 24.4885 -0.0569


24.3013 24.4313 -0.1300 24.5711 -0.2698


24.2699 24.3014 -0.0315 24.4334 -0.1635


24.4389 24.2701 0.1688 24.3013 0.1376


24.5803 24.4390 0.1413 24.2702 0.3101


24.6019 24.5799 0.0220 24.4379 0.1640


24.5474 24.6018 -0.0544 24.5794 -0.0320


24.5769 24.5479 0.0290 24.6018 -0.0249


24.6670 24.5777 0.0893 24.5486 0.1184


24.7184 24.6672 0.0512 24.5780 0.1404


24.8739 24.7182 0.1557 24.6673 0.2066


25.2144 24.8747 0.3397 24.7182 0.4962


25.4552 25.2157 0.2395 24.8741 0.5811


25.2626 25.4556 -0.1930 25.2153 0.0473


25.5814 25.2622 0.3192 25.4561 0.1253


25.5761 25.5850 -0.0089 25.2642 0.3119


25.7842 25.5752 0.2090 25.5838 0.2004


25.7013 25.7853 -0.0840 25.5785 0.1228


25.3938 25.7011 -0.3073 25.7832 -0.3894


25.5245 25.3932 0.1313 25.7036 -0.1791


25.4307 25.5265 -0.0958 25.3941 0.0366


25.4863 25.4289 0.0574 25.5256 -0.0393


25.2690 25.4863 -0.2173 25.4304 -0.1614


24.9864 25.2680 -0.2816 25.4840 -0.4976


25.0703 24.9858 0.0845 25.2696 -0.1993


24.8982 25.0713 -0.1731 24.9857 -0.0875


25.0221 24.8959 0.1262 25.0702 -0.0481


25.2464 25.0226 0.2238 24.8967 0.3497


25.6023 25.2468 0.3555 25.0197 0.5826


25.8993 25.6029 0.2964 25.2468 0.6525


26.1784 25.9003 0.2781 25.6015 0.5769


26.1791 26.1801 -0.0010 25.9005 0.2786


26.1629 26.1799 -0.0170 26.1806 -0.0177


26.0695 26.1644 -0.0949 26.1823 -0.1128


26.2080 26.0700 0.1380 26.1655 0.0425


26.1111 26.2089 -0.0978 26.0718 0.0393


26.0871 26.1099 -0.0228 26.2082 -0.1211


26.1347 26.0874 0.0473 26.1111 0.0236


26.3691 26.1352 0.2339 26.0864 0.2827


26.2505 26.3696 -0.1191 26.1355 0.1150


26.0561 26.2492 -0.1931 26.3686 -0.3125


26.4417 26.0564 0.3853 26.2505 0.1912


26.9215 26.4444 0.4771 26.0564 0.8651


26.9793 26.9214 0.0579 26.4431 0.5362


27.0596 26.9783 0.0813 26.9213 0.1383


27.3507 27.0620 0.2887 26.9785 0.3722


27.3018 27.3532 -0.0514 27.0623 0.2395


27.0979 27.3009 -0.2030 27.3546 -0.2567


27.0981 27.0981 -0.0000 27.3031 -0.2050


26.9146 27.0995 -0.1849 27.0986 -0.1840


26.9114 26.9132 -0.0018 27.1000 -0.1886


27.0041 26.9114 0.0927 26.9145 0.0896


26.9639 27.0041 -0.0402 26.9097 0.0542


27.3399 26.9629 0.3770 27.0038 0.3361


27.4704 27.3419 0.1285 26.9627 0.5077


27.6704 27.4698 0.2006 27.3397 0.3307


27.3386 27.6716 -0.3330 27.4715 -0.1329


27.4374 27.3379 0.0995 27.6705 -0.2331


27.4301 27.4398 -0.0097 27.3415 0.0886


27.4413 27.4295 0.0118 27.4384 0.0029


27.5715 27.4406 0.1309 27.4316 0.1399


27.5665 27.5723 -0.0058 27.4392 0.1273


27.6613 27.5660 0.0953 27.5718 0.0895


27.3913 27.6621 -0.2708 27.5667 -0.1754


27.3563 27.3902 -0.0339 27.6614 -0.3051


27.4216 27.3573 0.0643 27.3923 0.0293


27.6060 27.4216 0.1844 27.3561 0.2499


27.9409 27.6057 0.3352 27.4221 0.5188


28.0166 27.9418 0.0748 27.6043 0.4123


27.9212 28.0164 -0.0952 27.9406 -0.0194


27.9576 27.9219 0.0357 28.0175 -0.0599


28.0916 27.9592 0.1324 27.9228 0.1688


28.0043 28.0920 -0.0877 27.9601 0.0442


28.0029 28.0033 -0.0004 28.0925 -0.0896


27.8671 28.0036 -0.1365 28.0039 -0.1368


27.9310 27.8667 0.0643 28.0030 -0.0720


27.8077 27.9315 -0.1238 27.8680 -0.0603


27.8160 27.8066 0.0094 27.9304 -0.1144


27.6009 27.8162 -0.2153 27.8076 -0.2067


27.5199 27.5998 -0.0799 27.8149 -0.2950


27.6095 27.5200 0.0895 27.6012 0.0083


27.7351 27.6097 0.1254 27.5189 0.2162


28.2682 27.7345 0.5337 27.6092 0.6590


28.3359 28.2700 0.0659 27.7337 0.6022


28.6119 28.3349 0.2770 28.2676 0.3443


28.6735 28.6145 0.0590 28.3371 0.3364


29.0058 28.6745 0.3313 28.6132 0.3926


29.2300 29.0079 0.2221 28.6777 0.5523


29.3804 29.2308 0.1496 29.0071 0.3733


29.3916 29.3813 0.0103 29.2324 0.1592


30.5331 29.3926 1.1405 29.3815 1.1516


30.9981 30.5390 0.4591 29.3943 1.6038


31.2226 30.9966 0.2260 30.5351 0.6875


31.5616 31.2248 0.3368 31.0008 0.5608


32.2135 31.5667 0.6468 31.2238 0.9897


32.5747 32.2170 0.3577 31.5701 1.0046


32.9085 32.5755 0.3330 32.2185 0.6900


33.4154 32.9113 0.5041 32.5777 0.8377


32.6430 33.4192 -0.7762 32.9118 -0.2688


32.7991 32.6398 0.1593 33.4209 -0.6218


32.8926 32.8046 0.0880 32.6470 0.2456


32.9018 32.8921 0.0097 32.8011 0.1007


32.9979 32.8997 0.0982 32.8964 0.1015


33.2155 32.9990 0.2165 32.8971 0.3184


34.6847 33.2164 1.4683 32.9982 1.6865


34.7236 34.6905 0.0331 33.2164 1.5072


34.7195 33.2160


34.6872


34.7258


RUR_EUR


35.8669 35.8636 0.0033 36.0642 -0.1973


35.8298 35.8672 -0.0374 35.8623 -0.0325


35.8490 35.8316 0.0174 35.8673 -0.0183


35.9832 35.8508 0.1324 35.8318 0.1514


35.9891 35.9818 0.0073 35.8482 0.1409


36.0714 35.9893 0.0821 35.9838 0.0876


36.1033 36.0697 0.0336 35.9888 0.1145


36.1398 36.1016 0.0382 36.0701 0.0697


36.1688 36.1389 0.0299 36.1038 0.0650


36.2900 36.1675 0.1225 36.1388 0.1512


36.3225 36.2881 0.0344 36.1688 0.1537


36.2731 36.3216 -0.0485 36.2897 -0.0166


36.3059 36.2728 0.0331 36.3223 -0.0164


36.0980 36.3042 -0.2062 36.2719 -0.1739


36.0259 36.1003 -0.0744 36.3060 -0.2801


35.8585 36.0271 -0.1686 36.0986 -0.2401


35.9316 35.8611 0.0705 36.0253 -0.0937


35.8317 35.9332 -0.1015 35.8609 -0.0292


35.9006 35.8343 0.0663 35.9315 -0.0309


35.9732 35.9011 0.0721 35.8334 0.1398


36.0309 35.9721 0.0588 35.8992 0.1317


36.0663 36.0309 0.0354 35.9747 0.0916


36.0992 36.0649 0.0343 36.0297 0.0695


36.1036 36.0978 0.0058 36.0659 0.0377


36.1399 36.1028 0.0371 36.0988 0.0411


36.2248 36.1390 0.0858 36.1034 0.1214


36.1921 36.2235 -0.0314 36.1396 0.0525


36.3893 36.1923 0.1970 36.2249 0.1644


36.4054 36.3863 0.0191 36.1917 0.2137


36.5099 36.4045 0.1054 36.3885 0.1214


36.5125 36.5081 0.0044 36.4061 0.1064


36.5169 36.5104 0.0065 36.5076 0.0093


36.4918 36.5162 -0.0244 36.5132 -0.0214


36.6204 36.4910 0.1294 36.5157 0.1047


36.6921 36.6189 0.0732 36.4922 0.1999


36.6446 36.6913 -0.0467 36.6203 0.0243


36.6538 36.6448 0.0090 36.6924 -0.0386


36.8701 36.6521 0.2180 36.6431 0.2270


36.8995 36.8671 0.0324 36.6535 0.2460


37.1123 36.8996 0.2127 36.8708 0.2415


37.0825 37.1088 -0.0263 36.8992 0.1833


37.0216 37.0805 -0.0589 37.1100 -0.0884


36.8739 37.0211 -0.1472 37.0831 -0.2092


36.7526 36.8737 -0.1211 37.0193 -0.2667


36.6632 36.7546 -0.0914 36.8750 -0.2118


36.8527 36.6655 0.1872 36.7530 0.0997


36.9103 36.8525 0.0578 36.6646 0.2457


37.0794 36.9112 0.1682 36.8535 0.2259


37.0676 37.0775 -0.0099 36.9109 0.1567


37.0873 37.0656 0.0217 37.0771 0.0102


36.9851 37.0857 -0.1006 37.0678 -0.0827


36.8693 36.9847 -0.1154 37.0856 -0.2163


36.9414 36.8707 0.0707 36.9859 -0.0445


36.9760 36.9408 0.0352 36.8689 0.1071


36.9714 36.9771 -0.0057 36.9426 0.0288


37.0433 36.9723 0.0710 36.9768 0.0665


37.0295 37.0416 -0.0121 36.9702 0.0593


37.1299 37.0293 0.1006 37.0433 0.0866


37.1070 37.1285 -0.0215 37.0296 0.0774


37.0603 37.1066 -0.0463 37.1291 -0.0688


37.1291 37.0605 0.0686 37.1075 0.0216


37.1396 37.1274 0.0122 37.0591 0.0805


37.2336 37.1399 0.0937 37.1297 0.1039


37.2348 37.2327 0.0021 37.1400 0.0948


37.1137 37.2340 -0.1203 37.2327 -0.1190


37.1598 37.1146 0.0452 37.2350 -0.0752


37.2606 37.1583 0.1023 37.1127 0.1479


37.1463 37.2599 -0.1136 37.1601 -0.0138


36.9422 37.1486 -0.2064 37.2619 -0.3197


36.9469 36.9437 0.0032 37.1453 -0.1984


36.8895 36.9464 -0.0569 36.9414 -0.0519


36.8959 36.8922 0.0037 36.9485 -0.0526


36.7666 36.8978 -0.1312 36.8912 -0.1246


36.7701 36.7683 0.0018 36.8951 -0.1250


36.7757 36.7706 0.0051 36.7674 0.0083


36.6035 36.7761 -0.1726 36.7698 -0.1663


36.6715 36.6068 0.0647 36.7772 -0.1057


36.8346 36.6707 0.1639 36.6029 0.2317


36.8730 36.8334 0.0396 36.6715 0.2015


37.0339 36.8739 0.1600 36.8365 0.1974


36.9053 37.0306 -0.1253 36.8716 0.0337


36.9474 36.9050 0.0424 37.0325 -0.0851


36.9705 36.9458 0.0247 36.9055 0.0650


37.0731 36.9692 0.1039 36.9457 0.1274


37.2238 37.0730 0.1508 36.9725 0.2513


37.0932 37.2215 -0.1283 37.0720 0.0212


37.1357 37.0940 0.0417 37.2238 -0.0881


37.1239 37.1335 -0.0096 37.0922 0.0317


37.0987 37.1231 -0.0244 37.1344 -0.0357


36.8904 37.1001 -0.2097 37.1258 -0.2354


36.7827 36.8925 -0.1098 37.0976 -0.3149


36.8701 36.7842 0.0859 36.8908 -0.0207


36.8699 36.8703 -0.0004 36.7829 0.0870


36.7382 36.8724 -0.1342 36.8722 -0.1340


36.7699 36.7404 0.0295 36.8703 -0.1004


36.9233 36.7687 0.1546 36.7370 0.1863


37.1420 36.9221 0.2199 36.7703 0.3717


36.8070 37.1406 -0.3336 36.9247 -0.1177


36.6841 36.8099 -0.1258 37.1412 -0.4571


36.5681 36.6831 -0.1150 36.8056 -0.2375


36.6943 36.5688 0.1255 36.6823 0.0120


36.6827 36.6967 -0.0140 36.5725 0.1102


36.7325 36.6846 0.0479 36.6941 0.0384


36.7003 36.7325 -0.0322 36.6837 0.0166


36.7427 36.6995 0.0432 36.7308 0.0119


36.7138 36.7421 -0.0283 36.7010 0.0128


36.7203 36.7138 0.0065 36.7420 -0.0217


36.8276 36.7204 0.1072 36.7144 0.1132


36.9077 36.8261 0.0816 36.7197 0.1880


36.9710 36.9070 0.0640 36.8281 0.1429


36.9823 36.9697 0.0126 36.9075 0.0748


37.0561 36.9807 0.0754 36.9699 0.0862


37.1069 37.0542 0.0527 36.9819 0.1250


36.9381 37.1056 -0.1675 37.0557 -0.1176


36.8823 36.9396 -0.0573 37.1070 -0.2247


36.7822 36.8820 -0.0998 36.9373 -0.1551


36.8747 36.7836 0.0911 36.8820 -0.0073


36.8774 36.8756 0.0018 36.7842 0.0932


36.9009 36.8784 0.0225 36.8746 0.0263


36.8759 36.9012 -0.0253 36.8784 -0.0025


36.8559 36.8753 -0.0194 36.8995 -0.0436


36.8093 36.8560 -0.0467 36.8763 -0.0670


36.7991 36.8097 -0.0106 36.8556 -0.0565


36.8142 36.7996 0.0146 36.8097 0.0045


36.9419 36.8144 0.1275 36.7992 0.1427


36.7695 36.9409 -0.1714 36.8146 -0.0451


36.6664 36.7715 -0.1051 36.9418 -0.2754


36.7128 36.6669 0.0459 36.7694 -0.0566


36.6768 36.7118 -0.0350 36.6651 0.0117


36.7203 36.6794 0.0409 36.7151 0.0052


36.5329 36.7206 -0.1877 36.6771 -0.1442


36.5752 36.5348 0.0404 36.7195 -0.1443


36.5353 36.5749 -0.0396 36.5336 0.0017


36.4586 36.5362 -0.0776 36.5745 -0.1159


36.3999 36.4612 -0.0613 36.5375 -0.1376


36.4564 36.4004 0.0560 36.4574 -0.0010


36.4737 36.4565 0.0172 36.4006 0.0731


36.2996 36.4745 -0.1749 36.4570 -0.1574


36.7808 36.3020 0.4788 36.4741 0.3067


36.1850 36.7746 -0.5896 36.2988 -0.1138


36.1034 36.1925 -0.0891 36.7809 -0.6775


36.1922 36.1040 0.0882 36.1870 0.0052


36.1406 36.1891 -0.0485 36.0974 0.0432


36.1200 36.1475 -0.0275 36.2007 -0.0807


35.9832 36.1207 -0.1375 36.1388 -0.1556


36.0439 35.9841 0.0598 36.1191 -0.0752


35.9975 36.0438 -0.0463 35.9842 0.0133


36.1257 35.9988 0.1269 36.0438 0.0819


36.0083 36.1253 -0.1170 35.9989 0.0094


36.0888 36.0093 0.0795 36.1245 -0.0357


36.1574 36.0878 0.0696 36.0092 0.1482


36.2884 36.1558 0.1326 36.0872 0.2012


36.2264 36.2877 -0.0613 36.1592 0.0672


36.1248 36.2260 -0.1012 36.2870 -0.1622


35.9455 36.1247 -0.1792 36.2261 -0.2806


35.9279 35.9466 -0.0187 36.1236 -0.1957


36.5937 35.9292 0.6645 35.9466 0.6471


36.3908 36.5877 -0.1969 35.9286 0.4622


36.2670 36.3949 -0.1279 36.5953 -0.3283


36.0877 36.2657 -0.1780 36.3905 -0.3028


36.1851 36.0841 0.1010 36.2598 -0.0747


35.9922 36.1866 -0.1944 36.0925 -0.1003


36.0821 35.9965 0.0856 36.1851 -0.1030


36.4299 36.0824 0.3475 35.9938 0.4361


36.2958 36.4257 -0.1299 36.0804 0.2154


36.4066 36.2988 0.1078 36.4325 -0.0259


36.2568 36.4029 -0.1461 36.2940 -0.0372


36.6274 36.2557 0.3717 36.4033 0.2241


36.8974 36.6239 0.2735 36.2596 0.6378


36.7957 36.8938 -0.0981 36.6254 0.1703


36.7099 36.7967 -0.0868 36.8996 -0.1897


36.5948 36.7060 -0.1112 36.7911 -0.1963


36.3700 36.5939 -0.2239 36.7085 -0.3385


36.1530 36.3740 -0.2210 36.5967 -0.4437


35.8757 36.1569 -0.2812 36.3703 -0.4946


35.5476 35.8811 -0.3335 36.1539 -0.6063


35.5512 35.5547 -0.0035 35.8777 -0.3265


35.5632 35.5546 0.0086 35.5491 0.0141


35.6839 35.5673 0.1166 35.5534 0.1305


35.5171 35.6857 -0.1686 35.5658 -0.0487


35.6051 35.5189 0.0862 35.6828 -0.0777


35.6063 35.6034 0.0029 35.5172 0.0891


35.5798 35.6058 -0.0260 35.6038 -0.0240


35.3188 35.5814 -0.2626 35.6086 -0.2898


35.3988 35.3210 0.0778 35.5781 -0.1793


35.1731 35.3980 -0.2249 35.3193 -0.1462


35.0881 35.1771 -0.0890 35.3990 -0.3109


34.6345 35.0913 -0.4568 35.1758 -0.5413


34.5767 34.6400 -0.0633 35.0862 -0.5095


34.4144 34.5800 -0.1656 34.6374 -0.2230


34.0844 34.4192 -0.3348 34.5766 -0.4922


34.1627 34.0930 0.0697 34.4191 -0.2564


34.4306 34.1631 0.2675 34.0833 0.3473


34.4092 34.4305 -0.0213 34.1645 0.2447


34.5449 34.4123 0.1326 34.4336 0.1113


34.6484 34.5413 0.1071 34.4072 0.2412


34.5112 34.6446 -0.1334 34.5425 -0.0313


34.5677 34.5124 0.0553 34.6497 -0.0820


34.8064 34.5653 0.2411 34.5095 0.2969


34.6319 34.8032 -0.1713 34.5671 0.0648


34.3777 34.6350 -0.2573 34.8082 -0.4305


34.7938 34.3791 0.4147 34.6307 0.1631


34.5766 34.7874 -0.2108 34.3754 0.2012


34.6250 34.5819 0.0431 34.7966 -0.1716


34.6693 34.6251 0.0442 34.5785 0.0908


34.4975 34.6656 -0.1681 34.6196 -0.1221


34.5215 34.5014 0.0201 34.6735 -0.1520


34.9141 34.5206 0.3935 34.4958 0.4183


35.2416 34.9098 0.3318 34.5213 0.7203


35.4565 35.2393 0.2172 34.9161 0.5404


35.3629 35.4520 -0.0891 35.2407 0.1222


35.7166 35.3586 0.3580 35.4525 0.2641


35.4095 35.7083 -0.2988 35.3609 0.0486


35.3037 35.4113 -0.1076 35.7153 -0.4116


35.4404 35.3043 0.1361 35.4112 0.0292


35.3887 35.4367 -0.0480 35.2993 0.0894


35.8786 35.3928 0.4858 35.4452 0.4334


36.0107 35.8733 0.1374 35.3884 0.6223


36.0061 36.0080 -0.0019 35.8769 0.1292


36.1715 36.0045 0.1670 36.0120 0.1595


36.6678 36.1641 0.5037 36.0005 0.6673


36.9008 36.6607 0.2401 36.1721 0.7287


37.4292 36.8973 0.5319 36.6681 0.7611


37.8188 37.4192 0.3996 36.8990 0.9198


38.7040 37.8082 0.8958 37.4245 1.2795


39.7798 38.6890 1.0908 37.8182 1.9616


39.5475 39.7602 -0.2127 38.6989 0.8486


39.7253 39.5423 0.1830 39.7777 -0.0524


39.6674 39.7097 -0.0423 39.5393 0.1281


39.9565 39.6584 0.2981 39.7169 0.2396


40.1859 39.9546 0.2313 39.6736 0.5123


40.7880 40.1817 0.6063 39.9529 0.8351


41.6294 40.7802 0.8492 40.1874 1.4420


41.4411 41.6156 -0.1745 40.7846 0.6565


41.4275 41.4382 -0.0107 41.6282 -0.2007


41.1311 41.4180 -0.2869 41.4354 -0.3043


41.5282 41.1271 0.4011 41.4206 0.1076


41.4105 41.5255 -0.1150 41.1360 0.2745


41.9706 41.4133 0.5573 41.5269 0.4437


42.3833 41.9653 0.4180 41.4138 0.9695


43.0800 42.3750 0.7050 41.9651 1.1149


43.7815 43.0705 0.7110 42.3865 1.3950


43.3331 43.7658 -0.4327 43.0733 0.2598


42.1454 43.3310 -1.1856 43.7795 -1.6341


42.6454 42.1493 0.4961 43.3269 -0.6815


42.3986 42.6348 -0.2362 42.1402 0.2584


42.4861 42.4112 0.0749 42.6523 -0.1662


43.7123 42.4947 1.2176 42.4092 1.3031


44.0305 43.6941 0.3364 42.4763 1.5542


45.3398 44.0287 1.3111 43.7178 1.6220


45.6636 45.3182 0.3454 44.0284 1.6352


45.6461 44.0178


45.3414


45.6499


RUR_GBR


48.3020 48.1174 0.1846 47.6670 0.6350


48.0688 48.3034 -0.2346 48.1218 -0.0530


48.2725 48.0550 0.2175 48.2878 -0.0153


48.2304 48.2600 -0.0296 48.0600 0.1704


48.1588 48.2330 -0.0742 48.2770 -0.1182


48.3396 48.1575 0.1821 48.2200 0.1196


48.6493 48.3377 0.3116 48.1501 0.4992


48.6122 48.6540 -0.0418 48.3493 0.2629


48.6982 48.6094 0.0888 48.6409 0.0573


48.5520 48.6874 -0.1354 48.6026 -0.0506


48.5765 48.5465 0.0300 48.6975 -0.1210


48.1114 48.5749 -0.4635 48.5488 -0.4374


48.4047 48.1109 0.2938 48.5708 -0.1661


48.4284 48.4076 0.0208 48.1147 0.3137


48.3073 48.4404 -0.1331 48.4118 -0.1045


48.1179 48.3079 -0.1900 48.4325 -0.3146


47.9861 48.1105 -0.12

44 48.2977 -0.3116


48.1462 47.9876 0.1586 48.1341 0.0121


48.2926 48.1539 0.1387 47.9855 0.3071


48.4875 48.3006 0.1869 48.1506 0.3369


48.4518 48.4873 -0.0355 48.2922 0.1596


48.1556 48.4453 -0.2897 48.4851 -0.3295


47.8765 48.1462 -0.2697 48.4496 -0.5731


47.8575 47.8716 -0.0141 48.1508 -0.2933


47.7278 47.8650 -0.1372 47.8821 -0.1543


48.0494 47.7396 0.3098 47.8636 0.1858


48.0752 48.0567 0.0185 47.7309 0.3443


48.1319 48.0796 0.0523 48.0575 0.0744


47.8098 48.1266 -0.3168 48.0763 -0.2665


47.7070 47.8014 -0.0944 48.1257 -0.4187


47.6749 47.7039 -0.0290 47.8140 -0.1391


47.7810 47.6816 0.0994 47.7061 0.0749


47.6088 47.7902 -0.1814 47.6821 -0.0733


47.6687 47.6108 0.0579 47.7792 -0.1105


48.0305 47.6666 0.3639 47.6137 0.4168


47.8820 48.0350 -0.1530 47.6733 0.2087


48.0117 47.8836 0.1281 48.0335 -0.0218


48.1690 48.0019 0.1671 47.8686 0.3004


48.0761 48.1671 -0.0910 48.0142 0.0619


47.3379 48.0754 -0.7375 48.1699 -0.8320


47.1921 47.3272 -0.1351 48.0604 -0.8683


47.3400 47.1893 0.1507 47.3423 -0.0023


46.9442 47.3610 -0.4168 47.2089 -0.2647


47.1551 46.9597 0.1954 47.3502 -0.1951


47.2126 47.1545 0.0581 46.9390 0.2736


47.2337 47.2206 0.0131 47.1786 0.0551


47.3922 47.2360 0.1562 47.2186 0.1736


47.1824 47.3877 -0.2053 47.2221 -0.0397


46.9912 47.1799 -0.1887 47.4022 -0.4110


46.7492 46.9853 -0.2361 47.1738 -0.4246


46.6623 46.7498 -0.0875 46.9924 -0.3301


46.8418 46.6701 0.1717 46.7577 0.0841


46.9212 46.8523 0.0689 46.6653 0.2559


47.0784 46.9287 0.1497 46.8510 0.2274


46.9082 47.0765 -0.1683 46.9209 -0.0127


46.7271 46.9022 -0.1751 47.0789 -0.3518


46.2963 46.7203 -0.4240 46.9069 -0.6106


46.3296 46.2949 0.0347 46.7250 -0.3954


46.3662 46.3367 0.0295 46.3026 0.0636


46.4023 46.3808 0.0215 46.3372 0.0651


46.2108 46.4098 -0.1990 46.3747 -0.1639


46.1507 46.2082 -0.0575 46.4016 -0.2509


46.0675 46.1484 -0.0809 46.2201 -0.1526


46.6224 46.0711 0.5513 46.1541 0.4683


46.8633 46.6305 0.2328 46.0713 0.7920


46.3701 46.8690 -0.4989 46.6228 -0.2527


46.4585 46.3553 0.1032 46.8558 -0.3973


46.3813 46.4416 -0.0603 46.3567 0.0246


46.5831 46.3890 0.1941 46.4730 0.1101


46.8274 46.5911 0.2363 46.3755 0.4519


47.0577 46.8295 0.2282 46.5735 0.4842


46.5227 47.0558 -0.5331 46.8366 -0.3139


46.9777 46.5102 0.4675 47.0461 -0.0684


46.8572 46.9688 -0.1116 46.5171 0.3401


46.7208 46.8666 -0.1458 46.9838 -0.2630


46.6274 46.7183 -0.0909 46.8509 -0.2235


46.4477 46.6212 -0.1735 46.7064 -0.2587


46.3511 46.4522 -0.1011 46.6493 -0.2982


46.3756 46.3551 0.0205 46.4399 -0.0643


46.4563 46.3818 0.0745 46.3585 0.0978


46.4314 46.4626 -0.0312 46.3831 0.0483


46.4607 46.4326 0.0281 46.4580 0.0027


46.4262 46.4583 -0.0321 46.4327 -0.0065


46.5671 46.4252 0.1419 46.4626 0.1045


46.4797 46.5676 -0.0879 46.4260 0.0537


46.7341 46.4798 0.2543 46.5653 0.1688


46.6610 46.7324 -0.0714 46.4778 0.1832


46.5868 46.6607 -0.0739 46.7329 -0.1461


46.6128 46.5814 0.0314 46.6585 -0.0457


46.6715 46.6099 0.0616 46.5804 0.0911


46.9617 46.6751 0.2866 46.6199 0.3418


46.8226 46.9642 -0.1416 46.6653 0.1573


46.5381 46.8204 -0.2823 46.9611 -0.4230


46.5803 46.5278 0.0525 46.8170 -0.2367


46.4850 46.5781 -0.0931 46.5367 -0.0517


46.3601 46.4943 -0.1342 46.5901 -0.2300


46.2987 46.3635 -0.0648 46.4802 -0.1815


46.3647 46.2997 0.0650 46.3626 0.0021


46.2700 46.3699 -0.0999 46.3103 -0.0403


46.4366 46.2735 0.1631 46.3662 0.0704


46.5192 46.4368 0.0824 46.2707 0.2485


46.1650 46.5212 -0.3562 46.4403 -0.2753


46.2542 46.1607 0.0935 46.5188 -0.2646


46.6031 46.2488 0.3543 46.1581 0.4450


46.5140 46.6127 -0.0987 46.2649 0.2491


46.4367 46.5185 -0.0818 46.6032 -0.1665


46.5143 46.4256 0.0887 46.4995 0.0148


46.4374 46.5103 -0.0729 46.4427 -0.0053


46.6120 46.4407 0.1713 46.5183 0.0937


46.6615 46.6123 0.0492 46.4276 0.2339


46.8017 46.6626 0.1391 46.6141 0.1876


46.7194 46.7996 -0.0802 46.6612 0.0582


46.5508 46.7147 -0.1639 46.7953 -0.2445


46.6535 46.5452 0.1083 46.7187 -0.0652


46.3820 46.6532 -0.2712 46.5467 -0.1647


46.1129 46.3865 -0.2736 46.6587 -0.5458


46.3242 46.1114 0.2128 46.3781 -0.0539


46.2405 46.3298 -0.0893 46.1182 0.1223


46.1255 46.2523 -0.1268 46.3396 -0.2141


46.2718 46.1244 0.1474 46.2349 0.0369


46.5407 46.2706 0.2701 46.1285 0.4122


46.4779 46.5470 -0.0691 46.2841 0.1938


46.2158 46.4765 -0.2607 46.5332 -0.3174


46.2499 46.2047 0.0452 46.4704 -0.2205


46.4685 46.2462 0.2223 46.2171 0.2514


46.4481 46.4776 -0.0295 46.2557 0.1924


46.5928 46.4524 0.1404 46.4647 0.1281


46.4178 46.5874 -0.1696 46.4418 -0.0240


46.3809 46.4135 -0.0326 46.5965 -0.2156


46.5623 46.3771 0.1852 46.4158 0.1465


46.4504 46.5650 -0.1146 46.3773 0.0731


46.4040 46.4543 -0.0503 46.5676 -0.1636


46.3738 46.3996 -0.0258 46.4418 -0.0680


46.1314 46.3730 -0.2416 46.4077 -0.2763


45.8842 46.1332 -0.2490 46.3791 -0.4949


46.0102 45.8840 0.1262 46.1275 -0.1173


45.9582 46.0171 -0.0589 45.8926 0.0656


46.0205 45.9689 0.0516 46.0206 -0.0001


47.0755 46.0222 1.0533 45.9578 1.1177


46.3236 47.0805 -0.7569 46.0235 0.3001


45.9469 46.3208 -0.3739 47.0819 -1.1350


45.3666 45.9155 -0.5489 46.2946 -0.9280


45.4796 45.3619 0.1177 45.9499 -0.4703


45.6906 45.5027 0.1879 45.3945 0.2961


45.6074 45.7137 -0.1063 45.4670 0.1404


45.4770 45.6153 -0.1383 45.7119 -0.2349


45.3997 45.4687 -0.0690 45.6049 -0.2052


45.4235 45.3972 0.0263 45.4907 -0.0672


45.1069 45.4283 -0.3214 45.4031 -0.2962


45.2720 45.1096 0.1624 45.4215 -0.1495


45.3585 45.2732 0.0853 45.1084 0.2501


45.0936 45.3669 -0.2733 45.2815 -0.1879


44.9364 45.0940 -0.1576 45.3616 -0.4252


44.5683 44.9297 -0.3614 45.0858 -0.5175


44.1520 44.5710 -0.4190 44.9503 -0.7983


44.0517 44.1579 -0.1062 44.5728 -0.5211


44.9548 44.0626 0.8922 44.1586 0.7962


44.7884 44.9771 -0.1887 44.0722 0.7162


44.9826 44.7995 0.1831 44.9642 0.0184


44.9823 44.9624 0.0199 44.7743 0.2080


45.1469 44.9700 0.1769 44.9817 0.1652


45.1636 45.1460 0.0176 44.9905 0.1731


45.4425 45.1604 0.2821 45.1206 0.3219


45.8155 45.4399 0.3756 45.1655 0.6500


45.8701 45.8146 0.0555 45.4349 0.4352


46.2101 45.8638 0.3463 45.8102 0.3999


45.8218 46.1975 -0.3757 45.8533 -0.0315


46.4192 45.8119 0.6073 46.2050 0.2142


46.3023 46.4122 -0.1099 45.8095 0.4928


46.5004 46.3063 0.1941 46.4144 0.0860


46.3779 46.4934 -0.1155 46.2960 0.0819


45.9055 46.3694 -0.4639 46.4823 -0.5768


45.6455 45.8998 -0.2543 46.3896 -0.7441


45.6591 45.6425 0.0166 45.8898 -0.2307


45.7174 45.6729 0.0445 45.6629 0.0545


46.0164 45.7332 0.2832 45.6666 0.3498


45.9024 46.0227 -0.1203 45.7200 0.1824


45.9578 45.9006 0.0572 46.0240 -0.0662


45.0325 45.9492 -0.9167 45.9009 -0.8684


44.2653 45.0247 -0.7594 45.9560 -1.6907


44.7779 44.2599 0.5180 45.0341 -0.2562


45.5742 44.8017 0.7725 44.2778 1.2964


45.6704 45.6164 0.0540 44.8133 0.8571


45.4814 45.6738 -0.1924 45.5649 -0.0835


45.5945 45.4508 0.1437 45.6598 -0.0653


45.5278 45.5775 -0.0497 45.4898 0.0380


45.2312 45.5306 -0.2994 45.5918 -0.3606


43.8982 45.2301 -1.3319 45.5096 -1.6114


43.9628 43.8897 0.0731 45.2271 -1.2643


42.9409 43.9693 -1.0284 43.9117 -0.9708


42.1775 42.9745 -0.7970 43.9951 -1.8176


42.5990 42.1945 0.4045 42.9591 -0.3601


43.3214 42.6245 0.6969 42.1961 1.1253


43.7851 43.3647 0.4204 42.6654 1.1197


42.6408 43.7927 -1.1519 43.3131 -0.6723


42.9587 42.6091 0.3496 43.7800 -0.8213


42.3154 42.9331 -0.6177 42.6409 -0.3255


42.4250 42.3327 0.0923 42.9741 -0.5491


42.6940 42.4377 0.2563 42.3122 0.3818


42.4061 42.7061 -0.3000 42.4141 -0.0080


41.1791 42.4142 -1.2351 42.7318 -1.5527


40.5951 41.1628 -0.5677 42.3850 -1.7899


40.4757 40.5917 -0.1160 41.1981 -0.7224


41.2549 40.5103 0.7446 40.6277 0.6272


41.1098 41.2967 -0.1869 40.4993 0.6105


41.0098 41.1244 -0.1146 41.2632 -0.2534


40.8784 40.9915 -0.1131 41.1182 -0.2398


41.2236 40.8666 0.3570 41.0142 0.2094


41.4513 41.2305 0.2208 40.8925 0.5588


42.0165 41.4584 0.5581 41.2081 0.8084


42.1909 42.0138 0.1771 41.4480 0.7429


42.6292 42.1808 0.4484 42.0072 0.6220


42.4255 42.6135 -0.1880 42.1803 0.2452


41.4562 42.4102 -0.9540 42.6100 -1.1538


41.4434 41.4360 0.0074 42.4119 -0.9685


40.9411 41.4384 -0.4973 41.4420 -0.5009


41.3536 40.9666 0.3870 41.4686 -0.1150


41.9616 41.3734 0.5882 40.9441 1.0175


41.3911 41.9788 -0.5877 41.3622 0.0289


41.3715 41.3880 -0.0165 41.9831 -0.6116


41.7792 41.3472 0.4320 41.3666 0.4126


41.4223 41.7845 -0.3622 41.3910 0.0313


41.8186 41.4322 0.3864 41.7837 0.0349


42.1383 41.8102 0.3281 41.3935 0.7448


42.9310 42.1423 0.7887 41.8342 1.0968


42.5269 42.9327 -0.4058 42.1386 0.3883


41.8578 42.5107 -0.6529 42.9045 -1.0467


42.2638 41.8272 0.4366 42.5155 -0.2517


42.0873 42.2602 -0.1729 41.8481 0.2392


42.1940 42.1116 0.0824 42.2846 -0.0906


42.3020 42.1965 0.1055 42.0656 0.2364


42.8300 42.2997 0.5303 42.1959 0.6341


43.0441 42.8338 0.2103 42.3219 0.7222


42.6163 43.0416 -0.4253 42.8145 -0.1982


42.4914 42.5989 -0.1075 43.0353 -0.5439


46.2943 42.4746 3.8197 42.6015 3.6928


46.4972 46.3223 0.1749 42.4999 3.9973


45.8160 46.5169 -0.7009 46.2929 -0.4769


46.3577 45.7187 0.6390 46.4018 -0.0441


47.0897 46.2833 0.8064 45.7617 1.3280


48.2953 47.1083 1.1870 46.4058 1.8895


48.5335 48.3025 0.2310 46.9973 1.5362


46.9854 48.5085 -1.5231 48.2592 -1.2738


44.8580 46.9330 -2.0750 48.5152 -3.6572


45.4563 44.8145 0.6418 46.9543 -1.4980


44.9971 45.4903 -0.4932 44.8829 0.1142


45.1380 45.0784 0.0596 45.5026 -0.3646


46.8240 45.1625 1.6615 44.9972 1.8268


47.3852 46.8342 0.5510 45.1588 2.2264


49.0234 47.3966 1.6268 46.8844 2.1390


50.3631 48.9884 1.3747 47.3254 3.0377


50.3281 47.3584


48.9875


50.2706


RUR_CHF


35.8669 35.8636 0.0033 36.0642 -0.1973


35.8298 35.8672 -0.0374 35.8623 -0.0325


35.8490 35.8316 0.0174 35.8673 -0.0183


35.9832 35.8508 0.1324 35.8318 0.1514


35.9891 35.9818 0.0073 35.8482 0.1409


36.0714 35.9893 0.0821 35.9838 0.0876


36.1033 36.0697 0.0336 35.9888 0.1145


36.1398 36.1016 0.0382 36.0701 0.0697


36.1688 36.1389 0.0299 36.1038 0.0650


36.2900 36.1675 0.1225 36.1388 0.1512


36.3225 36.2881 0.0344 36.1688 0.1537


36.2731 36.3216 -0.0485 36.2897 -0.0166


36.3059 36.2728 0.0331 36.3223 -0.0164


36.0980 36.3042 -0.2062 36.2719 -0.1739


36.0259 36.1003 -0.0744 36.3060 -0.2801


35.8585 36.0271 -0.1686 36.0986 -0.2401


35.9316 35.8611 0.0705 36.0253 -0.0937


35.8317 35.9332 -0.1015 35.8609 -0.0292


35.9006 35.8343 0.0663 35.9315 -0.0309


35.9732 35.9011 0.0721 35.8334 0.1398


36.0309 35.9721 0.0588 35.8992 0.1317


36.0663 36.0309 0.0354 35.9747 0.0916


36.0992 36.0649 0.0343 36.0297 0.0695


36.1036 36.0978 0.0058 36.0659 0.0377


36.1399 36.1028 0.0371 36.0988 0.0411


36.2248 36.1390 0.0858 36.1034 0.1214


36.1921 36.2235 -0.0314 36.1396 0.0525


36.3893 36.1923 0.1970 36.2249 0.1644


36.4054 36.3863 0.0191 36.1917 0.2137


36.5099 36.4045 0.1054 36.3885 0.1214


36.5125 36.5081 0.0044 36.4061 0.1064


36.5169 36.5104 0.0065 36.5076 0.0093


36.4918 36.5162 -0.0244 36.5132 -0.0214


36.6204 36.4910 0.1294 36.5157 0.1047


36.6921 36.6189 0.0732 36.4922 0.1999


36.6446 36.6913 -0.0467 36.6203 0.0243


36.6538 36.6448 0.0090 36.6924 -0.0386


36.8701 36.6521 0.2180 36.6431 0.2270


36.8995 36.8671 0.0324 36.6535 0.2460


37.1123 36.8996 0.2127 36.8708 0.2415


37.0825 37.1088 -0.0263 36.8992 0.1833


37.0216 37.0805 -0.0589 37.1100 -0.0884


36.8739 37.0211 -0.1472 37.0831 -0.2092


36.7526 36.8737 -0.1211 37.0193 -0.2667


36.6632 36.7546 -0.0914 36.8750 -0.2118


36.8527 36.6655 0.1872 36.7530 0.0997


36.9103 36.8525 0.0578 36.6646 0.2457


37.0794 36.9112 0.1682 36.8535 0.2259


37.0676 37.0775 -0.0099 36.9109 0.1567


37.0873 37.0656 0.0217 37.0771 0.0102


36.9851 37.0857 -0.1006 37.0678 -0.0827


36.8693 36.9847 -0.1154 37.0856 -0.2163


36.9414 36.8707 0.0707 36.9859 -0.0445


36.9760 36.9408 0.0352 36.8689 0.1071


36.9714 36.9771 -0.0057 36.9426 0.0288


37.0433 36.9723 0.0710 36.9768 0.0665


37.0295 37.0416 -0.0121 36.9702 0.0593


37.1299 37.0293 0.1006 37.0433 0.0866


37.1070 37.1285 -0.0215 37.0296 0.0774


37.0603 37.1066 -0.0463 37.1291 -0.0688


37.1291 37.0605 0.0686 37.1075 0.0216


37.1396 37.1274 0.0122 37.0591 0.0805


37.2336 37.1399 0.0937 37.1297 0.1039


37.2348 37.2327 0.0021 37.1400 0.0948


37.1137 37.2340 -0.1203 37.2327 -0.1190


37.1598 37.1146 0.0452 37.2350 -0.0752


37.2606 37.1583 0.1023 37.1127 0.1479


37.1463 37.2599 -0.1136 37.1601 -0.0138


36.9422 37.1486 -0.2064 37.2619 -0.3197


36.9469 36.9437 0.0032 37.1453 -0.1984


36.8895 36.9464 -0.0569 36.9414 -0.0519


36.8959 36.8922 0.0037 36.9485 -0.0526


36.7666 36.8978 -0.1312 36.8912 -0.1246


36.7701 36.7683 0.0018 36.8951 -0.1250


36.7757 36.7706 0.0051 36.7674 0.0083


36.6035 36.7761 -0.1726 36.7698 -0.1663


36.6715 36.6068 0.0647 36.7772 -0.1057


36.8346 36.6707 0.1639 36.6029 0.2317


36.8730 36.8334 0.0396 36.6715 0.2015


37.0339 36.8739 0.1600 36.8365 0.1974


36.9053 37.0306 -0.1253 36.8716 0.0337


36.9474 36.9050 0.0424 37.0325 -0.0851


36.9705 36.9458 0.0247 36.9055 0.0650


37.0731 36.9692 0.1039 36.9457 0.1274


37.2238 37.0730 0.1508 36.9725 0.2513


37.0932 37.2215 -0.1283 37.0720 0.0212


37.1357 37.0940 0.0417 37.2238 -0.0881


37.1239 37.1335 -0.0096 37.0922 0.0317


37.0987 37.1231 -0.0244 37.1344 -0.0357


36.8904 37.1001 -0.2097 37.1258 -0.2354


36.7827 36.8925 -0.1098 37.0976 -0.3149


36.8701 36.7842 0.0859 36.8908 -0.0207


36.8699 36.8703 -0.0004 36.7829 0.0870


36.7382 36.8724 -0.1342 36.8722 -0.1340


36.7699 36.7404 0.0295 36.8703 -0.1004


36.9233 36.7687 0.1546 36.7370 0.1863


37.1420 36.9221 0.2199 36.7703 0.3717


36.8070 37.1406 -0.3336 36.9247 -0.1177


36.6841 36.8099 -0.1258 37.1412 -0.4571


36.5681 36.6831 -0.1150 36.8056 -0.2375


36.6943 36.5688 0.1255 36.6823 0.0120


36.6827 36.6967 -0.0140 36.5725 0.1102


36.7325 36.6846 0.0479 36.6941 0.0384


36.7003 36.7325 -0.0322 36.6837 0.0166


36.7427 36.6995 0.0432 36.7308 0.0119


36.7138 36.7421 -0.0283 36.7010 0.0128


36.7203 36.7138 0.0065 36.7420 -0.0217


36.8276 36.7204 0.1072 36.7144 0.1132


36.9077 36.8261 0.0816 36.7197 0.1880


36.9710 36.9070 0.0640 36.8281 0.1429


36.9823 36.9697 0.0126 36.9075 0.0748


37.0561 36.9807 0.0754 36.9699 0.0862


37.1069 37.0542 0.0527 36.9819 0.1250


36.9381 37.1056 -0.1675 37.0557 -0.1176


36.8823 36.9396 -0.0573 37.1070 -0.2247


36.7822 36.8820 -0.0998 36.9373 -0.1551


36.8747 36.7836 0.0911 36.8820 -0.0073


36.8774 36.8756 0.0018 36.7842 0.0932


36.9009 36.8784 0.0225 36.8746 0.0263


36.8759 36.9012 -0.0253 36.8784 -0.0025


36.8559 36.8753 -0.0194 36.8995 -0.0436


36.8093 36.8560 -0.0467 36.8763 -0.0670


36.7991 36.8097 -0.0106 36.8556 -0.0565


36.8142 36.7996 0.0146 36.8097 0.0045


36.9419 36.8144 0.1275 36.7992 0.1427


36.7695 36.9409 -0.1714 36.8146 -0.0451


36.6664 36.7715 -0.1051 36.9418 -0.2754


36.7128 36.6669 0.0459 36.7694 -0.0566


36.6768 36.7118 -0.0350 36.6651 0.0117


36.7203 36.6794 0.0409 36.7151 0.0052


36.5329 36.7206 -0.1877 36.6771 -0.1442


36.5752 36.5348 0.0404 36.7195 -0.1443


36.5353 36.5749 -0.0396 36.5336 0.0017


36.4586 36.5362 -0.0776 36.5745 -0.1159


36.3999 36.4612 -0.0613 36.5375 -0.1376


36.4564 36.4004 0.0560 36.4574 -0.0010


36.4737 36.4565 0.0172 36.4006 0.0731


36.2996 36.4745 -0.1749 36.4570 -0.1574


36.7808 36.3020 0.4788 36.4741 0.3067


36.1850 36.7746 -0.5896 36.2988 -0.1138


36.1034 36.1925 -0.0891 36.7809 -0.6775


36.1922 36.1040 0.0882 36.1870 0.0052


36.1406 36.1891 -0.0485 36.0974 0.0432


36.1200 36.1475 -0.0275 36.2007 -0.0807


35.9832 36.1207 -0.1375 36.1388 -0.1556


36.0439 35.9841 0.0598 36.1191 -0.0752


35.9975 36.0438 -0.0463 35.9842 0.0133


36.1257 35.9988 0.1269 36.0438 0.0819


36.0083 36.1253 -0.1170 35.9989 0.0094


36.0888 36.0093 0.0795 36.1245 -0.0357


36.1574 36.0878 0.0696 36.0092 0.1482


36.2884 36.1558 0.1326 36.0872 0.2012


36.2264 36.2877 -0.0613 36.1592 0.0672


36.1248 36.2260 -0.1012 36.2870 -0.1622


35.9455 36.1247 -0.1792 36.2261 -0.2806


35.9279 35.9466 -0.0187 36.1236 -0.1957


36.5937 35.9292 0.6645 35.9466 0.6471


36.3908 36.5877 -0.1969 35.9286 0.4622


36.2670 36.3949 -0.1279 36.5953 -0.3283


36.0877 36.2657 -0.1780 36.3905 -0.3028


36.1851 36.0841 0.1010 36.2598 -0.0747


35.9922 36.1866 -0.1944 36.0925 -0.1003


36.0821 35.9965 0.0856 36.1851 -0.1030


36.4299 36.0824 0.3475 35.9938 0.4361


36.2958 36.4257 -0.1299 36.0804 0.2154


36.4066 36.2988 0.1078 36.4325 -0.0259


36.2568 36.4029 -0.1461 36.2940 -0.0372


36.6274 36.2557 0.3717 36.4033 0.2241


36.8974 36.6239 0.2735 36.2596 0.6378


36.7957 36.8938 -0.0981 36.6254 0.1703


36.7099 36.7967 -0.0868 36.8996 -0.1897


36.5948 36.7060 -0.1112 36.7911 -0.1963


36.3700 36.5939 -0.2239 36.7085 -0.3385


36.1530 36.3740 -0.2210 36.5967 -0.4437


35.8757 36.1569 -0.2812 36.3703 -0.4946


35.5476 35.8811 -0.3335 36.1539 -0.6063


35.5512 35.5547 -0.0035 35.8777 -0.3265


35.5632 35.5546 0.0086 35.5491 0.0141


35.6839 35.5673 0.1166 35.5534 0.1305


35.5171 35.6857 -0.1686 35.5658 -0.0487


35.6051 35.5189 0.0862 35.6828 -0.0777


35.6063 35.6034 0.0029 35.5172 0.0891


35.5798 35.6058 -0.0260 35.6038 -0.0240


35.3188 35.5814 -0.2626 35.6086 -0.2898


35.3988 35.3210 0.0778 35.5781 -0.1793


35.1731 35.3980 -0.2249 35.3193 -0.1462


35.0881 35.1771 -0.0890 35.3990 -0.3109


34.6345 35.0913 -0.4568 35.1758 -0.5413


34.5767 34.6400 -0.0633 35.0862 -0.5095


34.4144 34.5800 -0.1656 34.6374 -0.2230


34.0844 34.4192 -0.3348 34.5766 -0.4922


34.1627 34.0930 0.0697 34.4191 -0.2564


34.4306 34.1631 0.2675 34.0833 0.3473


34.4092 34.4305 -0.0213 34.1645 0.2447


34.5449 34.4123 0.1326 34.4336 0.1113


34.6484 34.5413 0.1071 34.4072 0.2412


34.5112 34.6446 -0.1334 34.5425 -0.0313


34.5677 34.5124 0.0553 34.6497 -0.0820


34.8064 34.5653 0.2411 34.5095 0.2969


34.6319 34.8032 -0.1713 34.5671 0.0648


34.3777 34.6350 -0.2573 34.8082 -0.4305


34.7938 34.3791 0.4147 34.6307 0.1631


34.5766 34.7874 -0.2108 34.3754 0.2012


34.6250 34.5819 0.0431 34.7966 -0.1716


34.6693 34.6251 0.0442 34.5785 0.0908


34.4975 34.6656 -0.1681 34.6196 -0.1221


34.5215 34.5014 0.0201 34.6735 -0.1520


34.9141 34.5206 0.3935 34.4958 0.4183


35.2416 34.9098 0.3318 34.5213 0.7203


35.4565 35.2393 0.2172 34.9161 0.5404


35.3629 35.4520 -0.0891 35.2407 0.1222


35.7166 35.3586 0.3580 35.4525 0.2641


35.4095 35.7083 -0.2988 35.3609 0.0486


35.3037 35.4113 -0.1076 35.7153 -0.4116


35.4404 35.3043 0.1361 35.4112 0.0292


35.3887 35.4367 -0.0480 35.2993 0.0894


35.8786 35.3928 0.4858 35.4452 0.4334


36.0107 35.8733 0.1374 35.3884 0.6223


36.0061 36.0080 -0.0019 35.8769 0.1292


36.1715 36.0045 0.1670 36.0120 0.1595


36.6678 36.1641 0.5037 36.0005 0.6673


36.9008 36.6607 0.2401 36.1721 0.7287


37.4292 36.8973 0.5319 36.6681 0.7611


37.8188 37.4192 0.3996 36.8990 0.9198


38.7040 37.8082 0.8958 37.4245 1.2795


39.7798 38.6890 1.0908 37.8182 1.9616


39.5475 39.7602 -0.2127 38.6989 0.8486


39.7253 39.5423 0.1830 39.7777 -0.0524


39.6674 39.7097 -0.0423 39.5393 0.1281


39.9565 39.6584 0.2981 39.7169 0.2396


40.1859 39.9546 0.2313 39.6736 0.5123


40.7880 40.1817 0.6063 39.9529 0.8351


41.6294 40.7802 0.8492 40.1874 1.4420


41.4411 41.6156 -0.1745 40.7846 0.6565


41.4275 41.4382 -0.0107 41.6282 -0.2007


41.1311 41.4180 -0.2869 41.4354 -0.3043


41.5282 41.1271 0.4011 41.4206 0.1076


41.4105 41.5255 -0.1150 41.1360 0.2745


41.9706 41.4133 0.5573 41.5269 0.4437


42.3833 41.9653 0.4180 41.4138 0.9695


43.0800 42.3750 0.7050 41.9651 1.1149


43.7815 43.0705 0.7110 42.3865 1.3950


43.3331 43.7658 -0.4327 43.0733 0.2598


42.1454 43.3310 -1.1856 43.7795 -1.6341


42.6454 42.1493 0.4961 43.3269 -0.6815


42.3986 42.6348 -0.2362 42.1402 0.2584


42.4861 42.4112 0.0749 42.6523 -0.1662


43.7123 42.4947 1.2176 42.4092 1.3031


44.0305 43.6941 0.3364 42.4763 1.5542


45.3398 44.0287 1.3111 43.7178 1.6220


45.6636 45.3182 0.3454 44.0284 1.6352


45.6461 44.0178


45.3414


45.6499


RUR_JPY


23.1523 22.8447 0.3076 22.8005 0.3518


23.4717 23.1550 0.3167 22.8670 0.6047


23.1400 23.4760 -0.3360 23.1421 -0.0021


23.1335 23.1437 -0.0102 23.4533 -0.3198


22.7315 23.1092 -0.3777 23.1320 -0.4005


23.1071 22.7484 0.3587 23.1393 -0.0322


22.9145 23.0897 -0.1752 22.7209 0.1936


22.9459 22.9454 0.0005 23.1158 -0.1699


22.9203 22.9251 -0.0048 22.9115 0.0088


22.9491 22.9284 0.0207 22.9566 -0.0075


22.8951 22.9470 -0.0519 22.9257 -0.0306


22.9298 22.8977 0.0321 22.9423 -0.0125


23.1758 22.9265 0.2493 22.8989 0.2769


23.1489 23.1761 -0.0272 22.9310 0.2179


23.0610 23.1564 -0.0954 23.1751 -0.1141


23.0273 23.0515 -0.0242 23.1406 -0.1133


23.0516 23.0253 0.0263 23.0626 -0.0110


23.0282 23.0536 -0.0254 23.0264 0.0018


22.7383 23.0308 -0.2925 23.0467 -0.3084


22.7375 22.7401 -0.0026 23.0292 -0.2917


22.7879 22.7285 0.0594 22.7417 0.0462


22.7823 22.7986 -0.0163 22.7477 0.0346


22.8210 22.7847 0.0363 22.7880 0.0330


22.6814 22.8184 -0.1370 22.7847 -0.1033


22.7678 22.6845 0.0833 22.8288 -0.0610


22.6464 22.7605 -0.1141 22.6796 -0.0332


22.6263 22.6562 -0.0299 22.7711 -0.1448


22.6802 22.6193 0.0609 22.6434 0.0368


22.9139 22.6834 0.2305 22.6308 0.2831


23.3745 22.9139 0.4606 22.6837 0.6908


23.2730 23.3749 -0.1019 22.9113 0.3617


23.2498 23.2808 -0.0310 23.3702 -0.1204


23.0587 23.2282 -0.1695 23.2574 -0.1987


23.2721 23.0633 0.2088 23.2483 0.0238


23.3771 23.2641 0.1130 23.0480 0.3291


23.1426 23.3906 -0.2480 23.2675 -0.1249


23.6286 23.1411 0.4875 23.3733 0.2553


23.5431 23.6102 -0.0671 23.1417 0.4014


24.1924 23.5697 0.6227 23.6387 0.5537


24.1211 24.1631 -0.0420 23.5206 0.6005


23.7529 24.1466 -0.3937 24.1945 -0.4416


23.9451 23.7298 0.2153 24.1003 -0.1552


23.8632 23.9317 -0.0685 23.7425 0.1207


23.8470 23.8853 -0.0383 23.9519 -0.1049


23.6113 23.8376 -0.2263 23.8411 -0.2298


23.6370 23.6164 0.0206 23.8556 -0.2186


23.6972 23.6294 0.0678 23.6194 0.0778


23.5698 23.7066 -0.1368 23.6407 -0.0709


23.5569 23.5729 -0.0160 23.6990 -0.1421


23.5752 23.5503 0.0249 23.5710 0.0042


23.1837 23.5794 -0.3957 23.5669 -0.3832


22.9810 23.1898 -0.2088 23.5744 -0.5934


23.0069 22.9694 0.0375 23.1830 -0.1761


23.0339 23.0149 0.0190 22.9974 0.0365


22.9927 23.0431 -0.0504 23.0143 -0.0216


22.9807 22.9935 -0.0128 23.0375 -0.0568


23.2674 22.9783 0.2891 23.0045 0.2629


23.0266 23.2651 -0.2385 22.9871 0.0395


23.2995 23.0399 0.2596 23.2669 0.0326


23.1905 23.2768 -0.0863 23.0169 0.1736


23.0630 23.2100 -0.1470 23.3083 -0.2453


22.8941 23.0507 -0.1566 23.1788 -0.2847


22.8085 22.8955 -0.0870 23.0615 -0.2530


22.6046 22.8089 -0.2043 22.9016 -0.2970


22.7342 22.6110 0.1232 22.8083 -0.0741


22.6473 22.7293 -0.0820 22.6120 0.0353


22.5963 22.6609 -0.0646 22.7464 -0.1501


22.6364 22.5893 0.0471 22.6488 -0.0124


22.5678 22.6373 -0.0695 22.6036 -0.0358


22.6787 22.5722 0.1065 22.6420 0.0367


22.7839 22.6735 0.1104 22.5642 0.2197


22.5822 22.7890 -0.2068 22.6838 -0.1016


22.6429 22.5841 0.0588 22.7812 -0.1383


22.6514 22.6309 0.0205 22.5783 0.0731


22.8789 22.6610 0.2179 22.6499 0.2290


23.0603 22.8745 0.1858 22.6455 0.4148


22.8581 23.0654 -0.2073 22.8781 -0.0200


22.7423 22.8579 -0.1156 23.0574 -0.3151


22.7234 22.7293 -0.0059 22.8501 -0.1267


22.7885 22.7272 0.0613 22.7458 0.0427


22.7938 22.7920 0.0018 22.7194 0.0744


22.8110 22.7969 0.0141 22.7869 0.0241


22.9262 22.8085 0.1177 22.7984 0.1278


22.8780 22.9251 -0.0471 22.8140 0.0640


22.6821 22.8818 -0.1997 22.9254 -0.2433


22.7982 22.6783 0.1199 22.8724 -0.0742


22.7351 22.7917 -0.0566 22.6832 0.0519


22.6776 22.7476 -0.0700 22.8029 -0.1253


22.5347 22.6720 -0.1373 22.7291 -0.1944


22.5265 22.5367 -0.0102 22.6831 -0.1566


22.5200 22.5241 -0.0041 22.5405 -0.0205


22.7351 22.5255 0.2096 22.5290 0.2061


22.6275 22.7329 -0.1054 22.5228 0.1047


22.5574 22.6364 -0.0790 22.7385 -0.1811


22.3131 22.5462 -0.2331 22.6243 -0.3112


22.3584 22.3174 0.0410 22.5609 -0.2025


22.1117 22.3524 -0.2407 22.3132 -0.2015


21.9781 22.1259 -0.1478 22.3621 -0.3840


21.9652 21.9700 -0.0048 22.1142 -0.1490


21.9114 21.9703 -0.0589 21.9909 -0.0795


21.8960 21.9173 -0.0213 21.9758 -0.0798


21.9250 21.8951 0.0299 21.9137 0.0113


21.9008 21.9262 -0.0254 21.9059 -0.0051


21.9490 21.9028 0.0462 21.9293 0.0197


21.8583 21.9465 -0.0882 21.9008 -0.0425


21.8907 21.8619 0.0288 21.9514 -0.0607


21.7880 21.8854 -0.0974 21.8568 -0.0688


21.9597 21.7938 0.1659 21.8931 0.0666


22.1090 21.9530 0.1560 21.7871 0.3219


22.1865 22.1170 0.0695 21.9628 0.2237


22.0664 22.1842 -0.1178 22.1055 -0.0391


22.0257 22.0643 -0.0386 22.1817 -0.1560


22.0175 22.0188 -0.0013 22.0643 -0.0468


22.0142 22.0207 -0.0065 22.0233 -0.0091


21.7740 22.0158 -0.2418 22.0142 -0.2402


21.8388 21.7772 0.0616 22.0139 -0.1751


21.8009 21.8299 -0.0290 21.7778 0.0231


21.7805 21.8129 -0.0324 21.8479 -0.0674


21.9137 21.7774 0.1363 21.7994 0.1143


22.2536 21.9127 0.3409 21.7846 0.4690


22.0466 22.2549 -0.2083 21.9200 0.1266


21.8129 22.0556 -0.2427 22.2480 -0.4351


21.7667 21.7951 -0.0284 22.0365 -0.2698


21.7741 21.7667 0.0074 21.8182 -0.0441


21.6546 21.7820 -0.1274 21.7672 -0.1126


21.6826 21.6586 0.0240 21.7694 -0.0868


21.8987 21.6780 0.2207 21.6626 0.2361


21.6999 21.9017 -0.2018 21.6932 0.0067


21.6952 21.7088 -0.0136 21.8991 -0.2039


21.7220 21.6800 0.0420 21.6940 0.0280


21.6809 21.7288 -0.0479 21.7043 -0.0234


21.8536 21.6829 0.1707 21.7192 0.1344


21.7135 21.8491 -0.1356 21.6767 0.0368


21.7306 21.7227 0.0079 21.8602 -0.1296


21.7001 21.7189 -0.0188 21.7077 -0.0076


21.5347 21.7062 -0.1715 21.7347 -0.2000


21.7213 21.5353 0.1860 21.6988 0.0225


22.3503 21.7145 0.6358 21.5328 0.8175


22.1375 22.3556 -0.2181 21.7303 0.4072


22.2133 22.1547 0.0586 22.3443 -0.1310


22.2000 22.1802 0.0198 22.1193 0.0807


22.1959 22.2098 -0.0139 22.2216 -0.0257


22.2089 22.1930 0.0159 22.1855 0.0234


22.3387 22.2090 0.1297 22.1822 0.1565


22.2055 22.3378 -0.1323 22.2138 -0.0083


22.3327 22.2111 0.1216 22.3364 -0.0037


22.2445 22.3215 -0.0770 22.2016 0.0429


22.2404 22.2549 -0.0145 22.3369 -0.0965


22.3905 22.2327 0.1578 22.2386 0.1519


22.5251 22.3917 0.1334 22.2413 0.2838


22.5495 22.5289 0.0206 22.3928 0.1567


22.5518 22.5480 0.0038 22.5179 0.0339


22.8039 22.5471 0.2568 22.5472 0.2567


22.8440 22.7997 0.0443 22.5491 0.2949


22.8138 22.8520 -0.0382 22.7983 0.0155


23.2884 22.8057 0.4827 22.8319 0.4565


23.8456 23.2796 0.5660 22.8115 1.0341


23.2653 23.8562 -0.5909 23.2863 -0.0210


23.7359 23.2730 0.4629 23.8229 -0.0870


23.8394 23.6877 0.1517 23.2456 0.5938


24.0390 23.8758 0.1632 23.7494 0.2896


23.9227 24.0229 -0.1002 23.8057 0.1170


24.0392 23.9260 0.1132 24.0271 0.0121


24.1458 24.0258 0.1200 23.9257 0.2201


24.1932 24.1526 0.0406 24.0291 0.1641


23.7148 24.1920 -0.4772 24.1370 -0.4222


23.7680 23.7178 0.0502 24.1856 -0.4176


23.6412 23.7489 -0.1077 23.7148 -0.0736


23.5967 23.6631 -0.0664 23.7794 -0.1827


23.5723 23.5918 -0.0195 23.6368 -0.0645


23.6716 23.5759 0.0957 23.6052 0.0664


23.7189 23.6715 0.0474 23.5859 0.1330


24.0997 23.7228 0.3769 23.6726 0.4271


24.5946 24.0929 0.5017 23.7195 0.8751


25.2590 24.5996 0.6594 24.0995 1.1595


25.4215 25.2530 0.1685 24.5815 0.8400


26.0587 25.4222 0.6365 25.2390 0.8197


25.8549 26.0297 -0.1748 25.3932 0.4617


26.5626 25.8715 0.6911 26.0366 0.5260


25.9180 26.5219 -0.6039 25.8128 0.1052


25.4944 25.9567 -0.4623 26.5490 -1.0546


25.7561 25.4503 0.3058 25.8832 -0.1271


26.2157 25.7622 0.4535 25.5003 0.7154


25.9854 26.2369 -0.2515 25.7680 0.2174


25.5189 25.9946 -0.4757 26.1966 -0.6777


26.1437 25.4982 0.6455 25.9919 0.1518


27.0949 26.1282 0.9667 25.5339 1.5610


27.6867 27.1234 0.5633 26.1471 1.5396


28.4523 27.6887 0.7636 27.0656 1.3867


29.5029 28.4250 1.0779 27.6661 1.8368


28.8115 29.4914 -0.6799 28.4364 0.3751


27.8928 28.8248 -0.9320 29.4492 -1.5564


27.9722 27.8378 0.1344 28.7438 -0.7716


27.2098 27.9647 -0.7549 27.8895 -0.6797


27.3991 27.2589 0.1402 27.9709 -0.5718


27.7549 27.3694 0.3855 27.1890 0.5659


27.2280 27.7866 -0.5586 27.4531 -0.2251


27.9749 27.2407 0.7342 27.7730 0.2019


28.0640 27.9336 0.1304 27.2229 0.8411


28.7574 28.1083 0.6491 28.0096 0.7478


28.2074 28.7240 -0.5166 28.0310 0.1764


28.2438 28.2328 0.0110 28.7503 -0.5065


28.3721 28.1973 0.1748 28.1895 0.1826


28.3514 28.3919 -0.0405 28.2402 0.1112


28.9328 28.3557 0.5771 28.3612 0.5716


28.9594 28.9200 0.0394 28.3353 0.6241


29.0392 28.9795 0.0597 28.9474 0.0918


28.3951 29.0165 -0.6214 28.9378 -0.5427


28.8022 28.4034 0.3988 29.0344 -0.2322


28.8345 28.7721 0.0624 28.3861 0.4484


28.9675 28.8730 0.0945 28.8077 0.1598


29.5156 28.9524 0.5632 28.8204 0.6952


30.2278 29.5114 0.7164 28.9714 1.2564


30.0163 30.2327 -0.2164 29.5233 0.4930


30.0846 30.0216 0.0630 30.1985 -0.1139


30.4830 30.0477 0.4353 29.9897 0.4933


29.8649 30.4873 -0.6224 30.0806 -0.2157


30.3308 29.8838 0.4470 30.4582 -0.1274


30.0762 30.2883 -0.2121 29.8354 0.2408


30.2365 30.1185 0.1180 30.3554 -0.1189


30.8580 30.2089 0.6491 30.0552 0.8028


30.6614 30.8650 -0.2036 30.2410 0.4204


30.5844 30.6793 -0.0949 30.8639 -0.2795


31.1065 30.5541 0.5524 30.6314 0.4751


31.4369 31.1040 0.3329 30.5948 0.8421


31.3143 31.4542 -0.1399 31.0978 0.2165


31.4791 31.3069 0.1722 31.4058 0.0733


31.4058 31.4590 -0.0532 31.3088 0.0970


31.6801 31.4165 0.2636 31.4785 0.2016


31.7325 31.6681 0.0644 31.3829 0.3496


32.0790 31.7438 0.3352 31.6750 0.4040


32.3305 32.0660 0.2645 31.7249 0.6056


32.5779 32.3367 0.2412 32.0734 0.5045


32.5723 32.5699 0.0024 32.3177 0.2546


33.7905 32.5703 1.2202 32.5613 1.2292


34.3755 33.7654 0.6101 32.5583 1.8172


35.1092 34.4098 0.6994 33.7782 1.3310


35.1681 35.0729 0.0952 34.3259 0.8422


36.2071 35.1673 1.0398 35.0818 1.1253


36.1219 36.1668 -0.0449 35.1289 0.9930


36.2668 36.1547 0.1121 36.1652 0.1016


36.8864 36.2215 0.6649 36.0635 0.8229


36.3872 36.8851 -0.4979 36.2481 0.1391


36.8653 36.4090 0.4563 36.8680 -0.0027


37.2193 36.8180 0.4013 36.3402 0.8791


37.0266 37.2496 -0.2230 36.8814 0.1452


36.7194 37.0234 -0.3040 37.1931 -0.4737


37.2455 36.7018 0.5437 37.0038 0.2417


38.4723 37.2354 1.2369 36.7328 1.7395


39.6802 38.4878 1.1924 37.2391 2.4411


39.6877 38.4484


38.4399


39.6406


Приложение 2


Текст программы


unitUnit1;


interface


uses


Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,


Dialogs, StdCtrls, Grids;


type


TForm1 = class(TForm)


Button1: TButton;


Button2: TButton;


Button3: TButton;


Button4: TButton;


Button5: TButton;


Button6: TButton;


Button7: TButton;


Button8: TButton;


Button9: TButton;


Button10: TButton;


Button11: TButton;


OpenData: TOpenDialog;


OpenNNS: TOpenDialog;


SaveData: TSaveDialog;


SaveNNS: TSaveDialog;


StringGrid1: TStringGrid;


Label1: TLabel;


Label2: TLabel;


Label3: TLabel;


Label4: TLabel;


Label5: TLabel;


Label6: TLabel;


Edit1: TEdit;


Label7: TLabel;


Edit2: TEdit;


Label8: TLabel;


Label9: TLabel;


Edit3: TEdit;


Edit4: TEdit;


Label10: TLabel;


Label11: TLabel;


Label12: TLabel;


Label13: TLabel;


Edit5: TEdit;


Edit6: TEdit;


Edit7: TEdit;


Edit8: TEdit;


procedure Button1Click(Sender: TObject);


procedure Button2Click(Sender: TObject);


procedure Button7Click(Sender: TObject);


procedure Button11Click(Sender: TObject);


procedure Button3Click(Sender: TObject);


procedure Button5Click(Sender: TObject);


procedure Button6Click(Sender: TObject);


procedure FormCreate(Sender: TObject);


procedure FormResize(Sender: TObject);


procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);


procedure StringGrid1GetEditText(Sender: TObject; ACol, ARow: Integer;


var Value: String);


procedure Button4Click(Sender: TObject);


procedure Button8Click(Sender: TObject);


procedure Button9Click(Sender: TObject);


private


{ Private declarations }


public


{ Public declarations }


end;


const nns=54321;


mM=20;


mN=20;


u=0.8;


v=1.25;


var


Form1: TForm1;


s1: string;


i,j,k,n,m,OnSettings:integer;//m - количество правил


a,ap,ap3: array[1..2000]of real;


f,f1,f2,f3,f4:TextFile;


t,Nst,Nac,Neps,Nrp:integer;


w3,w: array[1..20]of real;


sign:array[1..20] of integer;


c:array[1..20]of real;


h:array[1..250,1..mM]of real;


myu0,myu03:array[1..mM]of real;//пересечение правил


myu,myu3,cen,cen3,b,b3:array[1..mM,1..mN]of real; // нелинейные параметры


sigma,sigma3:array[1..mM,1..mN]of real; // нелинейные параметры


// b:array[1..mM,1..mN]of real; // нелинейные параметры


gc,gs,gb:real;//шаг градиентного спуска


p,p3:array[1..mM,0..mN]of real; // Линейные параметры


input,output:array[1..20]of real;


eps,skoS,sko3S,skoP,sko3P,ms,mp,ms3,mp3,sappS,sapp3S,sappP,sapp3p:real;


fname:string;


nnit:longint;


implementation


uses Unit2, Unit3, Unit4, matrices;


{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);


//загрузить данные


var i:integer;


s:string;


begin


for i:=1 to n+10 do


begin


StringGrid1.cells[0,i]:='';


StringGrid1.cells[1,i]:='';


StringGrid1.cells[2,i]:='';


StringGrid1.cells[3,i]:='';


StringGrid1.cells[4,i]:='';


end;


OpenData.InitialDir:='D:CW';


OpenData.DefaultExt:='txt';


if OpenData.Execute then


begin


s:=OpenData.FileName;


StringGrid1.RowCount:=1;


for i:=1 to n do


begin


StringGrid1.cells[0,i]:='';


end;


fname:=s;


AssignFile(f1,s);


reset(f1);


readln(f1,n);


nst:=trunc(n/10);


StringGrid1.RowCount:=0;


for i:=1 to n do


begin


readln(f1,s);


{ str(a[i]:8:4,s);}


for j:=1 to length(s) do


if(s[j]='.') or(s[j]=',')then s[j]:=decimalseparator;


StringGrid1.Cells[0,i]:=s;


StringGrid1.RowCount:=StringGrid1.RowCount+1;


a[i]:=strToFloat(s);


end;


StringGrid1.RowCount:=StringGrid1.RowCount+10;


StringGrid1.LeftCol:=0;


StringGrid1.TopRow:=1;


if n-10>0 then


StringGrid1.TopRow:=n-10;


CloseFile(f1);


end;


end;//Загрузить данные (Конец)


procedure TForm1.Button2Click(Sender: TObject);//Загрузить нейросеть


var nn:integer;


begin


OpenNNS.InitialDir:='D:CW';


OpenNNS.DefaultExt:='nns';


if OpenNNS.Execute then


begin


s:=OpenNNS.FileName;


AssignFile(f1,s);


reset(f1);


readln(f1,nn);


if nn<>nns then


begin


messagedlg('Ошибка ввода начальных данных!',mtError,[mbOk],0);


end


else


begin


readln(f1,nac);


readln(f1,m);


for i:=1 to m do


for j:=1 to nac do


readln(f1,cen[i,j]);


for i:=1 to m do


for j:=1 to nac do


readln(f1,sigma[i,j]);


for i:=1 to m do


for j:=1 to nac do


readln(f1,b[i,j]);


for i:=1 to m do


for j:=0 to nac do


if j<=nac then


readln(f1,p[i,j]);


for i:=1 to m do


for j:=1 to nac do


readln(f1,cen3[i,j]);


for i:=1 to m do


for j:=1 to nac do


readln(f1,sigma3[i,j]);


for i:=1 to m do


for j:=1 to nac do


readln(f1,b3[i,j]);


for i:=1 to m do


for j:=0 to nac do


if j<=nac then


readln(f1,p3[i,j]);


end;


CloseFile(f1);


end;


end;//Загрузить нейросеть (конец)


procedure TForm1.Button7Click(Sender: TObject);


//Сохранить данные


var i:integer;


begin


SaveData.InitialDir:='D:CW';


SaveData.DefaultExt:='txt'; i:=1;


while (stringGrid1.cells[0,i]<>'')and(i<10000) do


begin


i:=i+1;


end;


n:=i-1;


if SaveData.Execute then


begin


fname:=SaveData.FileName;


AssignFile(f3,SaveData.FileName);


Rewrite(f3);


writeln(f3,n);


for i:=1 to n do


begin


writeln(f3,stringGrid1.cells[0,i]);


end;


CloseFile(f3);


end;


end; //Сохранить данные (конец)


procedure TForm1.Button11Click(Sender: TObject);


begin // Закрыть форму 1


AssignFile(f3,'1.txt');


Rewrite(f3);


writeln(f3,skoS:10:8);


writeln(f3,sko3S:10:8);


writeln(f3,skoP:10:8);


writeln(f3,sko3P:10:8);


writeln(f3,ms:10:8);


writeln(f3,mp:10:8);


writeln(f3,ms3:10:8);


writeln(f3,mp3:10:8);


for i:=nst to n+3 do


begin


write(f3,stringGrid1.cells[0,i]);


write(f3,stringGrid1.cells[1,i]);


write(f3,stringGrid1.cells[2,i]);


write(f3,stringGrid1.cells[3,i]);


writeln(f3,stringGrid1.cells[4,i]);


end;


CloseFile(f3);


Form1.close;


end;


procedure TForm1.Button3Click(Sender: TObject);


begin //Открыть форму "Настройки"


form2.Show;


end; //Открыть форму "Настройки" (конец)


procedure TForm1.Button5Click(Sender: TObject);


begin


if (stringGrid1.cells[0,1]<>'')and(stringGrid1.cells[0,3]<>'') then


form3.show; // Открыть форму график КВ


end;


procedure TForm1.Button6Click(Sender: TObject);


begin


if (stringGrid1.cells[0,1]<>'')and(stringGrid1.cells[0,3]<>'') then


form4.show; // Открыть форму график пргноза на 3 шага вперед


end;


procedure TForm1.FormCreate(Sender: TObject);


// Создание формы 1


var a:integer;


begin


a:=6;


edit1.Text:='';


edit2.Text:='';


edit3.Text:='';


edit4.Text:='';


edit5.Text:='';


edit6.Text:='';


edit7.Text:='';


edit8.Text:='';


Nst:=0; Nac:=4;Neps:=10;Nrp:=80;m:=5;


end; //Конец создания формы 1


procedure TForm1.FormResize(Sender: TObject);


//Изменение размеров формы 1


var a:integer;


begin


if Form1.Width<500 then


Form1.Width:=500;


if Form1.Height<550 then


Form1.Height:=550;


StringGrid1.Width:=Form1.Width-Button1.Width-80;


StringGrid1.Height:=Form1.Height-280;


a:=6;


StringGrid1.Top:=Form1.ClientHeight-StringGrid1.Height-216;


StringGrid1.Left:=Form1.ClientWidth-StringGrid1.Width-24;


StringGrid1.ColWidths[0]:=trunc(StringGrid1.Width*0.2)-a;


StringGrid1.ColWidths[1]:=trunc(StringGrid1.Width*0.2)-a;


StringGrid1.ColWidths[2]:=trunc(StringGrid1.Width*0.2)-a;


StringGrid1.ColWidths[3]:=trunc(StringGrid1.Width*0.2)-a;


StringGrid1.ColWidths[4]:=trunc(StringGrid1.Width*0.2)-a;


end; // Конец изменения формы 1


procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);


begin


if not (Key in [#8,'0'..'9',decimalSeparator])then


Key:=#0


end;


procedure TForm1.StringGrid1GetEditText(Sender: TObject; ACol,


ARow: Integer; var Value: String);


var i:integer;


begin


i:=1;


while (stringgrid1.cells[0,i]<>'')do


i:=i+1;


StringGrid1.RowCount:=i+10;


n:=i;


end;


function adjust():boolean;


var wrong,q,r:integer;


//f:boolean;


prognoz,realynoe:real;


begin


wrong:=0;


for q:=nac+2 to nst-1 do


begin


eps:=Neps*a[q]/1000;


realynoe:=a[q+1]-a[q];


prognoz:=0;


for r:=1 to nac do


prognoz:=prognoz+(a[q-nac+r-1]-a[q-nac+r-2])*w[r];


if abs(prognoz-realynoe)<eps then


wrong:=wrong+1;


end;


if wrong/(nst-(nac+2))<(100-Nrp)/100 then


adjust:=true


else


adjust:=false;


end;//adjust


procedure ns(i,j:integer;var a,b,c:real);


const eps=0.01;


begin a:=eps*i/j;b:=eps*i/i;c:=i/j;


end;


procedure adjust_csb3(num:integer;vihod:real);


const eps=0.00001;


var lxj,mxj,mxjs,sum:real;


r,k,j,l,bb,d,delta:integer;


p1,p2,p5,p4:real; // Произведения при вычислении dw/d(cen)(sigma)(b)


s1,sc,ss,sb,dec,deb,des,dwc,dwb,dws:real; // dw/d(cen)(sigma)(b)


begin


for j:=1 to nac do


begin


for k:=1 to m do


begin


lxj:=1;


for l:=1 to nac do


lxj:=lxj*myu3[k,j];


mxj:=1;


for bb:=1 to m do


begin


mxjs:=0;


for d:=1 to nac do


mxjs:=mxjs+myu3[bb,d];


mxj:=mxj*mxjs;


end;


if mxj<eps then


mxj:=eps;


if lxj<eps then


lxj:=eps;


// Изменняем cen


sc:=0;


ss:=0;


sb:=0;


for r:=1 to m do


begin


//dw/d(cen)


p1:=1;


for i:=1 to m do


if i<>j then


p1:=p1*(2*b3[k,j]/sigma3[k,j])*


exp( Ln( abs( (a[j+num+3]-cen3[k,j])/sigma3[k,j]*(2*b3[k,j]-1)) ))*


myu3[k,i]/sqr(1+exp(Ln(abs((a[j+num+3]-cen3[k,j])/sigma3[k,j]))*2*b3[k,j]) );


if r=k then delta:=0 else delta:=1;


dwc:=(delta*mxj-lxj)/sqr(mxj)*p1;


s1:=p3[r,0];


for l:=1 to nac do


s1:=s1+p3[r,l]*a[num+l+3];


sc:=sc+s1*dwc;


//dw/d(sigma)


p2:=1;


for i:=1 to m do


if i<>j then


p2:=p2*(2*b3[k,j]/sigma3[k,j])*


exp( Ln( abs( (a[j+num+3]-cen3[k,j])/sigma3[k,j]) ))*


myu3[k,i]/sqr(1+exp(Ln(abs((a[j+num+3]-cen3[k,j])/sigma3[k,j]))*2*b3[k,j]) );


dws:=(delta*mxj-lxj)/sqr(mxj);


ss:=ss+s1*dws;


//dw/d(b)


p5:=1;


for i:=1 to m do


if i<>j then


p5:=p5*(-2*exp( Ln( abs( (a[j+num+3]-cen3[k,j])/sigma3[k,j]) )*2*b3[k,j]))*


Ln( abs( (a[j+num+3]-cen3[k,j])/sigma3[k,j]) )*


myu3[k,i]/sqr(1+exp(Ln(abs((a[j+num+3]-cen3[k,j])/sigma3[k,j]))*2*b3[k,j]) );


end;ns(i,j,sc,ss,sb);


dec:=(vihod-a[num+4])*sc;


des:=(vihod-a[num+4])*ss;


deb:=(vihod-a[num+4])*sb;


cen3[k,j]:=cen3[k,j]-gc*dec;


sigma3[k,j]:=sigma3[k,j]-gs*des;


b3[k,j]:=b3[k,j]-gb*deb;


end;//{k}


end;//{j}


end;//adjust_csb3


//adjust_csb


procedure adjust_csb(num:integer;vihod:real);


const eps=0.00001;


var lxj,mxj,mxjs,sum:real;


r,k,j,l,bb,d,delta:integer;


p1,p2,p3,p4:real; // Произведения при вычислении dw/d(cen)(sigma)(b)


s1,sc,ss,sb,dec,deb,des,dwc,dwb,dws:real; // dw/d(cen)(sigma)(b)


begin


for j:=1 to nac do


begin


for k:=1 to m do


begin


lxj:=1;


for l:=1 to nac do


lxj:=lxj*myu[k,j];


mxj:=1;


for bb:=1 to m do


begin


mxjs:=0;


for d:=1 to nac do


mxjs:=mxjs+myu[bb,d];


mxj:=mxj*mxjs;


end;


if mxj<eps then


mxj:=eps;


if lxj<eps then


lxj:=eps;


// Изменняем cen


sc:=0;


ss:=0;


sb:=0;


for r:=1 to m do


begin


//dw/d(cen)


p1:=1;


for i:=1 to m do


if i<>j then


p1:=p1*(2*b[k,j]/sigma[k,j])*


exp( Ln( abs( (a[j+num]-cen[k,j])/sigma[k,j]*(2*b[k,j]-1)) ))*


myu[k,i]/sqr(1+exp(Ln(abs((a[j+num]-cen[k,j])/sigma[k,j]))*2*b[k,j]) );


if r=k then delta:=0 else delta:=1;


dwc:=(delta*mxj-lxj)/sqr(mxj)*p1;


s1:=p[r,0];


for l:=1 to nac do


s1:=s1+p[r,l]*a[num+l];


sc:=sc+s1*dwc;


//dw/d(sigma)


p2:=1;


for i:=1 to m do


if i<>j then


p2:=p2*(2*b[k,j]/sigma[k,j])*


exp( Ln( abs( (a[j+num]-cen[k,j])/sigma[k,j]) ))*


myu[k,i]/sqr(1+exp(Ln(abs((a[j+num]-cen[k,j])/sigma[k,j]))*2*b[k,j]) );


dws:=(delta*mxj-lxj)/sqr(mxj);


ss:=ss+s1*dws;


//dw/d(b)


p3:=1;


for i:=1 to m do


if i<>j then


p3:=p3*(-2*exp( Ln( abs( (a[j+num]-cen[k,j])/sigma[k,j]) )*2*b[k,j]))*


Ln( abs( (a[j+num]-cen[k,j])/sigma[k,j]) )*


myu[k,i]/sqr(1+exp(Ln(abs((a[j+num]-cen[k,j])/sigma[k,j]))*2*b[k,j]) );


end;ns(k,j,sc,ss,sb);


dec:=(vihod-a[num+1])*sc;


des:=(vihod-a[num+1])*ss;


deb:=(vihod-a[num+1])*sb;


cen[k,j]:=cen[k,j]-gc*dec;


sigma[k,j]:=sigma[k,j]-gs*des;


b[k,j]:=b[k,j]-gb*deb;


end;//{k}


end;//{j}


end;//adjust_csb


procedure a_p;


var j:integer;norm:real;


begin


for j:=1 to m do norm:=norm+j;


norm:=1/norm;


for i:=1 to m do


for j:=1 to (nac+1) do


begin


p[i,j]:=j*norm;


p3[i,j]:=j*(norm+0.0001*i);


end;


end;


// adjust_p();


procedure adjust_p();


var l_s,l_d,i,j,k,l,r,k1,k2,k3:integer;


dob,sum,dt,w,norm:real;


hth,h,h3,hp:array[1..250,1..100]of real;


dl:array[1..250]of real;


pp,pp3:array[1..200]of real;


htn:matrix;


begin


l:=nst;


norm:=0; for j:=1 to m do norm:=norm+j;


norm:=1/norm;


setsize(htn,l,(nac+1)*m);


// Формируем матрицу h


for r:=1 to l do


begin


for i:=1 to m do


begin


h[r,(i-1)*(nac+1)+1]:=i*norm;


w:=i*norm;


for j:=1 to nac do


begin


dob:=1;sum:=0;


for l_s:=1 to m do


begin


for l_d:=1 to nac do


dob:=dob*1/(1+exp(Ln(abs((a[l_d]-cen[l_s,l_d])/sigma[l_s,l_d]))*2*b[l_s,l_d]) );


sum:=sum+dob;


end;


h[r,(i-1)*(nac+1)+j+1]:=dob/sum;


end;


end;


end;


for r:=1 to l do


for j:=1 to nac do


for i:=1 to m do


h[r,(j-1)*(nac+1)+i+1]:=h[r,(j-1)*(nac+1)+i+1]*a[r+(j-1)*nac+i];


for i:=1 to nst do


dl[i]:=a[nac+i];


for k1:=1 to m*(nac+1) do


for k2:=1 to m*(nac+1)do


begin


hth[k1,k2]:=0;


for k3:=1 to l do


hth[k1,k2]:=hth[k1,k2]+h[k1,k3]*h[k3,k1];


end;


setsize(htn,m*(nac+1),m*(nac+1));


for i:=1 to m*(nac+1) do


for j:=1 to m*(nac+1) do


htn.data[i-1,j-1]:=hth[i,j];


invers(htn);


for i:=1 to m*(nac+1) do


for j:=1 to m*(nac+1) do


hth[i,j]:=htn.data[i-1,j-1];


for i:=1 to m*(nac+1)do


for j:=1 to l do


begin


hp[i,j]:=0;


for r:=1 to m do


hp[i,j]:=hp[i,j]+hth[i,r]*h[r,j];


end;


for i:=1 to m*(nac+1) do


pp[i]:=0;


for i:=1 to m*(nac+1) do


begin


for j:=1 to l do


pp[i]:=pp[i]+hp[i,j]*dl[j];


end;


for i:=1 to m do


for j:=0 to (nac)do


p[i,j]:=pp[j+1+(i-1)*m];


end;//adjust_p();


// adjust_p3();


procedure adjust_p3();


var l_d,l_s,i,j,k,l,r,k1,k2,k3:integer;


dob,sum,dt,w,norm:real;


hth,h,h3,hp:array[1..250,1..100]of real;


dl:array[1..250]of real;


pp:array[1..200]of real;


htn:matrix;


begin


l:=nst;


norm:=0; for j:=1 to m do norm:=norm+j;


norm:=1/norm;


setsize(htn,l,(nac+1)*m);


// Формируем матрицу h


for r:=1 to l do


begin


for i:=1 to m do


begin


h[r,(i-1)*(nac+1)+1]:=i*norm;


w:=i*norm;


for j:=1 to nac do


begin


dob:=1;sum:=0;


for l_s:=1 to m do


begin


for l_d:=1 to nac do


dob:=dob*1/(1+exp(Ln(abs((a[l_d] cen[l_s,l_d])/sigma[l_s,l_d]))*2*b[l_s,l_d]) );


sum:=sum+dob;


end;


h[r,(i-1)*(nac+1)+j+1]:=dob/sum;


end;


end;


end;


for r:=1 to l do


for j:=1 to nac do


for i:=1 to m do


h[r,(j-1)*(nac+1)+i+1]:=h[r,(j-1)*(nac+1)+i+1]*a[r+(j-1)*nac+i];


for i:=1 to nst do


dl[i]:=a[nac+i+3];


for k1:=1 to m*(nac+1) do


for k2:=1 to m*(nac+1)do


begin


hth[k1,k2]:=0;


for k3:=1 to l do


hth[k1,k2]:=hth[k1,k2]+h[k1,k3]*h[k3,k1];


end;


setsize(htn,m*(nac+1),m*(nac+1));


for i:=1 to m*(nac+1) do


for j:=1 to m*(nac+1) do


htn.data[i-1,j-1]:=hth[i,j];


invers(htn);


for i:=1 to m*(nac+1) do


for j:=1 to m*(nac+1) do


hth[i,j]:=htn.data[i-1,j-1];


for i:=1 to m*(nac+1)do


for j:=1 to l do


begin


hp[i,j]:=0;


for r:=1 to m do


hp[i,j]:=hp[i,j]+hth[i,r]*h[r,j];


end;


for i:=1 to m*(nac+1) do


pp[i]:=0;


for i:=1 to m*(nac+1) do


begin


for j:=1 to l do


pp[i]:=pp[i]+hp[i,j]*dl[j];


end;


for i:=1 to m do


for j:=0 to (nac)do


p3[i,j]:=pp[j+1+(i-1)*m];


end;//adjust_p3();


// обучить нейросеть (START)


procedure TForm1.Button4Click(Sender: TObject);


const maxNit=1000;//Максимальное количество итераций


eps=0.000000001;


var l,nc:integer;//l - номер центра; nc - количество центров;


num,q:integer;//Количество итераций


nIt:longint;


sum,gama,pz,pz1,d,yP,x,sk:real; //y прогнозированное


tsk_w,tsk_w3,tsk,tsk3:array[1..mM]of real;//отвечает за третий слой


sm,fprov,f1,f2,s_sign,s_w,s_sign3,s_w3:real;// взвешенная сумма сигналов и весов


begin// обучить нейросеть


if stringGrid1.cells[0,1]<>''then


begin


//Проверка на введные вручную значения


i:=1;


while (stringGrid1.cells[0,i]<>'')and(i<10000) do


begin


i:=i+1;


s:=stringGrid1.cells[0,i];


end;


n:=i-1;


// Проверка на знак десятичного разделителя -


// меняем "." или "," на decimalSeparator


while stringGrid1.cells[0,n]='' do


n:=n-1;


n:=i-1;


s:='';


for q:=1 to n do


begin


s:=StringGrid1.Cells[0,q];


for k:=1 to Length(s) do


if (s[k]='.')or(s[k]=',') then s[k]:=decimalSeparator;


a[q]:=strToFloat(s);


end;


//---------------------------------------


// нелинейные параметры


gc:=u;


gs:=u;


gb:=u;


//линейные параметры


for j:=1 to m do


begin


p[j,0]:=0;


p3[j,0]:=0;


end;


for i:=1 to m do


for j:=1 to nac do


begin


p[i,j]:=1/nac;


p3[i,j]:=1/nac;


end;


//Задаем начальные условия (Начало)


for i:=1 to m do // по количеству входов


for j:=1 to nac do // по количеству правил


begin


cen[i,j]:=0.5*(a[j]+a[i]);


sigma[i,j]:=abs((a[j+1]-a[j])*(a[i+1]-a[i]));


b[i,j]:=1+0.01*a[i]/a[j];


cen3[i,j]:=0.5*(a[j]+a[i]);


sigma3[i,j]:=abs((a[j+1]-a[j])*(a[i+1]-a[i]));


b3[i,j]:=1+0.01*a[i]/a[j];


end;


//Задаем начальные условия (Конец)


nIt:=maxNit-10; // Отвечает за количество итераций


//--------------------------------------------------------------


//--------------------------------------------------------------


while(not(adjust))and(nIt<maxNit)do


begin


gama:=gama*0.9;


nIt:=nIt+1;


nnit:=i;


for num:=nac to nst-nac do //цикл по обучающей выборке


begin


// Первый слой


// прогноз на 1 шаг


for i:=1 to nac do //цикл по входным переменным


for j:=1 to m do //цикл по правилам


myu[i,j]:=1/( 1+exp(Ln(abs((a[i+num]-cen[j,i])/sigma[j,i]))*2*b[j,i]) );


// Второй слой


// прогноз на 1 шаг


for j:=1 to m do


begin


myu0[j]:=1;


for i:=1 to nac do


myu0[j]:=myu0[j]*myu[j,i]; //Пересечение правил


end;


// Третий слой


// прогноз на 1 шаг


for j:=1 to m do


begin


tsk[j]:=p[j,0];


tsk3[j]:=p3[j,0]; // для прогноза на 3 шага


end;


for j:=1 to m do


for i:=1 to nac do


tsk[j]:=tsk[j]+p[j,i]*a[num+i-1];


for j:=1 to m do


tsk_w[j]:=tsk[j]*myu0[j];// y[k](x)*w[k]


// прогноз на 3 шагa


//tsk3:=p3[0];


//пятый слой


f1:=0;


for j:=1 to m do


f1:=f1+tsk_w[j];


f2:=0;


for j:=1 to m do


f2:=f2+myu0[j];


gc:=gc*u;


gs:=gs*u;


gb:=gb*u;


fprov:=f1;


if f2>0 then fprov:=f1/f2;


adjust_csb(num,fprov); // Настройка нелинейных параметров


if f2>0 then


ap[num+1]:=f1/f2 else


ap[num+1]:=ap[num];


str(ap[num+1]:8:4,s);


stringGrid1.Cells[1,num+1]:=s;


str(a[num+1]-ap[num+1]:8:4,s);


stringGrid1.Cells[2,num+1]:=s;


end;//цикл по обучающей выборке


for num:=nac+3 to nst-nac-3 do //цикл по обучающей выборке (НА 3 ШАГА ВПЕРЕД)


begin


// Первый слой


for i:=1 to nac do //цикл по входным переменным


for j:=1 to m do //цикл по правилам


myu3[i,j]:=1/( 1+exp(Ln(abs((a[i+num+3]-cen3[j,i])/sigma3[j,i]))*2*b3[j,i]) );


// Второй слой


for j:=1 to m do


begin


myu03[j]:=1;


for i:=1 to nac do


myu03[j]:=myu03[j]*myu3[j,i]; //Пересечение правил


end;


// Третий слой


for j:=1 to m do


tsk3[j]:=p3[j,0]; // для прогноза на 3 шага


for j:=1 to m do


for i:=1 to nac do


tsk3[j]:=tsk3[j]+p3[j,i]*a[num+i-1+3];


for j:=1 to m do


tsk_w3[j]:=tsk3[j]*myu03[j];// y[k](x)*w[k]


//пятый слой


f1:=0;


for j:=1 to m do


f1:=f1+tsk_w3[j];


f2:=0;


for j:=1 to m do


f2:=f2+myu03[j];


gc:=gc*u;


gs:=gs*u;


gb:=gb*u;


if f2>0 then


begin


adjust_csb3(num,f1/f2); // Настройка нелинейных параметров


ap3[num+4]:=f1/f2;


end


else


ap3[num+4]:=ap3[num+3];


str(ap3[num+4]:8:4,s);


stringGrid1.Cells[3,num+1]:=s;


str(a[num+4]-ap3[num+4]:8:4,s);


stringGrid1.Cells[4,num+1]:=s;


end;//цикл по обучающей выборке (НА 3 ШАГА ВПЕРЕД)


adjust_p();// Настройка линейных параметров


adjust_p3();


end; // while not adjust


// ДЕЛАЕМ ПРОГНОЗ


//делаем прогноз на 1 шаг


for num:=nac+2 to n do


begin


// Первый слой


// прогноз на 1 шаг


for i:=1 to nac do //цикл по входным переменным


for j:=1 to m do //цикл по правилам


myu[i,j]:=1/( 1+exp(Ln(abs((a[num-i]-cen[j,i])/sigma[j,i]))*2*b[j,i]) );


// Второй слой


// прогноз на 1 шаг


for j:=1 to m do


begin


myu0[j]:=1;


for i:=1 to nac do


myu0[j]:=myu0[j]*myu[j,i]; //Пересечение правил


end;


// Третий слой


// прогноз на 1 шаг


for j:=1 to m do


tsk[j]:=p[j,0];


for j:=1 to m do


for i:=1 to nac do


tsk[j]:=tsk[j]+p[j,i]*a[num-i];


for j:=1 to m do


tsk_w[j]:=tsk[j]*myu0[j];// y[k](x)*w[k]


//пятый слой


f1:=0;


for j:=1 to m do


f1:=f1+tsk_w[j];


f2:=0;


for j:=1 to m do


f2:=f2+myu0[j];


if f2>0 then


ap[num+1]:=f1/f2


else ap[num+1]:=ap[num];


ap[num+1]:=ap[num+1]+0.0001*(7-m);


str(ap[num+1]:8:4,s);


stringGrid1.Cells[1,num+1]:=s;


str(a[num+1]-ap[num+1]:8:4,s);


stringGrid1.Cells[2,num+1]:=s;


end;


stringGrid1.Cells[2,n+1]:='';


//Сделали прогноз на 1 шаг


//-------------------------------------------


//Делаем прогноз на 3 шага


for num:=nac+3 to n do //цикл по обучающей выборке (НА 3 ШАГА ВПЕРЕД)


begin


// Первый слой


for i:=1 to nac do //цикл по входным переменным


for j:=1 to m do //цикл по правилам


myu3[i,j]:=1/( 1+exp(Ln(abs((a[num-nac+i]-cen3[j,i])/sigma3[j,i]))*2*b3[j,i]) );


// Второй слой


for j:=1 to m do


begin


myu03[j]:=1;


for i:=1 to nac do


myu03[j]:=myu03[j]*myu3[j,i]; //Пересечение правил


end;


// Третий слой


for j:=1 to m do


tsk3[j]:=p3[j,0]; // для прогноза на 3 шага


for j:=1 to m do


for i:=1 to nac do


tsk3[j]:=tsk3[j]+p3[j,i]*a[num+i-nac];


for j:=1 to m do


tsk_w3[j]:=tsk3[j]*myu03[j];// y[k](x)*w[k]


//пятый слой


f1:=0;


for j:=1 to m do


f1:=f1+tsk_w3[j];


f2:=0;


for j:=1 to m do


f2:=f2+myu03[j];


if f2>0 then


ap3[num+3]:=f1/f2


else ap3[num+3]:=ap3[num+2] ; ap3[num+1]:=ap3[num+1]+0.0001*(7-m);


str(ap3[num+3]:8:4,s);


stringGrid1.Cells[3,num+3]:=s;


str(a[num+3]-ap3[num+3]:8:4,s);


stringGrid1.Cells[4,num+3]:=s;


end;


stringGrid1.Cells[4,num+1]:='';


stringGrid1.Cells[4,num+2]:='';


stringGrid1.Cells[4,num]:='';sm:=9.5;


// Сделали прогноз на 3 шага


// вычисляем критерий СКО и САПП для прогноза на 1 и 3 шага


skoS:=0; skoP:=0;


skoP:=0; sko3P:=0;


ms:=0; mp:=0;


ms3:=0; mp3:=0;


sappS:=0;sappP:=0;sapp3s:=0;sapp3p:=0;


for i:=nac+3 to nst do


skoS:=skoS+sqr(a[i]-ap[i]);


skoS:=(skoS/(nst-nac-3));


Str(skoS:8:7,s);


edit3.Text:=s;


sappS:=0;


for i:=nac+1 to nst do


sappS:=sappS+abs(a[i]-ap[i])/a[i];


sappS:=sappS/(nst-nac-1);


str(sappS:8:7,s);


edit7.Text:=s;


for i:=nst to n do


skoP:=skoP+sqr(a[i]-ap[i]);


skoP:=skoP/(n-nst);


Str(skoP:8:7,s);


edit4.Text:=s;


for i:=nst to n do


sappP:=sappP+abs(a[i]-ap[i])/a[i];


sappP:=sappP/(n-nst);


Str(sappP:8:7,s);


edit8.Text:=s;


sko3S:=0;


for i:=nac+6 to nst do


sko3S:=sko3S+sqr(a[i]-ap3[i]);


sko3S:=sko3S/(nst-nac-6);


Str(sko3S:8:7,s);


edit1.Text:=s;


for i:=nac+6 to nst do


sapp3S:=sapp3S+abs(a[i]-ap3[i])/a[i];


sapp3S:=sapp3S/(nst-nac-6);


Str(sapp3S:8:7,s);


edit5.Text:=s;


for i:=nst to n do


sko3P:=sko3P+sqr(a[i]-ap3[i]);


sko3P:=sko3P/(n-nst);


Str(sko3P:8:7,s);


edit2.Text:=s;


for i:=nst to n do


sapp3P:=sapp3P+abs(a[i]-ap3[i])/a[i];


sapp3P:=sapp3P/(n-nst);


Str(sapp3P:8:7,s);


edit6.Text:=s;


end;//if sg1[0,1]<>''


end; // обучить нейросеть (конец)


procedure TForm1.Button8Click(Sender: TObject);//Сохранить нейросеть


begin


SaveNNS.InitialDir:='D:CW';


SaveNNS.DefaultExt:='txt';


if SaveNNS.Execute then


begin


AssignFile(f4,SaveNNS.FileName);


Rewrite(f4);


writeln(f4,nns);


writeln(f4,nac);


writeln(f4,m);


for i:=1 to m do


for j:=1 to nac do


writeln(f4,cen[i,j]:12:10);


for i:=1 to m do


for j:=1 to nac do


writeln(f4,sigma[i,j]:12:10);


for i:=1 to m do


for j:=1 to nac do


writeln(f4,b[i,j]:12:10);


for i:=1 to m do


for j:=0 to nac do


if j<=nac then


writeln(f4,p[i,j])else begin


end;


for i:=1 to m do


for j:=1 to nac do


writeln(f4,cen3[i,j]:12:10);


for i:=1 to m do


for j:=1 to nac do


writeln(f4,sigma3[i,j]:12:10);


for i:=1 to m do


for j:=1 to nac do


writeln(f4,b3[i,j]:12:10);


for i:=1 to m do


for j:=0 to nac do


if j<=nac then


writeln(f4,p3[i,j])else begin end;


CloseFile(f4);


end;//if


end;//Сохранить нейросеть (конец)


// RUN


procedure TForm1.Button9Click(Sender: TObject);


var s:string;


l,nc:integer;//l - номер центра; nc - количество центров;


num,q:integer;//Количество итераций


nIt:longint;


sum,gama,pz,pz1,d,yP,x,sk:real; //y прогнозированное


tsk_w,tsk_w3,tsk,tsk3:array[1..mM]of real;//отвечает за третий слой


f1,f2,s_sign,s_w,s_sign3,s_w3:real;// взвешенная сумма сигналов и весов


begin


for q:=1 to n do


begin


s:=StringGrid1.Cells[0,q];


for k:=1 to Length(s) do


if (s[k]='.')or(s[k]=',') then s[k]:=decimalSeparator;


a[q]:=strToFloat(s);


end;


skoS:=0; skoP:=0;


skoP:=0; sko3P:=0;


ms:=0; mp:=0;


ms3:=0; mp3:=0;


sappS:=0;sappP:=0;sapp3s:=0;sapp3p:=0;


for num:=nac+2 to n do


begin


// Первый слой


// прогноз на 1 шаг


for i:=1 to nac do //цикл по входным переменным


for j:=1 to m do //цикл по правилам


myu[i,j]:=1/( 1+exp(Ln(abs((a[num-i]-cen[j,i])/sigma[j,i]))*2*b[j,i]) );


// Второй слой


// прогноз на 1 шаг


for j:=1 to m do


begin


myu0[j]:=1;


for i:=1 to nac do


myu0[j]:=myu0[j]*myu[j,i]; //Пересечение правил


end;


// Третий слой


// прогноз на 1 шаг


for j:=1 to m do


tsk[j]:=p[j,0];


for j:=1 to m do


for i:=1 to nac do


tsk[j]:=tsk[j]+p[j,i]*a[num-i];


for j:=1 to m do


tsk_w[j]:=tsk[j]*myu0[j];// y[k](x)*w[k]


//пятый слой


f1:=0;


for j:=1 to m do


f1:=f1+tsk_w[j];


f2:=0;


for j:=1 to m do


f2:=f2+myu0[j];


ap[num+1]:=f1/f2;


str(ap[num+1]:8:4,s);


stringGrid1.Cells[1,num+1]:=s;


str(a[num+1]-ap[num+1]:8:4,s);


stringGrid1.Cells[2,num+1]:=s;


end;


stringGrid1.Cells[2,n+1]:='';


//Сделали прогноз на 1 шаг


//-------------------------------------------


//Делаем прогноз на 3 шага


for num:=nac+3 to n do //цикл по обучающей выборке (НА 3 ШАГА ВПЕРЕД)


begin


// Первый слой


for i:=1 to nac do //цикл по входным переменным


for j:=1 to m do //цикл по правилам


myu3[i,j]:=1/(1+exp(Ln(abs((a[num-nac+i]-cen3[j,i])/sigma3[j,i]))*2*b3[j,i]) );


// Второй слой


for j:=1 to m do


begin


myu03[j]:=1;


for i:=1 to nac do


myu03[j]:=myu03[j]*myu3[j,i]; //Пересечение правил


end;


// Третий слой


for j:=1 to m do


tsk3[j]:=p3[j,0]; // для прогноза на 3 шага


for j:=1 to m do


for i:=1 to nac do


tsk3[j]:=tsk3[j]+p3[j,i]*a[num+i-nac];


for j:=1 to m do


tsk_w3[j]:=tsk3[j]*myu03[j];// y[k](x)*w[k]


//пятый слой


f1:=0;


for j:=1 to m do


f1:=f1+tsk_w3[j];


f2:=0;


for j:=1 to m do


f2:=f2+myu03[j];


ap3[num+3]:=f1/f2;


str(ap3[num+3]:8:4,s);


stringGrid1.Cells[3,num+3]:=s;


str(a[num+3]-ap3[num+3]:8:4,s);


stringGrid1.Cells[4,num+3]:=s;


end;


stringGrid1.Cells[4,num+1]:='';


stringGrid1.Cells[4,num+2]:='';


stringGrid1.Cells[4,num]:='';


// Сделали прогноз на 3 шага


// вычисляем критерий СКО и САПП для прогноза на 1 и 3 шага


skoS:=0; skoP:=0;


skoP:=0; sko3P:=0;


ms:=0; mp:=0;


ms3:=0; mp3:=0;


sappS:=0;sappP:=0;sapp3s:=0;sapp3p:=0;


for i:=nac+3 to nst do


skoS:=skoS+sqr(a[i]-ap[i]);


skoS:=(skoS/(nst-nac-3));


Str(skoS:8:7,s);


edit3.Text:=s;


sappS:=0;


for i:=nac+1 to nst do


sappS:=sappS+abs(a[i]-ap[i])/a[i];


sappS:=sappS/(nst-nac-1);


str(sappS:8:7,s);


edit7.Text:=s;


for i:=nst to n do


skoP:=skoP+sqr(a[i]-ap[i]);


skoP:=skoP/(n-nst);


Str(skoP:8:7,s);


edit4.Text:=s;


for i:=nst to n do


sappP:=sappP+abs(a[i]-ap[i])/a[i];


sappP:=sappP/(n-nst);


Str(sappP:8:7,s);


edit8.Text:=s;


sko3S:=0;


for i:=nac+6 to nst do


sko3S:=sko3S+sqr(a[i]-ap3[i]);


sko3S:=sko3S/(nst-nac-6);


Str(sko3S:8:7,s);


edit1.Text:=s;


for i:=nac+6 to nst do


sapp3S:=sapp3S+abs(a[i]-ap3[i])/a[i];


sapp3S:=sapp3S/(nst-nac-6);


Str(sapp3S:8:7,s);


edit5.Text:=s;


for i:=nst to n do


sko3P:=sko3P+sqr(a[i]-ap3[i]);


sko3P:=sko3P/(n-nst);


Str(sko3P:8:7,s);


edit2.Text:=s;


for i:=nst to n do


sapp3P:=sapp3P+abs(a[i]-ap3[i])/a[i];


sapp3P:=sapp3P/(n-nst);


Str(sapp3P:8:7,s);


edit6.Text:=s;


end;// RUN


end.


unit Unit2;


interface


uses


Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,


Dialogs, StdCtrls, ExtCtrls, Mask,Grids;


type


TForm2 = class(TForm)


Button1: TButton;


Button2: TButton;


Splitter1: TSplitter;


StaticText1: TStaticText;


StaticText2: TStaticText;


Bevel1: TBevel;


Bevel2: TBevel;


StaticText4: TStaticText;


StaticText5: TStaticText;


StaticText6: TStaticText;


Edit1: TEdit;


Edit2: TEdit;


Edit3: TEdit;


Edit4: TEdit;


Memo1: TMemo;


Label1: TLabel;


Edit5: TEdit;


Label2: TLabel;


procedure Button2Click(Sender: TObject);


procedure FormResize(Sender: TObject);


procedure FormCreate(Sender: TObject);


procedure Button1Click(Sender: TObject);


procedure Edit1KeyPress(Sender: TObject; var Key: Char);


procedure Edit2KeyPress(Sender: TObject; var Key: Char);


procedure Edit3KeyPress(Sender: TObject; var Key: Char);


procedure Edit4KeyPress(Sender: TObject; var Key: Char);


procedure FormPaint(Sender: TObject);


procedure Edit5KeyPress(Sender: TObject; var Key: Char);


private


{ Private declarations }


public


{ Public declarations }


end;


var


Form2: TForm2;


// f: TextFile;


//n,nst,nac,neps,nrp:integer;


s:string;


sw:array[1..20]of string;


implementation


uses Unit1;


{$R *.dfm}


procedure TForm2.Button2Click(Sender: TObject);


begin //Закрыть форму


Form2.close;


end;


procedure TForm2.FormResize(Sender: TObject);


begin


Button2.Top:=Form2.ClientHeight-Button2.Height-8;


Button1.Top:=Form2.ClientHeight-Button2.Height*2-16;


end;


procedure TForm2.FormCreate(Sender: TObject);


var i:integer;


begin


edit1.Text:='';


edit2.Text:='';


edit3.Text:='';


edit4.Text:='';


edit5.Text:='';


if nst>n then nst:=trunc(n/2);


str(Nst,s);


edit1.Text:=s;


if nac>nst then nac:=4;


str(Nac,s);


edit2.Text:=s;


if (neps<1)or(neps>1000)then neps:=10;


str(Neps,s);


edit3.Text:=s;


if(nrp<10)or(nrp>99)then nrp:=80;


str(Nrp,s);


edit4.Text:=s;


if (m>mM)or(m<1)then m:=5;


Form2.Memo1.Lines.Clear;


for i:=1 to nac do


Form2.Memo1.Lines[i-1]:=sw[i]+#13#10;


end;//Form2.create;


procedure TForm2.Button1Click(Sender: TObject);//Сохранить и выйти


begin


s:=edit1.Text;


nst:=abs(StrToInt(s));


if (nst>n)or(nst<2) then nst:=trunc(n/2);


s:=edit2.Text;


nac:=StrToInt(s);


s:=edit3.Text;


neps:=abs(StrToInt(s));


if (neps<1)or(neps>1000)then neps:=10;


s:=edit4.Text;


nrp:=StrToInt(s);


if(nrp<10)or(nrp>99)then nrp:=80;


s:=edit5.Text;


m:=StrToInt(s);


if (m>mM)or(m<1)then m:=5;


Form2.close;


end;//Сохранить и выйти (конец)


procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);


begin


if key=#13then


begin


s:=edit1.Text;


nst:=StrToInt(s);


if nst>n then nst:=trunc(n/2);


end;


if not(Key in [#8,'0'..'9'])then


Key:=#0;


end;


procedure TForm2.Edit2KeyPress(Sender: TObject; var Key: Char);


begin


if key=#13then


begin


s:=edit2.Text;


nac:=StrToInt(s);


if nac>nst then nac:=4;


end;


if not(Key in [#8,'0'..'9'])then


Key:=#0;


end;


procedure TForm2.Edit3KeyPress(Sender: TObject; var Key: Char);


begin


if key=#13then


begin


s:=edit3.Text;


Neps:=StrToInt(s);


if (neps<1)or(neps>1000)then neps:=10;


end;


if not(Key in [#8,'0'..'9'])then


Key:=#0;


end;


procedure TForm2.Edit4KeyPress(Sender: TObject; var Key: Char);


begin


if key=#13then


begin


s:=edit4.Text;


nrp:=StrToInt(s);


if(nrp<10)or(nrp>99)then nrp:=80;


end;


if not(Key in [#8,'0'..'9'])then


Key:=#0;


end;


procedure TForm2.FormPaint(Sender: TObject);


var i:integer;


begin


edit1.Text:='';


edit2.Text:='';


edit3.Text:='';


edit4.Text:='';


if nst>n then nst:=trunc(n/2);


str(Nst,s);


edit1.Text:=s;


str(Nac,s);


edit2.Text:=s;


if (neps<1)or(neps>1000)then neps:=10;


str(Neps,s);


edit3.Text:=s;


if(nrp<10)or(nrp>99)then nrp:=80;


str(Nrp,s);


edit4.Text:=s;


if(m<1)or(m>mM)then m:=5;


str(m,s);


edit5.Text:=s;


Form2.Memo1.Lines.Clear;


Form2.Memo1.Lines[0]:='Весовые коэфициенты при прогнозированнии на 1 шаг'+#13#10;


for i:=1 to nac do


begin


str(w[i]:6:5,sw[i]);


Form2.Memo1.Lines[i]:=sw[i]+#13#10;


end;


Form2.Memo1.Lines[nac+1]: =' Весовые коэфициенты при прогнозированнии на 3 шагa'+#13#10;


for i:=1 to nac do


begin


str(w3[i]:6:5,sw[i]);


Form2.Memo1.Lines[nac+i+1]:=sw[i]+#13#10;


end;


//Form2.Memo1.Lines[nac+1]:=form1.nnit+#13#10;


end;


procedure TForm2.Edit5KeyPress(Sender: TObject; var Key: Char);


begin


if key=#13then


begin


s:=edit5.Text;


m:=StrToInt(s);


if (m>mM)or(m<1)then m:=5;


end;


if not(Key in [#8,'0'..'9'])then


Key:=#0;


end;


end.


unit Unit3;


interface


uses


Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,


Dialogs, StdCtrls;


type


TForm3 = class(TForm)


Button1: TButton;


procedure Button1Click(Sender: TObject);


procedure FormResize(Sender: TObject);


procedure FormActivate(Sender: TObject);


procedure FormCreate(Sender: TObject);


private


{ Private declarations }


public


{ Public declarations }


end;


const cc=0; dd=24;


var


Form3: TForm3;


i,j,k:integer;


max,min:real;


var d,xlong,ylong,u0x,u0y,w,h,wm,hm:integer;


s,inform:string;


implementation


uses Unit1;


{$R *.dfm}


//close


procedure TForm3.Button1Click(Sender: TObject);


begin


form3.Close;


end;


//fi


function fi(g:real):integer;


var h:real;


begin


h:=u0x-(g-min)*u0x/(max-min);


fi:=trunc(h);


end;


//Resize


procedure TForm3.FormResize(Sender: TObject);


var h:integer;


begin


max:=0;


min:=10000;


for i:=1 to n do


begin


if a[i]>max then max:=a[i];


if a[i]<min then min:=a[i];


end;


Button1.Top:=Form3.ClientHeight-Button1.Height-8;


Form3.Refresh;


wm:=Form3.clientWidth;


hm:=Form3.clientHeight;


d:=1;


//Область рисования графика


with form3.canvas do


begin


Pen.color:=clblack;


Brush.Color:=clWhite;


Brush.Style:=bsSolid;


u0x:=hm-32-button1.height;


u0y:=32;


rectangle(dd,cc,wm-8,hm-16-button1.height);


xlong:=wm-u0y-16;


ylong:=u0x-8;


if n=0 then n:=1;


d:=trunc(xlong/n);


if d=0 then d:=1;


Pen.color:=clgreen; //вывод а


moveTo(u0y,fi(a[1]));


for i:=2 to n do


begin


moveTo(u0y+d*(i-1),fi(a[i-1]));


lineTo(u0y+d*i,fi(a[i]));


end;


Pen.color:=clred; //вывод ар


for i:=nac+3 to n do


begin


moveTo(u0y+d*(i-1),fi(ap[i-1]));


lineTo(u0y+d*i,fi(ap[i]));


end;


//вывод сетки и подписей


i:=trunc(min/10);


j:=trunc(max/10);


k:=i*10+5;


j:=j*10;


font.color:=clBlack;


font.Size:=14;


while k<=j+1 do


begin


inform:=IntTostr(k);


TextOut(1,fi(k),inform);


k:=k+5;


end;


font.Size:=10;


TextOut(Button1.Width+20,u0x+20,'Имя файла: '+fname);


TextOut(Button1.Width+20,u0x+40,'Зеленый - реальные данные; красный - спрогнозированные');


end;//with form3.canvas do


end;//form3.Resize


//Form3.active


procedure TForm3.FormActivate(Sender: TObject);


begin


max:=0;


min:=10000;


for i:=1 to n do


begin


if a[i]>max then max:=a[i];


if a[i]<min then min:=a[i];


end;


Button1.Top:=Form3.ClientHeight-Button1.Height-8;


Form3.Refresh;


wm:=Form3.clientWidth;


hm:=Form3.clientHeight;


d:=1;


//Область рисования графика


with form3.canvas do


begin


Pen.color:=clblack;


Brush.Color:=clWhite;


Brush.Style:=bsSolid;


u0x:=hm-32-button1.height;


u0y:=32;


rectangle(dd,cc,wm-8,hm-16-button1.height);


xlong:=wm-u0y-16;


ylong:=u0x-8;


if n=0 then n:=1;


d:=trunc(xlong/n);


if d=0 then d:=1;


Pen.color:=clgreen;


moveTo(u0y,fi(a[1]));


for i:=2 to n do


begin


moveTo(u0y+d*(i-1),fi(a[i-1]));


lineTo(u0y+d*i,fi(a[i]));


end;


Pen.color:=clred;


for i:=nac+3 to n do


begin


moveTo(u0y+d*(i-1),fi(ap[i-1]));


lineTo(u0y+d*i,fi(ap[i]));


end;


//вывод сетки и подписей


i:=trunc(min/10);


j:=trunc(max/10);


k:=i*10+5;


j:=j*10;


font.color:=clBlack;


font.Size:=14;


while k<=j+1 do


begin


inform:=IntTostr(k);


TextOut(1,fi(k),inform);


k:=k+5;


end;


font.Size:=10;


TextOut(Button1.Width+20,u0x+20,'Имя файла: '+fname);


TextOut(Button1.Width+20,u0x+40,'Зеленый - реальные данные; красный - спрогнозированные');


end;//with form3.canvas do


end; // form3.active


procedure TForm3.FormCreate(Sender: TObject);


begin


end;


end.


unit matrices;


interface


Uses SysUtils;


type


Matrix = record


M, N : integer; { M - число строк, N - столбцов }


Data : array of array of extended;


end;


{$IFNDEF XP_CMATRIX}


{$DEFINE XP_MATRIX}


TMap = array of integer;


{$ENDIF}


Vector = array of extended;


Procedure SetSize(var A:Matrix; M,N:integer); overload; {задание размера матрицы}


Procedure Zero(var A:Matrix); overload; {заполнение матрицы нулями }


Procedure E(var A:Matrix); overload; { единичная матрица }


Function Transpose(const A:Matrix):Matrix; overload; { транспонирование матрицы }


Function Add(const A,B:Matrix):Matrix; overload; { сложение матриц }


Function Sub(const A,B:Matrix):Matrix; overload; { вычитанние матриц }


Function Mul(const A,B:Matrix):Matrix; overload; { умножение матриц }


Function AddValue(const A:Matrix; Value:extended):Matrix; overload; { сложение матрицы с числом }


Function MulValue(const A:Matrix; Value:extended):Matrix; overload; { домножение матрицы на число }


Function Negate(const A:Matrix):Matrix; overload; { измненение знака элеметнов матрицы}


Procedure DeleteRow(var A:Matrix; Row:integer); overload; Procedure DeleteCol(var A:Matrix; Col:integer); overload; Procedure DeleteCross(var A:Matrix; Row:integer); overload; Procedure InsertRow(var A:Matrix; Row:integer); overload; Procedure InsertCol(var A:Matrix; Col:integer); overload;


Function MapMatrix(const A:Matrix; const Map:TMap):Matrix; overload; Function UnmapMatrix(const A:Matrix; const Map:TMap):Matrix; overload; Function MapVector(const A:Matrix; const Map:TMap):Matrix; overload;


Function UnmapVector(const A:Matrix; const Map:TMap):Matrix; overload;


Function SubMatrix(const A:Matrix; const MapX,MapY:TMap):Matrix; overload; Function RangeMatrix(const A:Matrix; StartX,EndX,StartY,EndY:integer):Matrix; overload;


Function Vectorize(const A:Matrix):Vector; overload; Function Unvectorize(const V:Vector):Matrix; overload;


Function Inverse(const A:Matrix):Matrix; overload; Function Trace(const A:Matrix):extended; overload;


Procedure JoinBottom(var A:Matrix; const B:Matrix); overload;


Procedure JoinRight(var A:Matrix; const B:Matrix); overload; Procedure JoinDiag(var A:Matrix; const B:Matrix); overload;


implementation


Procedure SetSize(var A:Matrix; M,N:integer);


var


i : integer;


Begin


A.M:=M;


A.N:=N;


SetLength(A.Data,M);


for i:=0 to M-1 do begin


SetLength(A.Data[i],N);


end;


End;


Procedure Zero(var A:Matrix);


var


i,j : integer;


Begin


for i:=0 to A.M-1 do for j:=0 to A.N-1 do A.Data[i,j]:=0;


End;


Procedure E(var A:Matrix);


var


i : integer;


Begin


if (A.M<>A.N) then Raise Exception.Create('Попытка сформировать неквадратную единичную матрицу!');


Zero(A);


for i:=0 to A.M-1 do A.Data[i,i]:=1;


End;


Function Transpose(const A:Matrix):Matrix;


var


B : Matrix;


i,j : integer;


Begin


SetSize(B,A.N,A.M);


for i:=0 to A.M-1 do for j:=0 to A.N-1 do B.Data[j,i]:=A.Data[i,j];


Result:=B;


End;


Function Add(const A,B:Matrix):Matrix;


var


C : Matrix;


i,j : integer;


Begin


if ((A.M<>B.M) or (A.N<>B.N)) then Raise Exception.Create('Размеры матриц при сложении не совпадают!');


SetSize(C,A.M,A.N);


for i:=0 to A.M-1 do for j:=0 to A.N-1 do C.Data[i,j]:=A.Data[i,j]+B.Data[i,j];


Result:=C;


End;


Function Sub(const A,B:Matrix):Matrix;


var


C : Matrix;


i,j : integer;


Begin


if ((A.M<>B.M) or (A.N<>B.N)) then Raise Exception.Create('Размеры матриц при сложении не совпадают!');


SetSize(C,A.M,A.N);


for i:=0 to A.M-1 do for j:=0 to A.N-1 do C.Data[i,j]:=A.Data[i,j]-B.Data[i,j];


Result:=C;


End;


Function Mul(const A,B:Matrix):Matrix;


var


C : Matrix;


i,j,k : integer;


Begin


if (A.N<>B.M) then Raise Exception.Create('Размеры матриц при умножении не совпадают!');


SetSize(C,A.M,B.N);


Zero(C);


for i:=0 to A.M-1 do for j:=0 to B.N-1 do for k:=0 to A.N-1 do C.Data[i,j]:=C.Data[i,j]+A.Data[i,k]*B.Data[k,j];


Result:=C;


End;


Function Inverse(const A:Matrix):Matrix;


var


i,j,k : integer;


B : Matrix;


sk, sz : extended;


Begin


if (A.N<>A.M) then Raise Exception.Create('Попытка вычислить обратную матрицу для неквадратной матрицы!');


SetSize(B,A.M,A.M);


Zero(B);


for i:=0 to A.M-1 do B.Data[i,i]:=1;


for i:=0 to A.M-1 do begin


sk:=1/A.Data[i,i];


for j:=0 to A.M-1 do if (i<>j) then begin


sz:=sk*A.Data[j,i];


for k:=0 to A.M-1 do A.Data[j,k]:=A.Data[j,k]-sz*A.Data[i,k];


for k:=0 to A.M-1 do B.Data[j,k]:=B.Data[j,k]-sz*B.Data[i,k];


end;


for k:=0 to A.M-1 do A.Data[i,k]:=sk*A.Data[i,k];


for k:=0 to A.M-1 do B.Data[i,k]:=sk*B.Data[i,k];


end;


Result:=B;


End;


Function Trace(const A:Matrix):extended;


var


i : integer;


res : extended;


Begin


res:=0;


if (A.N<>A.M) then Raise Exception.Create('Попытка вычислить след для неквадратной матрицы!');


for i:=0 to A.M-1 do res:=res+A.Data[i,i];


Result:=res;


End;


Procedure JoinBottom(var A:Matrix; const B:Matrix);


var


i,j,oldy : integer;


Begin


if (A.N<>B.N) thenRaiseException.Create('Невозможно объединить две матрицы по вертикали. Их размеры не совпадают!');


oldy:=A.M;


SetSize(A,A.M+B.M,A.N);


for i:=0 to B.M-1 do for j:=0 to B.N-1 do A.Data[i+oldY,j]:=B.Data[i,j];


End;


Procedure JoinRight(var A:Matrix; const B:Matrix); { присоединение матрицы справа }


var


i,j,oldx : integer;


Begin


if (A.M<>B.M) thenRaiseException.Create('Невозможно объединить две матрицы по горизонтали. Их размеры не совпадают!');


oldx:=A.N;


SetSize(A,A.M,A.N+B.N);


for i:=0 to B.M-1 do for j:=0 to B.N-1 do A.Data[i,j+oldX]:=B.Data[i,j];


End;


Procedure JoinDiag(var A:Matrix; const B:Matrix); { присоединение матрицы в нижний правый угол }


var


i,j,oldx,oldy : integer;


Begin


oldY:=A.M;


oldX:=A.N;


SetSize(A,A.M+B.M,A.N+B.N);


for i:=0 to B.M-1 do for j:=0 to B.N-1 do A.Data[i+oldY,j+oldX]:=B.Data[i,j];


for i:=0 to oldY-1 do for j:=oldX to A.N-1 do A.Data[i,j]:=0;


for i:=oldY to A.M-1 do for j:=0 to oldX-1 do A.Data[i,j]:=0;


End;


Function Negate(const A:Matrix):Matrix;


var


i,j : integer;


B : Matrix;


Begin


SetSize(B,A.M,A.N);


for i:=0 to A.M-1 do for j:=0 to A.N-1 do B.Data[i,j]:=-A.Data[i,j];


Result:=B;


End;


Function AddValue(const A:Matrix; Value:extended):Matrix; { сложение матрицы с числом }


var


i,j : integer;


B : Matrix;


Begin


SetSize(B,A.M,A.N);


for i:=0 to A.M-1 do for j:=0 to A.N-1 do B.Data[i,j]:=A.Data[i,j]+Value;


Result:=B;


End;


Function MulValue(const A:Matrix; Value:extended):Matrix; { домножение матрицы на число }


var


i,j : integer;


B : Matrix;


Begin


SetSize(B,A.M,A.N);


for i:=0 to A.M-1 do for j:=0 to A.N-1 do B.Data[i,j]:=A.Data[i,j]*Value;


Result:=B;


End;


Procedure DeleteRow(var A:Matrix; Row:integer); { удаление строки }


var


i : integer;


Begin


if (Row>=A.M) then Raise Exception.Create('Попытка удалить из матрицы несуществующую строку!');


SetLength(A.Data[Row],0);


for i:=Row+1 to A.M-1 do A.Data[i-1]:=A.Data[i];


SetLength(A.Data,A.M-1);


dec(A.M);


End;


Procedure DeleteCol(var A:Matrix; Col:integer); { удаление столбца }


var


i,j : integer;


Begin


if (Col>=A.N) then Raise Exception.Create('Попытка удалить из матрицы несуществующий столбец!');


for i:=0 to A.M-1 do begin


for j:=Col+1 to A.N-1 do A.Data[i,j-1]:=A.Data[i,j];


SetLength(A.Data[i],A.N-1);


end;


dec(A.N);


End;


Procedure DeleteCross(var A:Matrix; Row:integer); { удаление строки и столбца с заданным номером }


Begin


DeleteRow(A,Row);


DeleteCol(A,Row);


End;


Procedure InsertRow(var A:Matrix; Row:integer);


var


i : integer;


Begin


SetSize(A,A.M+1,A.N);


for i:=A.M-1 downto Row do A.Data[i+1]:=A.Data[i];


SetLength(A.Data[Row],A.N);


for i:=0 to A.N-1 do A.Data[Row,i]:=0;


End;


Procedure InsertCol(var A:Matrix; Col:integer);


var


i,j : integer;


Begin


SetSize(A,A.M,A.N+1);


for i:=0 to A.M-1 do begin


for j:=A.N-1 downto Col do A.Data[i,j+1]:=A.Data[i,j];


A.Data[i,Col]:=0;


end;


End;


Function MapMatrix(const A:Matrix; const Map:TMap):Matrix; { удаление заданных строк и столбцов }


var


i,j : integer;


B : Matrix;


CurValue : integer;


Begin


SetSize(B,A.M,A.N);


for i:=0 to A.M-1 do for j:=0 to A.N-1 do B.Data[i,j]:=A.Data[i,j];


for i:=0 to length(Map)-2 do begin


for j:=i to length(Map)-1 do if (Map[j]<Map[i]) then begin


CurValue:=Map[j];


Map[j]:=Map[i];


Map[i]:=CurValue;


end;


end;


for i:=length(Map)-1 downto 0 do DeleteRow(B,Map[i]);


for i:=length(Map)-1 downto 0 do DeleteCol(B,Map[i]);


Result:=B;


End;


Function MapVector(const A:Matrix; const Map:TMap):Matrix; { удаление заданных строк}


var


i,j : integer;


B : Matrix;


CurValue : integer;


Begin


SetSize(B,A.M,A.N);


for i:=0 to A.M-1 do for j:=0 to A.N-1 do B.Data[i,j]:=A.Data[i,j];


for i:=0 to length(Map)-2 do begin


for j:=i to length(Map)-1 do if (Map[j]<Map[i]) then begin


CurValue:=Map[j];


Map[j]:=Map[i];


Map[i]:=CurValue;


end;


end;


for i:=length(Map)-1 downto 0 do DeleteRow(B,Map[i]);


Result:=B;


End;


Function UnmapMatrix(const A:Matrix; const Map:TMap):Matrix; { восстановление матрицы до исходного размера}


var


i,j : integer;


B : Matrix;


CurValue : integer;


Begin


SetSize(B,A.M,A.N);


for i:=0 to A.M-1 do for j:=0 to A.N-1 do B.Data[i,j]:=A.Data[i,j];


for i:=0 to length(Map)-2 do begin


for j:=i to length(Map)-1 do if (Map[j]<Map[i]) then begin


CurValue:=Map[j];


Map[j]:=Map[i];


Map[i]:=CurValue;


end;


end;


for i:=0 to length(Map)-1 do InsertRow(B,Map[i]);


for i:=0 to length(Map)-1 do InsertCol(B,Map[i]);


Result:=B;


End;


Function UnmapVector(const A:Matrix; const Map:TMap):Matrix; { восстановление количества строк матрицы до исходного размера}


var


i,j : integer;


B : Matrix;


CurValue : integer;


Begin


SetSize(B,A.M,A.N);


for i:=0 to A.M-1 do for j:=0 to A.N-1 do B.Data[i,j]:=A.Data[i,j];


for i:=0 to length(Map)-2 do begin


for j:=i to length(Map)-1 do if (Map[j]<Map[i]) then begin


CurValue:=Map[j];


Map[j]:=Map[i];


Map[i]:=CurValue;


end;


end;


for i:=0 to length(Map)-1 do InsertRow(B,Map[i]);


Result:=B;


End;


Function SubMatrix(const A:Matrix; const MapX,MapY:TMap):Matrix; { выделение подматрицы, содержащей заданные столбцы и строки }


var


i,j : integer;


B : Matrix;


Begin


SetSize(B,Length(MapY),Length(MapX));


for i:=0 to length(MapY)-1 do begin


for j:=0 to length(MapX)-1 do B.Data[i,j]:=A.Data[MapY[i],MapX[j]];


end;


Result:=B;


End;


Function RangeMatrix(const A:Matrix; StartX,EndX,StartY,EndY:integer):Matrix; { выделение подматрицы, содержащей заданный диапазон столбцов и строк }


var


i,j : integer;


B : Matrix;


Begin


SetSize(B,EndY-StartY+1,EndX-StartX+1);


for i:=StartY to EndY do begin


for j:=StartX to EndX do B.Data[i-StartY,j-StartX]:=A.Data[i,j];


end;


Result:=B;


End;


Function Vectorize(const A:Matrix):Vector; { преобразование матрицы в вектор, расположенный в памяти последовательно }


var


i,j,k : integer;


V : Vector;


Begin


SetLength(V,A.M*A.N+2);


V[0]:=A.M;


V[1]:=A.N;


k:=2;


for i:=0 to A.M-1 do for j:=0 to A.N-1 do begin


V[k]:=A.Data[i,j];


inc(k);


end;


Result:=V;


End;


Function Unvectorize(const V:Vector):Matrix; { обратное преобразование: вектор в матрицу }


var


i,j,k : integer;


A : Matrix;


Begin


SetSize(A,trunc(V[0]),trunc(V[1]));


k:=2;


for i:=0 to A.M-1 do for j:=0 to A.N-1 do begin


A.Data[i,j]:=V[k];


inc(k);


end;


Result:=A;


End;


end.

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Использование нечеткой искусственной нейронной сети TSK Takagi Sugeno Kanga в задаче прогнозирования

Слов:22137
Символов:216464
Размер:422.78 Кб.