- •Р.М.Літнарович, ю.Г.Лотюк комп’ютерна алгебра навчально-методичний посібник
- •© Літнарович р.М., Лотюк ю.Г.,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 Інші види підгруп
Тепер покажемо, як знайти стабілізатор деякого елементу множини, на якій діє група підстановок. Як видно з наступного прикладу, стабілізатором одиниці є підгрупа близько 2520 і індексу 8, породжена п'ятьма підстановками:
gap> stab:= Stabilizer( a8, 1 ); Group([ (2,4,3), (3,5,4), (3,4)(5,6), (2,7,5,4,3), (2,8,6,5,4) ]) gap> Size(stab); 2520 gap> Index(a8,stab); 8
За допомогою функції Random отримаємо випадковий елемент з a8:
gap> x:=random( a8 ); (1,5,8,2,4)(3,6,7)
Нові підгрупи можуть бути тепер отримані шляхом пошуку його централізатора, а потім комбінацій сполучення і перетину вже відомих підгруп.
gap> x:=random(a8); (1,5,8,2,4)(3,6,7) gap> cent:=centralizer(a8,x); Group([ (3,6,7), (1,2,5,4,8) ]) gap> Size(cent); 15 gap> conj:= Conjugatesubgroup( cent (2,3,4) ); Group([ (4,6,7), (1,3,5,2,8) ]) gap> inter:= Intersection( cent, conj ); Group(())
У наступному прикладі ми обчислимо підгрупу групи a8, потім її нормалізатор і у результаті визначимо структуру факторгруппи. Спочатку створимо елементарну абельову підгрупу близько 8:
gap> elab := Group( (1,2)(3,4)(5,6)(7,8), (1,3)(2,4)(5,7)(6,8), > (1,5)(2,6)(3,7)(4,8) );; gap> Size( elab ); 8 gap> Iselementaryabelian( elab ); true
Тепер привласнимо їй ім'я і обчислимо її нормалізатор:
gap> Setname( elab, "2^3" ); elab; 2^3 gap> norm := Normalizer( a8, elab );; Size( norm ); 1344
4.5 Факторгруппи
Тепер ми маємо підгрупу norm близько 1344 і її підгрупу elab, і бажаний побудувати факторгруппу. Оскільки ми також жедаєм знайти прообрази елементів факторгруппи в norm, нам також знадобиться природний гомоморфізм з norm у факторгруппу з ядром elab.
gap> hom := Naturalhomomorphismbynormalsubgroup( norm, elab ); <action epimorphism> gap> f := Image( hom ); Group([ (), (), (), (4,5)(6,7), (4,6)(5,7), (2,3)(6,7), (2,4)(3,5), (1,2)(5,6) ]) gap> Size( f ); 168
Отримана факторгруппа f також є групою підстановок. Проте множина, на якій вона діє, не має нічого спільного з множиною крапок, на якому діє norm (це просто збіг, що обидві множини є підмножинами безлічі натуральних чисел). Тепер ми можемо знайти образи і прообрази щодо природного гомоморфізму. Безліч прообразів елементу є суміжним класом по підгрупі elab. Ми використовуємо функцію Preimages, оскільки hom не є взаємно однозначним відображенням.
gap> ker:= Kernel( hom ); 2^3 gap> x := (1,8,3,5,7,6,2);; Image( hom, x ); (1,7,5,6,2,3,4) gap> coset := Preimages( hom, last ); Rightcoset(2^3(2,8,6,7,3,4,5))
Відмітьте, що GAP може вибирати будь-який з представників суміжного класу прообразів. Звичайно ж, приватне двох представників одного суміжного класу лежить в ядрі гомоморфізму:
gap> rep:= Representative( coset ); (2,8,6,7,3,4,5) gap> x * rep^-1 in ker; true
Факторгруппа f є простою групою, тобто вона не має нетривіальних нормальних підгруп:
gap> Issimple( f ); true
Група norm діє на 8 елементах своєї нормальної підгрупи elab за допомогою сполучення, що приводить до представлення групи f в S8, що залишає нерухомою тільки крапку 1. Образ цього уявлення може бути обчислений за допомогою функції Action; більш того, він навіть содежітся в групі norm, і ми можемо показати, що norm насправді є расщепімим розширенням елементарної абельовой групи elab за допомогою групи f.
gap> op := Action( norm, elab ); Group([ (), (), (), (5,6)(7,8), (5,7)(6,8), (3,4)(7,8), (3,5)(4,6), (2,3)(6,7) ]) gap> Issubgroup( a8, op ); Issubgroup( norm, op ); true true gap> Istrivial( Intersection( elab, op )); true
Примітка. Не можна використовувати знак "<" замість Issubgroup. Так, не приводить до помилки команда:
gap> elab < a8; false
Оператор же рівності "=" фактично перевіряє рівність груп. 4.6 Класи зв'язаних елементів
Іншим джерелом інформації про групу a8 буде її розбиття на класи зв'язаних елементів. Отримаємо список класів зв'язаності:
gap> ccl:=conjugacyclasses(a8); [ ()^G, (1,2)(3,4)^G, (1,2)(3,4)(5,6)(7,8)^G, (1,2,3)^G, (1,2,3)(4,5)(6,7)^G, (1,2,3)(4,5,6)^G, (1,2,3,4)(5,6)^G, (1,2,3,4)(5,6,7,8)^G, (1,2,3,4,5)^G, (1,2,3,4,5)(6,7,8)^G, (1,2,3,4,5)(6,8,7)^G, (1,2,3,4,5,6)(7,8)^G, (1,2,3,4,5,6,7)^G, (1,2,3,4,5,6,8)^G ] gap> Length(last); 14
Тепер визначимо порядки представників класів зв'язаності, узявши в кожному класі по одному представникові:
gap> reps:= List( ccl, Representative ); [ (), (1,2)(3,4), (1,2)(3,4)(5,6)(7,8), (1,2,3), (1,2,3)(4,5)(6,7), (1,2,3)(4,5,6), (1,2,3,4)(5,6), (1,2,3,4)(5,6,7,8), (1,2,3,4,5), (1,2,3,4,5)(6,7,8), (1,2,3,4,5)(6,8,7), (1,2,3,4,5,6)(7,8), (1,2,3,4,5,6,7), (1,2,3,4,5,6,8) ] gap> List( reps, r -> Order( r )); [ 1, 2, 2, 3, 6, 3, 4, 4, 5, 15, 15, 6, 7, 7 ]
Визначимо, скільки елементів міститься в кожному класі:
gap> List(ccl,size); [ 1, 210, 105, 112, 1680, 1120, 2520, 1260, 1344, 1344, 1344, 3360, 2880, 2880 ]
Примітка: слід розрізняти функції Order (порядок елементу), Size (порядок групи, класу зв'язаності і тому подібне) і Length (довжина списку).
Побудувавши класи зв'язаних елементів, ми можемо розглядати їх функції, тобто відображення, що набувають однакових значень на всьому класі зв'язаних елементів. Прикладом може бути число нерухомих крапок:
gap> nrfixedpoints:= function( perm, support ) > return Number( [1 .. support], x -> x^perm = x); > end; function( perm, support )... end
Обчислимо його для групи a8:
gap> permchar1:= List(reps, x->nrfixedpoints(x,8)); [ 8, 4, 0, 5, 1, 2, 2, 0, 3, 0, 0, 0, 1, 1 ]
[Попередній розділ <file:///d:\ Комп'ютерна%20алгебра\metgap43\3-data.htm> ][Зміст <file:///d:\ Комп'ютерна%20алгебра\metgap43\metgap43.htm> ][Наступний розділ <file:///d:\ Комп'ютерна%20алгебра\metgap43\refs.htm> ]