Back to site

CMAT

CMAT з'яўляецца матрыца праграмы калькулятар, напісаны на мове C.

Разлікі могуць быць выкананы на матрыца з комплекснымі рацыянальнымі каэфіцыентамі з дапамогай дакладных працэдур арыфметыкі, а таксама на матрыцы з элементамі мод з Ёсць Unix, DOS і Windows XP версіі.
Для запуску пад Windows2000 + з акна DOS, карыстальнік павінен спачатку загрузіць DOS эмулятар з http://dosbox.sourceforge.net/.

Unix, DOS і Windows XP версіі, разам з крыніцай З, могуць быць запампаваны.
Людзі, якія выкарыстоўваюць версіі UNIX павінны стварыць. Cmatrc файл у працоўны каталог, які складаецца з дзвюх ліній

datpath=.
cmat=.
(Гл. таксама раздзел cmat_bugfix.html для паведамленні аб памылцы.)

Ёсць тры калькулятара праграм у рамках CMAT: CMATR, CMATCR і CMATM.
CMATR працы над полем рацыянальных лікаў, CMATCR работ полем комплексных рацыянальных і CMATM працуе над полем з р элементаў, дзе р-любое простае менш за 2 16 = 65536.

Праграм выкарыстоўваць некалькі арыфметычных дакладнасці працэдуры заснаваныя на тых, хто [ Fla ] [342-357,175-185]. (Гл. дакументацыю ).

Да M0 (= 1930) аб'ектаў кожнага тыпу могуць быць створаны і захаваны для выкарыстання ў наступных сесіях.

(rational) numbers: R[0],...,R[M0-1];
(rational) matrices: RM[0],...,RM[M0-1];
polynomials (rational): PR[0],...,PR[M0-1];
polynomial (rational) matrices: PRM[0],...,PRM[M0-1];
(complex rational) numbers CR[0],...,CR[M0-1];
(complex rational) matrices CRM[0],...,CRM[M0-1];
polynomials (complex rational): PCR[0],...,PCR[M0-1];
polynomial (complex rational) matrices: PCRM[0],...,PCRM[M0-1];
(mod p) matrices: mM[0],...,mM[M0-1];
polynomials (mod p): Pm[0],...,Pm[M0-1];
polynomial (mod p) matrices: PmM[0],...,PmM[M0-1].
Праграма можа апрацоўваць цэлыя адвольнага памеру. Памер матрыцы абмяжоўваецца толькі час, неабходнае для стварэння матрыцы ў пытанне, і для разліку з ім. Выкананне раз значна менш пры разліку з мода матрыц з

Рацыянальны / комплекс / MOD P колькаснага ROUTINES AVAILABLE.

Спалучэнне, складанне, адніманне, множанне, узвядзенне ў ступень, стаўленне і зваротныя. Таксама м-й ступені з рацыянальных можа быць вылічаная на зададзеную колькасць знакаў пасля коскі.

Паліномны ROUTINES AVAILABLE.

Складанне, адніманне, множанне, скалярны множанне, узвядзенне ў ступень, вытворнай, ацэнкі, фактар, рэшта, найбольшы агульны дзельнік, выказаўшы Нод ў выглядзе лінейнай камбінацыі паліномаў удзел, свабодных ад квадратаў раскладання. Выніковая двух паліномаў над ? [X] і дискриминант палінома над ? [X] можа быць знойдзена. Існуе модульнага ўзвядзення ў ступень для мод паліномаў стар

Берлекэмпа матрыца квадратаў Палінай па модулі р (Нашы Берлекэмпа матрыца транспонированная звычайна Берлекэмпа матрыцы.) Раскладанні паліномаў з рацыянальнымі, комплекс рацыянальных або мода р каэфіцыенты на непрыводнае. Пошук непрыводных паліном зададзенай ступені па модулю р Пошук й кругавой паліном. (MOD р)

