Разработки СО РАН - каталоги программ и БД

Поиск по каталогам:

2015-11-30

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

Используемый алгоритм - из массива сложных функций, имеющих различные аргументы, составляется линейное дифференциальное уравнение первого порядка и записывается его решение методом Лагранжа в виде массива строк языка Java. Каждая строка имеет управляющие символы, определяющие варианты размещения фрагментов строк в ее графическом представлении. Счетчик выводимых графических символов изменяется в методе run интерфейса Runnable после временной задержки. Более подробно алгоритм изложен в статье [1].

1. Попов А.А. Методика программирования на языке Java тренажеров по математике с посимвольным контролем аналитических преобразований. Программная инженерия. 2012. №8, с.38-43.

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

Инструментальные средства создания - программа написана на языке Java с использованием среды Eclipse.

Во вложении  файл IllustrLagrange.zip содержит 7 файлов: файл с расширением .bat необходим для загрузки IllustrLagrange.class, который в процессе выполнения использует остальные файлы.

В файле с расширением .doc приведено решение одной из задач.

2015-09-14

Назначение - Решение задач о покрытии множеств

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

[1]     Забиняко Г.И. Реализация алгоритмов решения задачи о покрытии множеств и анализ их эффективности // Вычислительные технологии -2007,Т.12,№6, с.50-58.                      

Разработаны  варианты программ в однопроцессорном и многопроцессорном режимах.                                         

Функциональные возможности - реально с обоснованием оптимальности решаются задачи с числом строк до 500 и столбцов до 5000.
Инструментальные средства создания - фортран, MPI

2015-09-11

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

Область применения: Изучение новых объектов (технических) исследований при помощи методов аппроксимации, например, при исследовании вольт-амперной характеристики (ВАХ) электрорадиоизделий; исследование радиосигналов, т.е. амплитудно-частотных характеристик (АЧХ); при групповой архивации (сжатии) файлов - определение среднего соотношения эффективности сжатия информации.

Используемый алгоритм: метод наименьших квадратов разных функций и интерполяция (полиномы Ньютона и Лагранжа).

Блок-схема алгоритма приведена во вложении.

Для работы программы вводятся входные данные (значения X, Y), указываются шаг уплотнения и интервал (в каких пределах рассматривать функцию и производить расчет). По нажатию на кнопку "Расчет" производятся: расчет n методов аппроксимации, расчет погрешности с последующим внесением результатов в соответствующие таблицы и с построением графиков. По минимальному значению расчитанной погрешности определяется оптимальный метод аппроксимации.

Функциональные возможности: Программа позволяет представлять данные расчетов как в графической форме, так и в табличной. Возможность копирования результатов: расчеты в Microsoft Excel (таблицы); график в буфер обмена, а также печать на принтер. Входные данные: ручной ввод или текстовый файл. Объем обрабатываемых данных: до 5000 точек (X, Y), свыше 5000 - требуются более высокие параметры аппаратных средств ПК.

Инструментальные средства создания: среда разработки Borland Delphi 7.

Скриншоты:
1. Расчет значений аппроксимирующей функции и сама функция (модель);
2. Расчет погрешности (относительной ошибки аппроксимации) на всём интервале значений;
3. Расчет погрешности (относительной ошибки аппроксимации) в каждой точке для каждого метода аппроксимации;
4. Выбор метода аппроксимации на основе минимального значения расчитанной погрешности (в каждой точке);
5. Графическое представление расчитанной погрешности (для каждого метода аппроксимации);
6. Графики: входных данных (X,Y) и ее аппроксимации.
В качестве входных данных использовались экспериментальные значения ВАХ кремниего транзистора. В результате получили аппроксимирующую функцию.

2015-07-23

Назначение: цифровое голографическое восстановление и цифровая голографическая интерферометрия на платформе CUDA по реальным цифровым голограммам.


Область применения: цифровая голография, цифровая голографическая микроскопия, оптическая физика.


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

На вход программы подается файл изображения с голограммой, полученной цифровым путем. При помощи выбранного метода по голограмме восстанавливается изображение объекта, который был записан на этой голограмме. В основе методов восстановления лежит численное решение интеграла Френеля-Кирхгофа [1]. В методе преобразования Френеля используется разложение части подынтегрального выражения в ряд Тейлора и приведение интеграла к преобразованию Фурье. Перед голографическим восстановлением осуществляется дополнительная обработка голограммы с целью подавления нулевого порядка дифракции для улучшения качества результата [2]. Для этого используется адаптивный частотный фильтр. Для реализации цифровой голографической интерферометрии используются 2 голограммы. Разница между их численными восстановлениями по фазе позволяет восстановить трёхмерную деформационную модель по всей видимой поверхности измеряемого объекта [3].

  1. Рябухо, В. П. Когерентно-оптические методы в измерительной технике и биофотонике: Учебное пособие / В. П. Рябухо, В. В. Тучин. – Саратов: Сателлит, 2009. – 127 с.
  2. Kreis, T. Suppression of the dc term in digital holography / T. Kreis, W. Juptner // Optical Engineering. – 1997. – Vol. 36. – P. 2357-2360.
  3. Schnars, U. Direct phase determination in hologram interferometry with use of digitally recorded holograms / U. Schnars // JOSA A. – 1994. – Vol. 11(7). – P. 661-665.

