Краткое описание программ, дополняющих основной пакет TISEAN.
В настоящем разделе приведено описание программ, написанных в дополнение к программам проекта TISEAN с целью автоматизации вычислений величины корреляционной размерности восстановленного аттрактора.
NB! Реализация вычислений полностью обновлена! Теперь все дополнительные процедуры не представлены в виде отдельных программ, а объединены в одной динамической библиотеке d2dlib.dll. В связи с этим в изложенном ниже описании программ полностью сохраняет актуальность алгоритмическая часть, но такие вещи, как командная строка, формат входных и выходных файлов и пр. не имеют смысла.
Программа loc_min.exe.
Эта программа предназначена для поиска первого локального минимума в ряде xn.
Формат файла с исходными данными – 2 столбца чисел, где первый – порядковый номер числа в ряде (n), а второе – само число (х). Столбцы разделены символом пробела.
Образец содержимого входного файла:
0 2.680924e+00
1 1.392891e+00
2 1.096702e+00
3 8.657164e-01
4 6.767627e-01
5 5.015003e-01
6 3.837259e-01
В выходном файле содержится полученное число.
Программа запускается со следующей командной строкой:
loc_min.exe [-l -X -Y -ofile_out -h] file_in
Параметры командной строки имеют следующий смысл:
file_in – имя файла с исходными данными;
-ofile_out – имя файла, содержащего результат; если стоит просто ключ –о, то результат сохраняется в файл, имя которого образуется из имени исходного файла путём добавления к нему символов «_lm»;
-Х – в выходной файл записывается порядковый номер искомого числа;
-У – в выходной файл записывается само число;
-l – в случае ошибки создаётся файл LOC_MIN.log, в который записывается отчёт об ошибке;
-h – вывод на экран краткой справки.
Программа getextr.exe
Эта программа ищет Х-координату первого локального максимума, общего для нескольких графиков. Алгоритм поиска описан здесь.
Каждый из графиков в исходном файле представлен двумя столбцами чисел. Графики записаны в исходный файл последовательно; отделены друг от друга пустой строкой.
Образец содержимого входного файла:
1 1.11810255
2 1.2758348
3 1.2997942
4 1.27783144
5 1.20196021
6 1.22591949
1 1.36568236
2 1.367679
3 1.38964164
4 1.34172297
5 1.31776369
6 1.34172297
. . .
На рис. 1 приведён пример графиков, содержащихся в файле (в качестве исходных данных была использована ЭЭГ).
Рис. 1. Графики пространственно-временного разделения – входные данные для программы getextr.exe
В выходном файле содержится полученное число. Например, для приведённого примера это число равно четырём.
Программа запускается со следующей командной строкой:
getextr.exe [-l -K# -o<file_out> -D# -h] <input file>
Параметры командной строки имеют следующий смысл:
input_file – имя файла с исходными данными;
-ofile_out – имя файла, содержащего результат;
-К – ширина окна при поиске локального максимума; по умолчанию – 3;
-D – символ, выступающий в роли разделителя между столбцами; по умолчанию – пробел;
-l – в случае ошибки создаётся файл GetExtr.log, в который записывается отчёт об ошибке;
-h – вывод на экран краткой справки.
Программа avform.exe
Эта программа предназначена для преобразования формата файлов. Файл, получаемый на выходе программы av-d2.exe, представляет собой несколько графиков, разделённых пустой строкой (образец см. в описании предыдущей программы). Программа же c2t.exe, которая производит дальнейшую обработку данных, требует, чтобы графики были разделены двумя пустыми строками, а также строкой, содержащей размерность лагового пространства, при которой строится следующий график.
Образец содержимого выходного файла:
…
1.324087e-03 1.028644e-02
1.234848e-03 9.595644e-03
1.151624e-03 8.955177e-03
1.074008e-03 8.358561e-03
#dim= 2
9.341174e-01 1.000000e+00
8.711610e-01 1.000000e+00
8.124477e-01 1.000000e+00
…
Программа запускается со следующей командной строкой:
avform.exe [-l] [-ofile_out] [-h] file_in
file_in – имя файла с исходными данными;
-ofile_out – имя файла, содержащего результат;
-l – в случае ошибки создаётся файл AvForm.log, в который записывается отчёт об ошибке;
-h – вывод на экран краткой справки.
Программа find_1.exe
В главе 2 приведён алгоритм поиска участка измерений на графике Раппа. Согласно этому алгоритму, для поиска данного участка определяются его границы по оси абсцисс на основании анализа графика зависимости . А именно – ищется участок графика такой, что его границы по оси ординат лежат посередине диапазона значений 10-5÷1 и занимают ¼ длины этого диапазона (график строится в двойном логарифмическом масштабе). Если диапазон значений зависимости оказывается меньше, то в качестве исходного выбирается весь этот диапазон.
Данная программа формирует файл, содержащий участки графиков зависимости , соответствующие изложенным выше условиям.
Программа запускается со следующей командной строкой:
find_1.exe [-l -N -ooutfile -h] file
Параметры командной строки имеют следующий смысл:
file – имя входного файла;
-ooutfile – имя выходного файла;
-N – записывать в выходной файл номера выбранных строк – координат точек анализируемого графика;
-l – сохранять сообщения об ошибках в файл find_1.log;
-h – краткая справка.
Формат входного файла – такой же, как формат выходного файла программы avform.exe.
Формат выходного файла – такой же, как входного; в нём содержатся искомые участки зависимости .
Программа comp_x.exe
Эта программа вырезает из графиков Раппа участки измерения. Границы этих участков заданы в выходном файле программы find_1.exe.
Программа работает с двумя исходными файлами. Первый содержит собственно графики Раппа, а второй – участки зависимости , найденные программой find_1.exe. В выходной файл записываются искомые фрагменты графиков Раппа.
Программа запускается со следующей командной строкой:
comp_x.exe [-l -ooutfile -h] filename_1 filename_2
Параметры командной строки имеют следующий смысл:
filename_1 – имя файла, содержащего графики Раппа;
filename_2 – имя файла, содержащего координаты границ участка измерений (полученного при помощи программы find_1.exe;
-ooutfile – имя выходного файла;
-l – сохранять сообщения об ошибках в файл comp_x.log;
-h – краткая справка.
Форматы всех файлов (входных и выходного)идентичны и соответствуют формату выходного файла программы avform.exe.
Программа param_c.exe
Эта программа вычисляет для каждого участка графика Раппа, находящегося в файле, полученном при помощи программы comp_x.exe, среднее, дисперсию, максимальное и минимальное значения.
Программа запускается со следующей командной строкой:
param_c.exe [-l -ooutfile -h] filein
Параметры командной строки имеют следующий смысл:
filein – имя входного файла, содержащего фрагменты графиков Раппа;
-ooutfile – имя выходного файла;
-l – сохранять сообщения об ошибках в файл comp_x.log;
-h – краткая справка.
Формат входного файла соответствует формату файла, формируемого при помощи программы comp_x.exe. Образец приведён в описании выходного файла программы avform.exe.
В выходном файле содержатся записи следующего вида:
#m= 3
2.963583
0.029028
2.910031
3.001503
Здесь в первой строке указана размерность лагового пространства, во второй – величина , в третьей – её дисперсия в пределах участка измерений, в четвёртой и пятой – её максимальное и минимальное значения.
Такие записи последовательно создаются в выходном файле для каждого значения размерности лагового пространства, используемой при расчётах.
Программа runpar.exe предназначена для того, чтобы запускать любую другую программу, подставляя в её командную строку данные, содержащиеся в каком-либо файле.
Программа запускается со следующей командной строкой:
runpar.exe [-h] [-l] <program> <parameter list>
Параметры командной строки имеют следующий смысл:
program – имя запускаемой программы
-l – сохранять сообщения об ошибках в файл comp_x.log;
-h – краткая справка.
parameter list – командная строка запускаемой программы, каждый ключ которой записан в в следующем формате:
#<ID><arg>, где
# – количество знаков, занимаемое идентификатором ключа;
ID – идентификатор ключа;
arg – имя файла, содержащего аргумент ключа; если такого файла не существует, то программа рассматривает имя файла как сам аргумент.
Если параметр командной строки запускаемой программы начинается не с цифры, то он подставляется непосредственно в командную строку.
Рассмотрим работу этой программы на следующем примере. Допустим, нам надо выполнить программу d2.exe, подставив в её командную строку величину лага, значение которой содержится в файле data_min.mut, а исходный ряд содержится в файле data.dat. В этом случае командная строка будет выглядеть следующим образом:
runpar.exe d2.exe 2-ddata_min.mut 2-ocorint -E data.dat
Здесь величина лага указывается в ключе –d. Поэтому мы перед этим ключом ставим число 2, так как идентификатор ключа – -d – содержит два знака. После этого вместо числа, определяющего величину лага, вписываем название файла, в котором это число записано (допустим, оно равно трём).
В итоге программа d2.exe будет запущена со следующей командной строкой:
d2.exe –d3 -ocorint -E data.dat
Файла corint в директории не существует (об этом следует позаботиться заранее), поэтому эта запись рассматривается как значение ключа «-о». Параметры «-Е» и «data.dat» были указаны без указания размера идентификатора ключа. Поэтому они просто подставлены в командную строку.
В принципе, перед ключом «-о» можно было бы и не указывать размер его идентификатора; перед ключом же «-Е» можно было бы указать длину идентификатора – 2 или 0. В последнем случае программа, не найдя файла с названием «-Е», подставит эти символы в командную строку. Ни в одном из случаев работа программы не нарушится. А вот перед названием файла «data.dat» длину идентификатора (0) указывать нельзя, так как в этом случае будет считана первая строка из файла с исходными данными и подставлена в командную строку вместо его названия.