MATRIX ROUTINES AVAILABLE.

  1. Складанне, адмаўленьне, комплексна-спалучанае Транспанаванне, множаньне на скаляр, множанне матрыц, узвядзенне ў ступень, Кронекера прадукту, ацэнкі матрычных паліномаў на квадратнай матрыцы.
  2. Стандартных элементарных радкоў і слупкоў аперацыі могуць быць выкананы па ўсіх відах матрыц.
  3. Элементы захоўваюцца матрыцы могуць быць зменены, альбо індывідуальна, альбо радкі або слупкі. Адной радкі або слупкі можа быць выдалены.
  4. Адной радкі або слупкі вектар можа быць абраны з захоўваюцца матрыцы. У больш агульным плане, подматрицы захоўваюцца матрыцы можа быць сфарміравана шляхам выбару подсемейства радкоў або Стоўбцаў адпаведна.
  5. Дзве матрыцы могуць быць злучаныя па радках або слупках. Секционированной матрыцы [| i] можа быць створана ад А. матрыца можа быць разгорнута ў вектар-слупок (працэс карысным для знаходжання мінімальнага палінома матрыцы).
  6. Фарміраванне матрыцы-ці, для выкарыстання ва ўласных разліках.
  7. Стварэнне спецыяльных матрыц, такіх як адзінкавая матрыца, элементарных матрыц Іарданіі і кампаньён матрыц, а таксама ленточных матрыц.
  8. Стварэнне матрыцы скаляр якога (Ij)-га элемента з'яўляюцца простыя арыфметычныя выразы, такія як I + J - я ^ 2 + 3 * /, для лічнік і назоўнік, можа быць, цалкам створаная ў рамках CMAT.
  9. Пошук зваротная, спалучаны, вызначальнік, характарыстычных паліном і мінімальны паліном матрыцы скаляр, P -1 AP. Раскладанне Холецкого станоўча пэўная матрыца знаходзіцца: = L * DL, дзе L з'яўляецца верхняй трохкутнай і блок D з'яўляецца дыяганальнай матрыцай. Выйсце ёсць дыяганальныя элементы D па дыяганалі і вышэй яе дыяганальных элементаў, належаць Л.
    Зваротнай матрыцы М М мод цэлых лікаў можна знайсці, калі т> 1 натуральны лік, узаемна просты з вызначальнікам М.
  10. Пошук адноўленай форме радкі эшалона, рашэнні лінейных раўнанняў, знаходжання базы для нуль-прасторы N (A) і слупкоў-прасторы З (А) матрыцы A. Гэтыя працэдуры з'яўляюцца вельмі карыснымі ў алгарытмы для знаходжання жордановой форме, ці, больш агульна, рацыянальнае кананічны выгляд квадратнай матрыцы. (Гл. [ паперы ].)
  11. Разлік скалярнага творы, даўжыня і выкарыстання Шміта працэс, каб знайсці артаганальны базіс для слупка-прасторы матрыцы. Пошук крос-твор вектар-радка (N - 1) ХП матрыца.
  12. Пошук вызначальнік і спалучаны матрыца з паліномны запісаў.
  13. Пошук Сміт кананічная форма матрыцы з паліномны элементамі. (Напрыклад, пры ўжыванні да матрыцы B = XI -, дзе з'яўляецца матрыца з рацыянальнымі або комплексу рацыянальных запісаў, гэта дае падабенства інварыянт, у прыватнасці, мы атрымліваем мінімальны паліном як інварыянт вышэйшай ступені.)
    Мы таксама атрымліваем паліномны матрыц P і Q, якога дэтэрмінанты пастаяннай паліномаў, з тым уласцівасцю, што PBQ знаходзіцца ў кананічнай форме Сміта.
  14. Элементарныя радок / слупок аперацый для матрыц з паліномны запісаў.
  15. Друк матрыц рацыянальных лікаў у файл або на экран, з дакладнасцю да зададзенага ліку дзесятковых знакаў.
  16. Перадача дадзеных па лініі-прынтэр.
  17. Файл R (& Le M0-J), падрыхтаваны матрыц такога ж тыпу (рацыянальнае, з якая плавае кропкай, комплексныя рацыянальныя або модульных) могуць быць уведзеныя ў масіў пазіцый J /... + г-1.

RUNNING CMAT.

Пасля ўводу cmat, карыстальнік цяпер можа спусціцца праз розныя ўзроўні, выбраўшы з двух варыянтаў экране. Каб падняцца праз розныя ўзроўні, тыпу Q, калі гэта варыянт. Пры выхадзе з праграмы, карыстач атрымлівае магчымасць захаваць дадзеныя для паўторнага выкарыстання ў наступных сесіях.

Вылічэнні з CMAT.

Каб увесці рацыянальнае лік і захоўваць лік, R [0], напрыклад, выбраць адпаведны пункт меню і тыпу N 0.

УВАГА: Выкарыстоўвайце Control-H, а не клавішу вяртання, у забой больш сімвалаў.

Цэлыя лікі ўводзяцца, як звычайна, а нецелых рацыянальных лікаў ўводзяцца з касой рысай, як цэлае / натуральны лік: напрыклад, 1 / 2, а комплексныя ліку з ненулявой ўяўнай часткі павінен заканчвацца я: напрыклад 1/2I ўяўляе (1 / 2) i. Няма дужкі, якія будуць выкарыстоўвацца пры ўводзе нумары. Рацыянальныя лікі выводзяцца ў 'малодшыя члены "з станоўчым назоўнікам.

Некаторыя шыраты дапускаецца ў дачыненні да адлегласці. Напрыклад, выраз 1-я, 1 - я, 1 - я ўяўляю ж комплекс рацыянальных, а 1-я уяўляе два лікі 1 і-я.

Матрыцы ўводзяцца радок за радком, канец радка адзначаецца на вяртанне карэткі. Прасторы асобных элементаў радка. Увайшоўшы матрыц RM [0] і Р. М. [1], прадукт RM [0] * RM [1] адпраўляецца ў РМ [2] (напрыклад) або RM [0], Р. М. [1]), выбраўшы варыянт множання Т з меню ніжэй, і увёўшы Т 0 1 2.

	Rational Matrix Arithmetic
	------------------------------------
	a j k l : RM[j] + RM[k] -> RM[l]
	t j k l : RM[j] * RM[k] -> RM[l]
	s j k l : RM[j] - RM[k] -> RM[l]
	m j k  :    -RM[j] -> RM[k]
	f j k l : R[j](RM[k]) -> RM[l] (scalar multiple)
	* j k  :   (RM[j])* -> RM[k] (transpose)
	e n j k : RM[j] ^ n  -> RM[k] (exponentiation)
	z j k l : RM[j] - R[k]I -> RM[l]
	p    : print numbers and matrices
	x    : to enter data
	q    : to exit
			------------------------------------
	