Функциональные возможности: цифровое голографическое восстановление реальных голограмм с подавлением нулевого порядка дифракции при различных параметрах восстановления (длина волны, расстояние восстановления, угол отклонения опорного пучка, физический размер пикселя в голограмме и др.).

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

  • восстановление цифровой голограммы, используя последовательный алгоритм для CPU (для размера голограмм со сторонами от 256 до 4096 пикселей);
  • восстановление цифровой голограммы, используя параллельный алгоритм для GPU CUDA (для размера голограмм со сторонами от 256 до 4096 пикселей);
  • осуществление ЦГИ, используя последовательный алгоритм для CPU (для размера голограмм со сторонами от 256 до 4096 пикселей);
  • осуществление ЦГИ, используя параллельный алгоритм для GPU CUDA (для размера голограмм со сторонами от 256 до 4096 пикселей).

Инструментальные средства создания: Microsoft Visual Studio 2012, С++, CUDA Toolkit 6.5.

Работа с программой: в приложенном архиве располагается программа для OC Windows в виде исполняемого файла (папка redist) и в виде исходного кода (папка src). Для запуска программы необходимо запустить файл Holo.exe или примеры (run_experiment1.bat и run_experiment2.bat). В папке redist также можно найти подробное руководство по работе с программой (users_manual.pdf).

2015-07-09

Назначение - прогнозирование финансовых потоков
Область применения - валютные и финансовые рынки
Используемый алгоритм - алгоритм Бокса-Дженкинса с 14 параметрами. Нахождение параметров модели было сведено к решению двух взаимосвязанных задач квадратичного программирования. По разработанному алгоритму было создано программное обеспечение в среде MS Excel, обеспечивающее нахождения прогнозного значения отношения цен бивалютной пары евро-канадский доллар по 42 входным начальным данным.

Согласно теории Бокса-Дженкинса, прогнозное значение x­t  бивалютной пары в момент времени t определяется рекуррентным выражением:

x= a1xt-1+...+ apxt-p+b1et-1+...bqet-q                                          (1)

В выражении (1) приняты следующие обозначения:

  • p, q – натуральные числа – число точек, участвующих в прогнозе;
  • xt-p,...,xt-1 – последовательность значений в моменты времени  с номерами t-p,..., t-1 соответственно;
  • et-q,...,et-1 – случайные величины, имеющие нормальное распределение с нулевым математическим ожиданием и среднеквадратичным отклонением d;
  • ai, bj – постоянные коэффициенты.

Для отыскания параметров ai, bj обычно используют метод перебора, суть которого заключается в «подгонке» параметров так, чтобы точки, получаемые из рекуррентного выражения (1), совпадали (или хотя бы были очень близки) с фактическими значениями. Данная методика дает хорошие результаты лишь для небольшого числа параметров (не более 3).

Научной новизной настоящего исследования является организация поиска параметров ai , bj посредством решения задачи квадратичного программирования.

Для простоты изложения далее считается, что p=q и число значений n временного ряда кратно p. Предположение n=kp (где k=1,2,…) не является критичным, т.к. его выполнение всегда можно обеспечить. Противоположный случай  рассматривается аналогично, но получаемые выкладки будут более громоздкими и затруднят понимание идеи излагаемого метода.

Параметры a1, a2, …, ap трендовой составляющей определяются на основании выражения:

                                xt  = a1xt-1+...+apxt-p                                                                          (2)

Уравнению (2) можно сопоставить характеристическое уравнение

                                                         f(z)=1-a1z-...-apzp=0.                                  (3)

В дальнейшем будут рассматриваться только стационарные процессы. Необходимым и достаточным условием стационарности процесса (2) является нахождение всех корней характеристического уравнения (3) вне единичного круга. Из этого условия следуют два неравенства

f(-1)f(1)>0,|ap|<1         (4)

Параметры a1, a2, …, ap, кроме условий (4), должны достаточно точно аппроксимировать фактические значения              Таким образом, поиск коэффициентов a1, a2, …, ap трендовой части рекуррентного выражения (1) сведён к задаче квадратичного программирования с ограничениями (4).

Аналогичным образом можно определить параметры b1, b2, …, bp. Введя обозначение et=xt-a1xt-1-apxt-p, рекуррентное выражение (1) можно представить в виде:

                                                          et.=b1xt-1+...+bqxt-q                                                (5)

Предполагая стационарность процесса (5) для поиска параметров b1, b2, …, bp,  получается аналогичная задача квадратичного программирования.

 Функциональные возможности - из таблицы валютных котировок в разработанное программное средство вводятся значения курса валют. Количество данных должно быть кратно 7 и не более 42. Проведя тестирование программного средства на большом количестве примеров, выяснилось, что кратность 7 вводимых данных обеспечивает достатчно качественный прогноз.

Инструментальные средства создания - табличный процессор MS Excel