- •Р.М.Літнарович, ю.Г.Лотюк комп’ютерна алгебра навчально-методичний посібник
- •© Літнарович р.М., Лотюк ю.Г.,2010 р.
- •1. Програма нормативної дисципліни
- •2. Мета та завдання дисципліни,
- •3. Формування практичних навичків
- •4. Зміст дисципліни
- •4.1.Лекції, найменування тем за їх змістом
- •6.Перелік питань до заліку
- •7.Науково-дослідна робота студентів
- •8. Літературні джерела
- •9.Розподіл балів за один змістовий модуль, присвоюваних студентам
- •10.Шкала оцінювання:
- •11.Зміни та доповнення ,внесені в робочу програму на 201__ рік
- •12.Оцінка навчальної діяльності студента
- •2. Лекційний курс Лекція 1. (2 год.)
- •1.1 Коротка характеристика gap
- •1.2 Можливості для роботи з різними видами об'єктів алгебри
- •1.3 Приклади простих обчислень
- •2 Мова програмування gap
- •2.1 Символи і категорії слів в gap
- •2.2 Ключові слова
- •2.3 Ідентифікатори
- •2.4 Вирази
- •2.5 Звернення до функцій
- •2.6 Порівняння виразів
- •2.7 Арифметичні оператори
- •2.8 Привласнення
- •2.9 Виклик процедури
- •2.10 Команда if
- •2.11 Цикл while
- •2.12 Цикл repeat
- •2.13 Цикл for
- •2.14 Функції
- •3 Структури даних
- •3.1 Константи і оператори
- •3.2 Змінні і привласнення
- •3.3 Функції
- •3.4 Списки
- •3.5 Тотожність і рівність списків
- •3.6 Множини
- •3.7 Вектори і матриці
- •3.8 Записи
- •3.9 Арифметичні прогресії
- •3.10 Використання циклів
- •3.11 Подальші операції із списками
- •3.12 Функції
- •4 Операції над групами і їх елементами
- •4.1 Завдання групи підстановок
- •4.2 Завдання підгрупи групи підстановок
- •4.3 Прості властивості групи. Силовськие підгрупи.
- •4.4 Інші види підгруп
- •4.5 Факторгруппи
- •Список літератури, що рекомендується
- •Додаток а Рекомендації по створенню і запуску програм в системі gap
- •1. Створюємо за допомогою текстового редактора файл "prog.G" наступного змісту:
- •2. Зберігаємо цей файл в каталозі, вибраному з урахуванням рекомендацій параграфа 1.2.
- •3. Запустимо gap і визначимо файл протоколу log.Txt:
- •Лабораторна робота № 1. Основи роботи з системою gap в Windows
- •Лабораторна робота № 2 Списки. Цілі числа
- •Завдання для лабораторної роботи № 2
- •Лабораторна робота № 3. Лінійні програми. Вектори і матриці
- •Завдання для лабораторної роботи № 3
- •Лабораторна робота № 4. Програми, що гілкуються. Многочлени
- •Лабораторна робота № 5. Циклічні програми (цикл for). Бінарні відносини
- •Лабораторна робота № 6. Циклічні програми (цикл while). Підстановки
- •Лабораторна робота № 7. Циклічні програми (цикл repeat). Групи підстановок
- •Завдання для лабораторної роботи № 7
- •Лабораторна робота № 8. Вивчення властивостей елементів групи
- •Завдання для лабораторної роботи № 7
- •Лабораторна робота № 9. Вивчення властивостей підгруп групи.
- •Завдання для лабораторної роботи № 9.
- •Лабораторна робота № 10. Робота з бібліотекою кінцевих груп
- •Додаткові завдання
- •33027 Рівне , Україна
4 Операції над групами і їх елементами
4.1 Завдання групи підстановок
Даний розділ присвячений операціям над групами і їх елементами. Визначення і необхідні теоретичні відомості можуть бути знайдені в [2, 3, 5, 6, 8]. Приведені нижче приклади використовують групи підстановок, але більшість використовуваних в них функцій (в т.ч. Group, Size, Sylowsubgroup ) застосовуються і до інших використовуваних в GAP видам груп, для кожного з яких обчислення проводяться по спеціальному алгоритму.
Задамо групу підстановок, яка породжується (записаними у вигляді твору незалежних циклів) підстановками (1 2) і (1 2 3 4 5 6 7 8). Ця група є не що інше, як симетрична група S8:
gap> s8:= Group( (1,2), (1,2,3,4,5,6,7,8) ); Group( (1,2), (1,2,3,4,5,6,7,8) )
4.2 Завдання підгрупи групи підстановок
Група S8 містить знакозмінну групу A8, яка може бути задана як підгрупа, що складається з парних підстановок, або як її коммутант:
gap> a8 := Derivedsubgroup( s8 ); Group([ (1,2,3), (2,3,4), (2,4)(3,5), (2,6,4), (2,4)(5,7), (2,8,6,4)(3,5) ])
Якщо звернення до об'єкту відбувається часто, зручно привласнити йому ім'я. В цьому випадку при наступних зверненнях до об'єкту замість його уявлення виводитиметься на друк його ім'я:
gap> Setname(a8,"a8"); gap> a8; A8
Не дивлячись на відсутність зв'язку між ім'ям і ідентифікатором, їх бажано вибирати погоджено.
4.3 Прості властивості групи. Силовськие підгрупи.
Вивчимо групу a8. Вона є об'єктом, список відомих властивостей і атрибутів якого можна отримати таким чином:
gap> Knownpropertiesofobject(a8); [ "Isfinite", "Caneasilycompareelements", "Caneasilysortelements", "Isduplicatefree", "Isgeneratorsofmagmawithinverses", "Isassociative", "Isfinitelygeneratedgroup", "Issubsetlocallyfinitegroup", "Knowshowtodecompose", "Ischaintypegroup", "Isstabchainviachainsubgroup" ] gap> Knownattributesofobject(a8); [ "Name", "Oneimmutable", "Largestmovedpoint", "Parentattr", "Generatorsofmagmawithinverses", "Multiplicativeneutralelement", "Stabchainmutable", "Stabchainoptions" ]
Цей список може розширюватися в процесі роботи з об'єктом, оскільки багато функцій зберігають інформацію про нього в нових атрибутах і властивостях, що дозволяє ефективно уникати повторних обчислень.
Наприклад, знайдемо порядок групи. Видно, що швидкість його повторного визначення істотно нижча, оскільки замість його обчислення просто виводиться на друк його вже збережене значення.
gap> Size( a8 ); 20160 gap> time; 63 gap> Size( a8 ); 20160 gap> time; 4
Тепер перевіримо, чи є група абельовой і досконалою:
gap> Isabelian( a8 ); Isperfect( a8 ); false true
Порівняємо тепер список відомих властивостей і атрибутів з первинним і побачимо, що додалися до них нові:
gap> Knownpropertiesofobject(a8); [ "Isempty", "Istrivial", "Isnontrivial", "Isfinite", "Caneasilycompareelements", "Caneasilysortelements", "Isduplicatefree", "Isgeneratorsofmagmawithinverses", "Isassociative", "Iscommutative", "Isfinitelygeneratedgroup", "Issubsetlocallyfinitegroup", "Knowshowtodecompose", "Isperfectgroup", "Ischaintypegroup", "Isstabchainviachainsubgroup" ] gap> Knownattributesofobject(a8); [ "Name", "Size", "Oneimmutable", "Largestmovedpoint", "Parentattr", "Generatorsofmagmawithinverses", "Trivialsubmagmawithone", "Multiplicativeneutralelement", "Derivedsubgroup", "Stabchainmutable", "Stabchainoptions" ]
Тепер отримаємо список простих дільників порядку групи:
gap> Set( Factors( Size( a8 ))); [ 2, 3, 5, 7 ]
Для кожного з простих дільників p обчислимо силовськую p-подгруппу і надрукуємо її порядок:
gap> for p in last do > Print(p " - ", Size(Sylowsubgroup(a8,p)),"\n"); > od; 2 - 64 3 - 9 5 - 5 7 - 7
Досліджуємо силовськую 2-подгруппу. Позначимо її syl2:
gap> syl2:=sylowsubgroup(a8,2); Group([ (1,8)(5,7), (2,6)(5,7), (3,4)(5,7), (3,5)(4,7), (1,2)(6,8), (1,3)(2,5)(4,8)(6,7) ])
Тепер обчислимо її нормалізатор в a8:
gap> Normalizer( a8, syl2 ); Group([ (1,8)(3,4), (2,6)(3,4), (3,4)(5,7), (3,7)(4,5), (1,6)(2,8), (1,7)(2,4)(3,6)(5,8) ])
Перевіримо, що він збігається з нею самою:
gap> last = syl2; true
Обчислимо центр підгрупи syl2:
gap> Centre(syl2); Group([ (1,8)(2,6)(3,4)(5,7) ])
Знайдемо централізатор cent останньої підгрупи в a8, тобто підгрупу елементів а8, перестановочних з кожним елементом центру групи syl2:
gap> cent:= Centralizer( a8, last ); Group([ (3,4)(5,7), (3,5)(4,7), (2,3)(4,6), (1,2)(6,8) ])
Знайдемо його порядок:
gap> Size( cent ); 192
Обчислимо ряд коммутантов cent:
gap> Derivedseries(cent); [ Group([ (3,5)(4,7), (2,5,3)(4,6,7), (1,3)(2,5)(4,8)(6,7), (1,2)(3,5)(4,7)(6,8), (3,4)(5,7), (2,6)(3,4), (1,8)(2,6)(3,4)(5,7) ]), Group([ (2,5,3)(4,6,7), (1,3)(2,5)(4,8)(6,7), (1,2)(3,5)(4,7)(6,8), (3,4)(5,7), (2,6)(3,4), (1,8)(2,6)(3,4)(5,7) ]), Group([ (1,3)(2,5)(4,8)(6,7), (1,2)(3,5)(4,7)(6,8), (3,4)(5,7), (2,6)(3,4), (1,8)(2,6)(3,4)(5,7) ]), Group([ (1,8)(2,6)(3,4)(5,7) ]), Group(())]
Останній елемент отриманого списку - тривіальна підгрупа, тому cent - вирішувана група.
Порядки підгруп, що входять в ряд коммутантов (похідний ряд) зручно отримати таким чином:
gap> List( last, Size ); [ 192, 96, 32, 2, 1 ]
Обчислимо тепер нижній центральний ряд групи cent:
gap> Lowercentralseries(cent); [ Group([ (3,4)(5,7), (3,5)(4,7), (2,3)(4,6), (1,2)(6,8) ]), Group([ (2,5,3)(4,6,7), (1,3)(2,5)(4,8)(6,7), (1,2)(3,5)(4,7)(6,8), (3,4)(5,7), (2,6)(3,4), (1,8)(2,6)(3,4)(5,7) ])]