Каб спыніць увод паліном або матрыцу з клавіятуры, тыпу Q ці не літарна-лічбавых знакаў пры ўводзе каэфіцыента. Змаўчанні паліном або матрыцы затым захоўваецца.

Для разліку 10-м ўлады РМ [0], выберыце опцыю электроннай ўзвядзення ў ступень з вышэй меню, набраўшы E Кастрычніцкай 0 3 да накіраваць выснова ў РМ [3]. Сітуацыя некалькі прасцей з модульнымі арыфметычныя разлікі. Тут няма нумары захоўваюцца і неадмоўныя ліку менш адпаведнага модуля ўводзяцца непасрэдна, а не захоўваюцца. Напрыклад, каб памножыць матрыцу мм [0], 5 (Mod 7) і захаваць вынік як мм [1], абярыце адпаведны пункт меню з меню лініі

	f,j k l p :j * (mM[k]) -> mM[l](mod p)(scalar multiple)
	
і тыпу F мая 0 1 7.

Важна памятаць, што пры выкарыстанні модульнай раздзеле арыфметыка CMAT, аперацыі павінны ажыццяўляцца толькі на захоўваемых аб'ектаў, якія маюць той жа модуль.

Каб спыніць увод заўчасна пасля ўводу першай літары меню, тыпу Q варта RETURN.

Нарэшце, на ўваход файл R (Le & M0-J), падрыхтаваны матрыцы аднаго і таго ж тыпу (рацыянальныя, з якая плавае кропкай, комплексныя рацыянальныя або модульныя) у масіў пазіцый J /... + г-1, першая радок файл павінен утрымліваць лік матрыц; наступная радок складаецца з радка і нумар слупка першай матрыцы, а затым адпаведныя радкі матрыцы. Напрыклад, наступны файл уяўляе сабой дзве матрыцы рацыянальных лікаў, 3 х 3 матрыцы вынікаюць 2 х 2-матрыца:

/* rational matrix file */
2
3 3
2/3 5 -7/8
1/2 12 -5
7 6 4
2 2
1 0
0 1

Каментары на алгарытмы, якія выкарыстоўваюцца ў CMAT

Спасылкі

ПАЦВЯРДЖЭННЕ

Я ўдзячны за гэтыя гады за дапамогу ў выпраўленні памылак і паляпшэння распрацоўкі праграм шчодра дае Майкл Форбс (у першыя гады), Пітэр Адамс і Шон Викери.

Электронная пошта
http://www.numbertheory.org/keith.html

Апошняе змяненне 6 мая 2011Popular Links

Published (Last edited): May 6 , source: http://www.numbertheory.org/cmat/krm_cmat.html