УДК 519.1 + 004.4 Кузьмин Олег Викторович,
д. ф.-м. н., профессор, заведующий кафедрой теории вероятностей и дискретной математики, Иркутский государственный университет (ИГУ), e-mail: [email protected]
Мельникова Вера Александровна, старший преподаватель кафедры информационных технологий, ИГУ, филиал в г. Братске, e-mail: [email protected]
АЛГОРИТМИЧЕСКИЙ КОМПЛЕКС ПОСТРОЕНИЯ ОДНОРОДНЫХ ПОЛИНОМОВ ПЛАТОНОВА НА ОСНОВЕ МЕТОДА РЕКУРРЕНТНЫХ СООТНОШЕНИЙ
O. V. Kuzmin, V.A. Melnikova
THE ALGORITHMIC COMPLEX FOR CONSTRUCTION OF HOMOGENEOUS PLATONOV POLINOMIALS BASED ON THE METHOD OF RECURRENCE RELATIONS
Аннотация. Рассматривается задача разработки программно-алгоритмического комплекса, предназначенного для построения однородных полиномов Платонова в явном виде, а также приводится описание структуры для хранения данных спецификации полинома.
Ключевые слова: однородные полиномы Платонова, спецификация, алгоритм.
Abstract. The problem of special software and algorithmic complex development is considered. The complex is designed for constructing homogeneous Platonov polinomials. Also the special dаta structure for saving specifications of polynomials is described.
Keywords: homogeneous Platonov polinomials, specification, algorithm.
Введение
В настоящее время известны различные виды комбинаторных полиномов разбиений, например однородные полиномы Белла (А-полиномы), которые в явном виде можно представить следующим образом [2] :
П-к+1 г
(g) = S? ?!(i!)?
, n > 1,1 < к < n,
п,к ¡=1
где сумма берется по всем разбиениям натурального числа п на k целых неотрицательных слагаемых, т. е. по всем таким наборам (?,?,...,тп_к+ целых неотрицательных чисел, что
п-к+1
-к+1
2? = п 2 " = к.
1=1 1=1
С однородными полиномами Белла сопряжены однородные полиномы Платонова (В-полиномы), также относящиеся к классу комбинаторных полиномов разбиений, которые в яв-
ном виде (при Ф 0) можно представить следующим образом [5]:
Впк (Е) = ИГк [(к - 1)!еГ к I-1 2 И)"1 И х
2п-к ,п - к
п—к+1
(2п - к - "1 -1)! ПЕ? ["!(/'!)" ]-1, (1)
1=1
п > 2,1 < к < п -1, где суммирование ведется по всем разбиениям натурального числа (2п - 2к) на (п - к) целых неотрицательных слагаемых. Дополнительно полагаем:
в„п (е) = е-п, п > 1. (2)
Комбинаторные полиномы широко применяются при обращении комбинаторных сумм и моделировании дискретных распределений [2-4], поэтому задача построения матриц В-полиномов на ЭВМ становится актуальной. Однако вопрос о составлении оптимального алгоритма с позиции определения полиномов Платонова в вычислительной системе остается открытым.
Данная работа посвящена рассмотрению особенностей алгоритмической реализации прикладного программного обеспечения, содержащего математический блок для формирования В-полиномов (и их матриц) при различных значениях параметров п и k.
Для реализации компьютерной программы необходимо сформировать интегрирующую структуру, позволяющую связать способ хранения данных и алгоритмы, направленные на выполнение операций над полиномами, в единый комплекс.
1
п
Системный анализ. Математика. Механика и машиностроение
впл (Е) =
Б-, к_,(Е) + ББ , к (е)
Е\
(3)
где Б = е 2 д / ^Е! + Езд / ^е2 +...
а
В.,к (Я) = -
Г к +1 -Л
в
п+1,к+1
(я), (4)
п, к > 1, к < п.
В случае построения первого столбца нижней треугольной матрицы, состоящей из изучаемых полиномов, рекуррентное соотношение (2) упрощается следующим образом:
ВпД( Я) =
РВп-гЛ Я ) Я1 .
(5)
Для построения главной диагонали указанной нижней треугольной матрицы применяем соотношение (2).
Используя соотношение (3) в качестве основного, а соотношения (2) и (5) в качестве вспомогательных, составим следующий алгоритм построения полинома Б к(Е) в явном виде.
Алгоритм 1
1. НАЧАЛО
2. Выбор значений п и к.
3. ЕСЛИ п = к = 1, то находим полином, являющийся единственным элементом первой
строки матрицы Б11 (Е) = — Е11, и переходим
к шагу 7.
ш
I. Рекуррентные соотношения и алгоритмы для построения В-полиномов
В литературных источниках, посвященных изучению комбинаторных полиномов разбиений, рассматриваются различные соотношения, которые могут быть использованы для их построения (см. [2], [3]).
В частности, использование соотношения (1) предполагает построение В-полиномов на основе их явного описания, что, в свою очередь, требует нахождения разбиений натурального числа на целые неотрицательные слагаемые. Однако при формировании матрицы полиномов различные разбиения требуются каждый раз для построения очередного полинома, что сопряжено с дополнительными вычислительными операциями, приводящими к загрузке алгоритма.
Для В-полиномов известен ряд рекуррентных соотношений (см. [2], [3]), которые позволяют получать очередной полином матрицы на основе уже имеющихся, построенных на предыдущих вычислительных этапах:
4. ИНАЧЕ, ЕСЛИ п = к Ф 1, то находим полином, являющийся элементом главной диагонали
матрицы Бп к (Е) = — Е1 п, и переходим к шагу 7.
5. ИНАЧЕ, ЕСЛИ п Ф к = 1, то применяя соотношение (5) к полиному Б ДЕ) (п — 1) раз, находим полином, являющийся элементом первого столбца матрицы Бп 1 (Е) , и переходим к шагу 7.
6. ИНАЧЕ:
6.1. Применяя соотношение (5) к полиному Б1 (Е), находим (п — к) полиномов, расположенных в первом столбце матрицы.
6.2. Для каждого столбца матрицы, начиная со 2-го и заканчивая к-м, производим следующие операции:
- находим 1 -й элемент рассматриваемого столбца, используя соотношение (2);
- находим (п - к) элементов рассматриваемого столбца, используя соотношение (3), осуществляем приведение подобных слагаемых для вновь полученного полинома, вычисления прекращаются при нахождении искомого полинома
Бп, к (Е).
7. КОНЕЦ.
В приведенном алгоритме учитывается, элементом какой области нижней треугольной матрицы является искомый полином Б к (Я) , это
определяется по введенным значениям п и к. В результате построение первого столбца и главной диагонали нижней треугольной матрицы сопряжено с меньшими вычислительными затратами.
Для составления еще одного алгоритма преобразуем соотношение (4) к следующему виду: д
Бп,к (Е) = ---Бп-1, 1 (Е),п > 1 , к < п. (6)
дЕк -1
Приведенное соотношение предполагает
нахождение полинома Б к(Я) на основе явного
вида В-полинома, расположенного в предыдущей строке и первом столбце матрицы.
Алгоритм 2
1. НАЧАЛО
2. Выбор значений п и к.
3. ЕСЛИ п = к = 1, то находим полином, являющийся единственным элементом первой
строки матрицы Б11 (Е) = -Е11, и переходим
к шагу 7.
4. ИНАЧЕ, ЕСЛИ п = к Ф 1, то находим полином, являющийся элементом главной диагонали матрицы Бп к (Е) = -Е1 ", и переходим к шагу 7.
5. ИНАЧЕ, ЕСЛИ п Ф к = 1, то применяя соотношение (5) к полиному Б ДЕ) (п -1) раз, находим полином, являющийся элементом первого столбца матрицы Бп 1 (Е) , и переходим к шагу 7.
6. ИНАЧЕ: Находим искомый полином Б к( Е), используя соотношение (6), и переходим
к шагу 7.
7. КОНЕЦ.
В приведенном алгоритме также учитывается положение полинома Б к(Я) в нижней треугольной матрице в зависимости от значений п и к.
В результате сравнительного анализа двух приведенных алгоритмов, представляющих собой не только способы построения явного вида В-полиномов вручную, но и основу для создания программно-алгоритмического комплекса, можно заключить, что:
1) в случае построения явного вида полинома, являющегося элементом первого столбца или главной диагонали матрицы, эффективность приведенных алгоритмов равноценна;
2) в случае построения явного вида полинома, который не является элементом ни первого столбца, ни главной диагонали нижней треугольной матрицы, использование алгоритма 2 является более предпочтительным, так как предполагает нахождение меньшего количества промежуточных полиномов;
3) приведенные алгоритмы предназначены для построения полиномов вручную, однако могут быть использованы как основа при разработке программно-алгоритмического комплекса средствами процедурной системы программирования при условии их детальной переработки с учетом выбранной структуры для хранения данных.
II. Спецификация В-полинома
Рассмотрим структуру В-полинома на примере явного вида Б1 (Е), который взят из таблицы, приведенной в [3, с. 136]:
Б41 (е) = -1 5еГ7е2 +1 0е-8Е2Ез - Е15Е4
Полином состоит из слагаемых. Слагаемое характеризуется значениями коэффициента, а также индексов и степеней всех множителей.
Каждому В-полиному поставим в соответствие его спецификацию.
При этом под спецификацией комбинаторного полинома понимается числовое множество 5", образованное следующими элементами:
- коэффициенты слагаемых полинома;
- индексы множителей;
- степени множителей.
Пример 1. Спецификацию полинома Б4,1(Е) можно представить следующим образом:
{(-15,1, -7, 2, 3)(10,1, -8, 2,1, 3,1)(-1,1, -5, 4,1)} .
Спецификация соответствует В-полиному с приведенными слагаемыми и множителями. Параметры множителя с определенным индексом включаются в спецификацию не более одного раза в пределах одного слагаемого, что позволяет хранить данные спецификации в памяти ЭВМ более компактно, исключая избыточность и сокращая количество циклов перебора элементов спецификации. Алгоритмы, входящие в состав комплекса, составлены с учетом сохранения компактности хранения данных.
Система расположения элементов спецификации имеет следующие особенности:
- спецификация 5 состоит из подмножеств 5, каждое из которых взаимно-однозначно соответствует отдельному слагаемому полинома;
- количество подмножеств спецификации соответствует числу приведенных слагаемых полинома;
- нулевым элементом каждого подмножества является значение коэффициента слагаемого полинома;
- на нечетных позициях подмножеств, начиная с 1 -й, расположены значения индексов множителей слагаемого полинома, которые упорядочены по возрастанию (алгоритмы, входящие в состав разрабатываемого комплекса, сохраняют этот порядок);
- на четных позициях подмножеств, начиная со 2-й, расположены значения степеней множителей слагаемого полинома, при этом из спецификации исключаются (удаляются) значения индексов и степени множителей, имеющих нулевую степень;
- количество элементов подмножества спецификации на единицу превышает удвоенное число приведенных множителей слагаемого полинома.
Приведенная система представления числовых параметров полинома в виде его спецификации применима и для А-полиномов.
Представление комбинаторного полинома посредством его спецификации необходимо в случае разработки программно-алгоритмического комплекса на высокоуровневом процедурном язы-
ке программирования и позволяет решить следующие задачи:
- хранение числовых параметров полинома в памяти ЭВМ в виде специальных структур данных;
- представление алгебраических преобразований полиномов (и их слагаемых) в виде специальных операций над их спецификациями, а также программная реализация этих операций средствами высокоуровневого языка программирования;
- построение комбинаторных полиномов разбиений в явном виде с помощью разработанного программно-алгоритмического комплекса и использование сформированных спецификаций полиномов для вычисления характеристик дискретных распределений.
III. Структура хранения данных спецификации полинома
Современные способы хранения данных подразумевают использование различных структур и технологий. В частности, широкое распространение получила концепция реляционных баз данных, которые могут быть использованы для накопления статистики показателей функционирования сложных систем [6]. Однако применение реляционной таблицы для хранения данных спецификации В-полинома не является рациональным, так как таблица имеет определенную, заранее заданную разработчиком размерность и применима скорее для хранения элементов квадратных матриц или рядов данных. При этом размерность как самой спецификации полинома Bn к (g),
так и ее подмножеств изменяется при различных значениях n и k и может быть неизвестна заранее до ее построения. Поэтому выбор был сделан в пользу динамических структур данных.
В процессе разработки алгоритмического комплекса, предназначенного для построения В-полиномов в явном виде, была использована система программирования Nokia Qt Creator. Рассмотренный инструментарий поддерживает специальную динамическую структуру для хранения данных - контейнерные классы, обеспечивающие возможность хранения элементов различных типов, а также библиотеку алгоритмов, реализующих такие стандартные операции для контейнеров, как проверка эквивалентности двух контейнеров, вычисление размерности контейнера, удаление всех элементов контейнера и др. [1].
При разработке структуры данных для хранения спецификаций В-полиномов в памяти ЭВМ были использованы списки контейнерного класса QList, поскольку именно динамические структуры позволяют экономично расходовать память ЭВМ при запуске программы, а также в случае необхо-
димости дают возможность сохранять числовые характеристики полиномов в виде файла и извлекать их оттуда для дальнейших манипуляций.
Пример 1 (продолжение). Рассмотрим полином В41 (Е) , спецификация которого приведена
в предыдущем разделе. Для хранения данных каждого слагаемого полинома используется список целочисленных переменных QList <т1>, в 0-ю (начальную) позицию которого записывается значение коэффициента, в 1-ю - значение индекса 1-го множителя, во 2-ю - значение степени первого множителя и т. д. Длина списка определяется количеством множителей в слагаемом полинома. Для представления данных спецификации полинома используется вложенная структура QList<QList <т^>. Длина вложенного списка определяется количеством слагаемых полинома. Схема представления спецификации полинома В 1( Е) указанным способом приведена на рис. 1.
-15 1 -7 2 3
- ► 10 1 -8 2 1 3 1
-1 1 -5 4 1
Рис. 1. Структура хранения данных спецификации В-полиномов на примере B4 j (g)
IV. Структура алгоритмического комплекса
Для построения B-полиномов средствами системы программирования Nokia Qt Creator был разработан алгоритмический комплекс, в котором использована структура для хранения данных, описанная в предыдущем разделе, и алгоритмы, основанные на методе рекуррентных соотношений. Модуль алгоритмического комплекса, предназначенный для построения матриц В-полиномов, состоит из двух основных и пяти вспомогательных методов, возвращающих спецификации полиномов и их слагаемых, полученные в результате выполнения различных алгебраических операции над исходными B-полиномами. Для программной реализации алгоритмов комплекса использованы стандартные методы и алгоритмы, входящие в состав библиотеки контейнеров Nokia Qt Creator, а также специально разработанные методы. Структура модуля алгоритмического комплекса, предназначенного для построения В-полиномов, представлена на рис. 2.
Рис. 2. Структура модуля алгоритмического комплекса построения спецификаций В-полиномов на основе метода рекуррентных соотношений
Рассмотрим назначение каждого из стандартных методов:
- bool QEqual() - сравнение содержимого двух контейнеров;
- bool QList::isEmpty() - проверка контейнера на наличие в нем элементов;
- void QList::clear() - удаление всех элементов контейнера;
- iterator QList::begin() - установка указателя на начальную позицию последовательности элементов контейнера;
- iterator QList::end() - установка указателя на конечную позицию последовательности элементов контейнера;
- int QList::count() - определение количества элементов контейнера;
- void QList::append() - добавление одного элемента в конец контейнера;
- void QList::removeAt() - удаление элемента контейнера, находящегося на указанной позиции.
- void QList::insert() - вставка элемента в контейнер на указанную позицию.
Использование стандартных методов обработки с контейнеров, входящих в состав библиотек Nokia Qt Creator, позволяет избежать составления дополнительного программного кода. Однако необходимость реализации специальных опе-
раций над спецификациями полиномов и их слагаемых потребовала разработки дополнительных методов, алгоритмические особенности каждого из которых продиктованы выбранной структурой для хранения данных спецификации полинома.
Разработанные методы имеют следующее назначение:
- convertionToString - формирование на основе заданной спецификации полинома переменной строкового типа, которая используется для вывода полинома в явном виде;
- sumOfTwoPolinomials — построение спецификации полинома, полученного в результате сложения двух исходных полиномов с заданными спецификациями, без приведения подобных слагаемых;
- collectingTerms - построение спецификации В-полинома, полученного в результате приведения подобных слагаемых исходного полинома, заданного в виде спецификации;
- copyPolinomial - создание резервной копии спецификации полинома в случае, когда над ней необходимо провести некоторые преобразования и при этом сохранить первоначальную спецификацию для дальнейшего использования;
- differentiationOfPolinomial - построение спецификации полинома, полученного в результа-
Д,д(g) = 202702igr17-472972igr16g2бg3 + 315315(gr1sg24g32 + 945945gr15g25g4 -бООбООгГ4g23g33 -90090(?r14g23g3g4 -135135gi-14g24g5 + 1540(?r13g34 + 13860(?r13g2g32g4 +
51975gl-13g22g24 + 83160?r13g22g3g5 + 13860?1-13g23g3gб -5775g1^2g3g42 - 4620?1-12g23g32g5 -
6930gj-12g3g4g5 -4620g1-12g2g3g6 -990g1-12g22g7g5 + 126g1-11g52 + 210g1-11g4g6 + 120g1-11g3g7 +
45g1-11g 2 g8_
B9a(g) = -2027025gr16g27 -378380?1-15g25g3 -1801800gr14g23g32 -675675gr14g24g4 + 18480Qgr13g2g33 + 4 1 5 8 00?r13g22g3g4 + Ш^"1^3g5 - 23100?1-12g32g4 -1732igr12g2g42 -2T72°g1-12g2g3g20 -6930g1-12g22gб + 1260g1-11g4g5 + 840g1-11g3gб + 360g1-11g2g7 - 9g1~10g8 B93(g) = 945945gr15g26 -135135Qgr14g24g3 - 41580Qgr13g22g32 + 207900g-13g23g4 -15400?r12g33 - 69 3 00?r12g2g3g4 - 20790?r12g22g5 + 1575fcrng42 +
2520g1-11g3g5 -1260g1-11g2gб -36g1-10g7_
B9A(g) = -27027Qgr14g25 + 27720Qgr13g23g3 -46200?1-12g2g32 -34650?Г^22g4 +
4200g1-11g3g4 + 2520g1-11g2g5 -84gr10gб_
B9,5(g) = 51975g1-13g24 -34650g1-12g22g3 + 2100g1-11g32 + 3150^2g4 -126gr10g5_
B9,6(g) = -6930g1-12g23 + 2520g1-11g2g3 -126g1-10g4_
B9J (g) = 630g1-11g22 -84g1-10g3_
B98( g) = -36g1-10g 2_
B98( g) = g1^
те дифференцирования исходного полинома и деления его на переменную Е ;
- constructюnOfBPoПnomial - построение спецификации полинома Б (Е) на основе заданных значений п и к;
- constructюnOfBPoHnomialMatrix - построение матрицы, состоящей из п строк спецификаций полиномов Б к (Е), на основе заданного значения п.
Пример 2. В результате тестирования разработанного программно-алгоритмического комплекса была получена матрица полиномов для значений п < 8, к < п, которые по своему явному виду полностью совпадают с В-полиномами, представленными в [3].
Также были получены следующие В-полиномы в явном виде для п = 9, к < п (табл. 1).
Заключение
Использование программно-алгоритмического комплекса позволяет автоматизировать процедуру построения матриц В-полиномов, представленных в явном виде, которые затем могут быть использованы для вычисления характеристик дискретных распределений.
Алгоритмы, входящие в состав разработан-
ного комплекса, направлены на экономичное использование вычислительных ресурсов ЭВМ. Это достигается за счет применения метода рекуррентных соотношений и динамической структуры для хранения данных.
Представление алгебраических преобразований полиномов в виде операций над их спецификациями дает возможность разработки дополнительных методов программно-алгоритмического комплекса, предназначенных для построения комбинаторных полиномов других видов.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Бланшет Ж., Саммерфилд М. Qt 4: Программирование GUI на C++. 2-е доп. изд. М. : КУДИЦ-ПРЕСС, 2008.
2. Кузьмин О. В. Обобщенные пирамиды Паскаля и их приложения. Новосибирск : Наука, 2000.
3. Кузьмин О. В. Комбинаторные методы моделирования дискретных распределений : учеб. пособие. Иркутск : Изд-во Иркут. ун-та, 2006.
4. Балагура А. А., Кузьмин О. В. Перечислительные свойства комбинаторных полиномов разбиений // Дискретный анализ и исследование операций. 2011. Т. 18. № 1. С. 3-14.
5. Платонов М. Л. Обращение формулы Бруно // Исследования по геомагнетизму, аэрономии и физике Солнца. Вып. 35. М. : Наука, 1975. С. 32-38.
6. Трофимов И. Л., Стенников В. А. Способ представления и обработки статистической информации по тепловым электростанциям России // Современные технологии. Системный анализ. Моделирование, 2012. № 3 (35). С. 104-108.
УДК 531.3:681.5.01:658.5 Гозбенко Валерий Ерофеевич,
д. т. н., профессор, кафедра «Математика», Иркутский государственный университет путей сообщения, тел. (3952) 638-357, e-mail: [email protected] Каргапольцев Сергей Константинович, д. т. н., профессор, проректор по научной работе, Иркутский государственный университет путей сообщения, тел. (3952) 638-304, e-mail: [email protected] Банина Нина Валериевна, к. т. н., доцент, кафедра «Математика», Иркутский государственный университет путей сообщения, тел. (3952) 638-357, e-mail: e-mail : [email protected] Ахмадеева Алла Абдулваровна, аспирант, Иркутский государственный университет путей сообщения тел. (3952) 638-357, e-mail: [email protected]
МОДЕЛИРОВАНИЕ КОЛЕБАНИЙ ПОДВИЖНОГО СОСТАВА
ЖЕЛЕЗНЫХ ДОРОГ
V.E. Gozbenko, S.K. Kargapolcev, N. V. Banina, A.A. Akhmadeeva
TRANSPORT SYSTEMS OSCILLATIONS MODELLING
Аннотация. Рассматриваются подходы к решению задач математического моделирования транспортных объектов. Предложенный подход, основанный на методах структурной декомпозиции объектов и выборе исходных моделей, отражающих основные энергетические и динамические свойства объектов, позволил получить соотношения, позволяющие оценить снижение амплитуды колебаний и режим полного гашения колебаний. Данный подход можно рассматривать как методологию развития процесса усложнения исходных моделей от одномерных к многомерным с редукцией до задач пространственной виброзащиты и виброизоляции.
Ключевые слова: моделирование, виброзащита, транспортная система, динамические свойства, кинематическое возмущение, амплитуда, кинетическая энергия, потенциальная энергия.
Abstract. Approaches to solving a problem of transport installations mathematical modeling are observed. The suggested approach based on methods of structural decomposition of installations and sampling of initial models, reflecting the basic power and dynamic properties of installations has allowed to gain the relationships, allowing to size up decrease of an amplitude of oscillation and a regime offull clearing of oscillations. The given approach can be ob-
served as methodology of developing the process of initial models thickening from one-dimensional to many-dimensional with a reduction to problems of space vibroprotection and vibration insulations.
Keywords: modelling, vibroprotection, transport system, dynamic properties, kinematic perturbation, amplitude, kinetic energy, potential energy.
Введение
При моделировании транспортной системы, состоящей из отдельных элементов, связанных определенным образом между собой, существенным вопросом является выбор базовой структуры. Так, например, механической моделью вертикальных колебаний рельсового экипажа может служить механическая колебательная система с десятью степенями свободы, представленная на рис. 1 [1].
В качестве обобщенных координат приняты: вертикальные перемещения (подпрыгивания) кузова zz и тележек zn и zr2 ; углы поворотов при продольной качке (галопирования) кузова ф ^ и тележек ф Г1 и ф^Г2 ; вертикальные перемещения букс соответствующих колесных пар Zj, z2, z3, z4. c и c2 жесткости соответствующих рессор.