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

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

2014-12-31

Назначение: Программа предназначена для вычисления вероятностных характеристик решения систем со случайной структурой с распределенными переходами.

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

Используемый алгоритм: Для моделирования решения используется алгоритм на основе обобщенного метода Эйлера и метода максимального сечения [1].

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

  • условные: первый, второй момент и дисперсия для каждой структуры;
  • безусловные: первый, второй момент и дисперсия; вероятности состояний;
  • плотность вероятности для каждой структуры;
  • одномерная плотность распределения.

Вектор состояния Y(t) в каждой l-й структуре задан автономными стохастическими дифференциальными уравнениями (СДУ) в смысле Ито

dY(t) = A_l(Y(t))*dt + B_l(Y(t))*dW(t), где 

    Y(t) - вектор состояния системы (размерности n);

   W(t) - вектор независимых стандартных винеровских процессов (размерности m);

   A_l(Y) - известные векторные функции размерности n (снос);

   B_l(Y) - известные матричные функции размерности n x m (диффузия).

Интенсивности переходов зависят от времени и заданы матричной функцией V размерности lk x lk, где lk – число структур. Предполагается, что в начальный момент времени Т0 известно распределение вектора состояния системы Y(T0) и номер начальной структуры l(T0).

1. Т.А. Аверина. Статистический алгоритм моделирования динамических систем с переменной структурой  // Сиб. ЖВМ, 2002, т. 5, № 1, сс. 1-10.

В приложении находятся два файла:

1.  test_random_str_2014.pdf - Описание основного алгоритма и демонтстрация вычисленных вероятностных характеристик тестового примера: решалась задача стабилизации малого искусственного спутника, находящегося под действием гравитационного и управляющего моментов;

2.  random_structure_2014.rar - .заархивированные файлы программы и ее описания.
Инструментальные средства создания - Язык программирования Фортран ...

2014-12-30

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

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

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

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

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

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

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

2014-12-30

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

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

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

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

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

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

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

2014-12-24

Назначение - Тест проверяет принадлежность к простым числам сверхбольших чисел Мерсенна.
 

Область применения - Теория чисел, тестирование производительности вычислительных систем.
 

Используемый алгоритм - Используется  алгоритм теста Люка-Лемера, в котором сверхбольшие числа представлены в виде динамических линейных массивов в двоичной системе счисления. Арифметические операции над числами выполняются по алгоритмам длинной арифметики. Поиск очередного самого большого простого числа   Мерсенна вида 2PM - 1 , где РM, в свою очередь, простое число, принимающее значения более 57 млн, является весьма трудоемкой задачей. В соответствии с тестом Люка-Лемера выполняется (PM -2) итераций цикла, на каждой из которых определяется целочисленный остаток от деления на число Мерсенна. Эта операция и определяет в основном трудоемкость теста. Только при представлении чисел в двоичной системе счисления представляется возможность упростить эту операцию до одной элементарной операции сложения. 

В программе реализован разработанный авторами алгоритм вычисления целочисленного остатка при делении на сверхбольшое чисто Мерсенна в двоичной системе счисления.  Целочисленный остаток в двоичной системе счисления определяется как сумма двух частей в записи делимого. Первая часть записи от разряда единиц (нулевой разряд) до разряда с номером (PM - 1), где PM - показатель степени числа Мерсенна. Вторая часть записи от разряда с номером PM и до старшего разряда в записи делимого. Использование данного алгоритма позволяет существенно снизить трудоемкость теста Люка-Лемера и время работы программы.

Алгоритм описан в статье Гончаренко В.Е. "Оптимизация вычислений целочисленного остатка в тесте Люка-Лемера для сверхбольших чисел Мерсенна" в сборнике статей Международной научно-практической конференции "Теоретические и практические вопросы науки XXI века", 2014 г., г. Уфа, Ч2.

Функциональные возможности - Функциональные возможности могут быть ограничены размером свободной динамической памяти ЭВМ. Размер используемых в программе двух динамических линейных массивов равен значению степени PM числа Мерсенна, которое в современных вычислениях принимает значение более 57 млн. В программе предусматривается проверка достаточности оперативной памяти для текущих вычислений.

Инструментальные средства создания - Microsoft  Visual Studio 2010, Visual C++.

Во Вложении прикреплен файл исходного кода программы на языке C++.

2014-12-22

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

Область применения - Программа может быть использована в  области физики, материаловедения, математики.

Используемый алгоритм:   

Теория плотных упаковок и алгоритмы построения для них описаны в [1,2,3].

1. Sloane, N. J. A. (1998). "The Sphere-Packing Problem".Documenta Mathematika 3: p. 387–396.

2. В. М. Сидельников. О плотнейшей укладке шаров на поверхности n-мерной евклидовой сферы и числе векторов двоичного кода с заданным кодовым расстоянием. Доклады АН СССР, 1973, т. 213, № 5, с. 1029–1032

3. O’Toole, P. I.; Hudson, T. S. (2011). "New High-Density Packings of Similarly Sized Binary Spheres". The Journal of Physical Chemistry C 115 (39): 19037.

Реализованный в программе алгоритм разработан автором  и заключается в следующем:

  • Упорядоченная плотная упаковка шаров (послойная). Представляет собой заполнение большого шара слоями малых шаров. Алгоритм: построение каждого слоя начинается с края окружности каждого слоя с последующим уменьшением расстояния до центра слоя.
  • Упорядоченная плотная упаковка шаров (кубическая). Представляет собой обычную кубическую упаковку, вложенную в шар. Алгоритм: вокруг каждого шара строится строится восемь окружающих его шаров.
  • Неупорядоченная плотная упаковка шаров в сферических координатах. Представляет собой неплотную упаковку шаров, расположенных случайным образом. Алгоритм: построение нескольких шаров осуществляется случайным образом, затем построение в сферических координатах.
  • Неупорядоченная плотная упаковка шаров на основе кубической. Представляет собой неплотную упаковку шаров расположенных случайным образом. Алгоритм: построение нескольких шаров осуществляется случайным образом, затем построение по принципу кубической упаковки.
  • Неупорядоченная упаковка шаров с малой плотностью. Алгоритм: Построение шаров случайным образом. Число генерирования координат в 1000 раз превышает отношение кубов радиусов большого и малого шаров (R1)3/(R2)3 .
  • Неупорядоченная упаковка шаров со средней плотностью. Алгоритм: Построение шаров случайным образом. Число генерирования координат в 10000 раз превышает отношение кубов радиусов большого и малого шаров (R1)3/(R2)3 .
  • Неупорядоченная упаковка шаров с большой плотностью. Алгоритм: Построение шаров случайным образом. Число генерирования координат в 100000 раз превышает отношение кубов радиусов большого и малого шаров (R1)3/(R2)3 .

Функциональные возможности

   С помощью данной программы можно:

         - осуществлять различные построения плотных упаковок;

         - осуществлять обзор упаковок в режиме 3D;

         - сохранять абсолютно точное изображение упаковки.

        Одними из главных особенностей программы являются различные варианты построения упаковок и последующий расчет дисперсии и среднеквадратического отклонения . Для этой цели предусмотрено следующее:

         - шары пожно строить полностью или строить только их центры координат;

         - предусмотрена защита от столкновений и наложений внутренних шариков;

         - работа с объектами происходит в реальном времени;

         - автоматический расчет дисперсии для большого числа случаев;

         - удобные настройки построения объектов.         

Инструментальные средства создания - Среда программирования Delphi 7.0