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> ]
СПИСОК ЛІТЕРАТУРИ, ЩО РЕКОМЕНДУЄТЬСЯ
1. The GAP Group <file:///d:\ Комп'ютерна%20алгебра\metgap43\tppmsgs\msgs0.htm>, GAP --- Groups, Algorithms, and Programming, Version 4.3; 2002. (http://www. gap-system. org <file:///d:\ Комп'ютерна%20алгебра\metgap43\tppmsgs\msgs0.htm>)
2. Ван дер Варден б. Л. Алгебра. - М., Наука, 19с.
3. Каргаполов м. І., Мерзляков ю. І. Основи теорії груп. - М., Наука, 19с.
4. Коновалов а. Б. Система комп'ютерної алгебри GAP. Методичні вказівки. Запоріжжя: Запорізький державний університет, 19с. ( http://www. zsu. /ppages/konoval/papers/MetodGAP. htm <file:///d:\ Комп'ютерна%20алгебра\metgap43\tppmsgs\msgs0.htm> )
5. Кострікин а. І. Введення в алгебру. - М., Наука, 19с.
6. Курош а. Г. Теорія груп. - М., Наука, 19с.
7. Українська група користувачів GAP.- http://ukrgap. *****/ <file:///d:\ Комп'ютерна%20алгебра\metgap43\tppmsgs\msgs0.htm>.
8. Теорія груп. - М., Видавництво іноземної літератури, 19с.
[Попередній розділ <file:///d:\ Комп'ютерна%20алгебра\metgap43\4-groups. htm> ][Зміст <file:///d:\ Комп'ютерна%20алгебра\metgap43\metgap43.htm> ][Наступний розділ <file:///d:\ Комп'ютерна%20алгебра\metgap43\a-prog. htm> ]
[Попередній розділ <file:///d:\ Комп'ютерна%20алгебра\metgap43\refs. htm> ][Зміст <file:///d:\ Комп'ютерна%20алгебра\metgap43\metgap43.htm> ][Наступний розділ <file:///d:\ Комп'ютерна%20алгебра\metgap43\b-funct. htm> ]
ДОДАТОК А
Рекомендації по створенню і запуску програм в системі GAP
GAP дозволяє не тільки проводити обчислення в інтерактивному режимі, але і зберігати програми для подальшого їх застосування. Програми створюються і зберігаються у форматі текстових файлів (яким зазвичай привласнюють розширення "g"), і редагуються за допомогою будь-якого текстового редактора.
Як правило, програма складається з головної частини і набору функцій. При читанні програми (за допомогою команди Read) команди, що містяться в головній частині, виконуються безпосередньо, а функції тільки задаються, і роблять можливим подальше звернення до них. У разі синтаксичних помилок при читанні файлу з програмою будуть видані відповідні повідомлення.
При розробці програм зручно одночасно запускати:
- GAP;
- текстовий редактор, в якому відкрита програма, що розробляється;
- засіб проглядання HTML-файлов (наприклад, Internet Explorer або Netscape Navigator) для читання опису GAP в гіпертекстовому форматі (початковий файл - Gap\htm\index.htm).
Крім того, якщо потрібно оформити у вигляді програми послідовність команд, яка була введена в ході роботи з системою в діалоговому режимі, то це зручно зробити, редагуючи файл протоколу, який для цього має бути вже відкритий на початок введення цих команд, за допомогою команди
Logto("file.log");
Приклад: скласти програму, яка визначає, чи є група G кінцевою р-группой для деякого р, і повертає список, перший елемент якого - true або false залежно від результату перевірки, а другий - відповідне значення р, якщо G - p-группа, і false - інакше.
1. Створюємо за допомогою текстового редактора файл "prog.g" наступного змісту:
Print(" Loading Isfinitepgroup()", "\n");
Isfinitepgroup:=function(G)
local divisors; # список простих дільників
if Isfinite(G)=false then
return [false, false];
else
divisors:=set(Factors(Size(G)));
if Length(divisors)=1 then
return [true, divisors[1]];
else
return [false, false];
fi;
fi;
end;
2. Зберігаємо цей файл в каталозі, вибраному з урахуванням рекомендацій параграфа 1.2.
3. Запустимо GAP і визначимо файл протоколу log.txt:
gap> Logto("log.txt");
Тепер задамо групу діедра близько 8:
gap> G:=dihedralgroup(8);
<pc group of size 8 with 3 generators>
Спробуємо звернутися до функції з файлу prog.g:
gap> Isfinitepgroup(G);
Error, Variable: 'Isfinitepgroup' must have а value
Помилка викликана тим, що для використання функції цей файл спочатку необхідно прочитати. При цьому, якщо він містить синтаксичні помилки, то будуть видані повідомлення про них. Читання проводиться командою Read:
gap> Read("prog.g");
Loading Isfinitepgroup()
Помилки виявлені не були. Було видано повідомлення, включене для зручності у файл prog.g.
Тепер перевіримо роботу програми для групи діедра близько 8, а також для симетричної групи S8.
gap> Isfinitepgroup(G);
[ true, 2 ]
gap> H:=symmetricgroup(8);
Sym( [ 1 .. 8 ] )
gap> Isfinitepgroup(H);
[ false, false ]
Очевидно, що програма працює коректно.
[Попередній розділ <file:///d:\ Комп'ютерна%20алгебра\metgap43\refs. htm> ][Зміст <file:///d:\ Комп'ютерна%20алгебра\metgap43\metgap43.htm> ][Наступний розділ <file:///d:\ Комп'ютерна%20алгебра\metgap43\b-funct. htm> ] |
[Попередній розділ <file:///d:\ Комп'ютерна%20алгебра\metgap43\a-prog. htm> ][Зміст <file:///d:\ Комп'ютерна%20алгебра\metgap43\metgap43.htm> ][Наступний розділ <file:///d:\ Комп'ютерна%20алгебра\metgap43\c-labrab. htm>]
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |


