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

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

2015-12-01

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

Область применения - лекции и практические занятия по дифференциальным уравнениям.

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

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

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

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

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

В файле с расширением .doc показана работа с тренажером на конкретном примере.

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).