Говорухин В., Цибулин Б. Компьютер в математическом исследовании (1185927), страница 26
Текст из файла (страница 26)
Например: > Г:-Матг1х(3адаре-апывупаетг1с): > Г[2.3]:-а: Г[1.2]:-Ь; Г[1.3];-с: Г: В следующем примере используем обращение к команде пакета [1оеагА1 деЬга как к элементу модуля: > [~пеагА1деЬгаг-До115расе(Г); В Мар]е реализованы практически все алгоритмы приведения матриц к различным специальным формам, Так, для приведения матрицы М к жордановой форме используются команды 1тпа1д[]огоап](М) и [г пеагА1деЬга[]огг)алрогв)](М).
Результатом вызова команды даэззе1)в)(М) будет матрица, приведенная к треугольному виду Применить к матрице М алгоритм гауссова исключения без деления можно коман'- дой ггдаэззе11в)(М). Команда приведения матрицы М к треугольному виду при помощи алгоритма Гаусса — Жордана называется даозз]ог(). Последние три команды входят в пакет Ила[д. Чтобы получить Эрмитову форму матрицы М, элементы которой зависят от переменной х, нужно обратиться к команде 1)па1д[пегпп Се] (М. х) или [(пеа гА1 деЬга [Нега( ЬеГого)] (М, х). Приведем примеры: > С:-аггау(1.,3.1..3,[[а.ь,с],[1,2.3].[х.у.гП); > С)оеагА1деЬга[неге!Ьегоов](соочегт(С,натг~х).х): ЗЬ вЂ” 2с 2а-Ь За — с О 1 2а-Ь -Ьх+с +Зах-2сх-За +ЗЬх ЗЬ-2с > 11па1д[даивв]ого](С); [,] > 11па1д[ГГдвовве11в](С): а с О 2а-Ь За-с О О 2ха-хЬ-2хс-Зуа+ус+ЗхЬ Линейная алгебра 137 Отметим, что для работы с символьными матрицами команда ггдааээе1)а предпо- чтительнее других, поскольку не производит нормировку элементов и исключает возможные ошибки, связанные с делением на нуль.
Кроме того, в пакете [(пеагА[деЬга есть команды ЫОесовроз11(оп и ОВРесоа)роз)1! оп, которые реализуют [О и О(( преобразования соответственно. Результатом работы этих команд является набор матриц. Пример: > ГГ:-Магг!х([[1.2.33,[1,а,73.[2,6.933): > (ООесаароиюоп(ГЕ), 1 О О 1 1 О 2 2 — 1 1 а-2 [ з->~ [о ~ о~ Следующая группа команд позволяет изучать векторное пространство, порождаемое матрицей М. Так, для определения размерности векторного пространства, порожденного столбцами матрицы в пакете Ила(д, используется команда со1эрасе(М), а соответствующая команда для строк называется гонэрасе(М). Результатом работы этих команд являются векторы, задаю!цие базис пространства.
Аналогичные команды пакета [[пеагА(деЬга называются Со1 ипп5расе(М) и йон5расе(М). Например: > Гчп: (П))->х"!/у"3; В: пи1г! х(2,3,(чп): х у' х у х у х у х у 2 у > 1(па19[со1арасе](В), ([1,х) ) > [!пеагл1деьга[по>5расе](сапчегг(В,Магг(х)); Е'4Я1 Для решения систем линейных уравнений в пакете Ипа[д имеются команды, отличные от команды эо1че из стандартной библиотеки. Решение системы линейных алгебраических уравнений Мх-В, где М вЂ” матрица, а  — вектор или матрица правых частей, находится командами 11пзо1 че(М, В) или 1еазтзпгэ(М, В) (метод наименьших квадратов). Аналогичные команды пакета ПпеагА[деЬга называются соответственно [)пеаг5о1 че и [еаз15ооа гек Приведем пример решения системы линейных уравнений: > СС:-аггау(1..3.1..3,[[х.д,у].[х,у,д],[у,д.х]3); > ч:-аггау( 1..3.[1.
1, 1] ): > 11па)д[1!пао1че](СС. ч): В заключение приведем некоторые команды пакета Ипа[д для работы с полиномами и уравнениями: 138 Глава б. Алгебра в Иар(е О зу1чезтег(ро1 1, ро1 2. х) — вычисление матрицы Сильвестра для полиномов ро1 1 и ро1 2, зависящих от переменной х; о Ьегоьт(ро11. ро1 2. х) — формирование матрицы Безу двух полиномов; О деппнт г1 х(едпз, чагз ) — формирование матрицы системы для набора уравнений еопз по переменным чагз. Векторный анализ Теперь перейдем к векторным операциям.
Нормировать вектор ч можно при помогли команды поппа112е(ч) пакета йпа1д или команды Мопьа112е(ч.р) пакета Е[пеагА[деЬга, где параметр р задает вид нормы. Например: > Иьгаа))ге(<1)О[З>.Еос1~0еап); — ЧПоо, о, — ч() о ] 1 3 10 ' '1О > Иогпа11ге(<1[0[3>,1пр1асе); [3' ' ] Чтобы вычислить угол между двумя векторами ч и и, нужно выполнить команду 11па1д[апд1 е] ( ч. Ь) или Е1пеагА1 деЬга [ЧестогЯпд1е] (и, ч). При помощи команды Вгав5спл)1ПЬ ([ч!.ч2, .
]) можносформироватьортогональный базисвекторногопространства, генерируемого линейно-независимыми числовыми векторами ч, ч2, ... . Команда Ьаз13([ч1.ч2,...чх]) пакета йпа[д определяет базис для набора векторов ч), ч2, ..., чх. В пакете 0 пеагА1деЬга существуют три команды для определения базиса векторного пространства: даю з( ( [ч1, ч2,... чХ] ) — базис векторов, 5ипоаз1з( Ч5)— базис прямой суммы наборов векторов Ч5, 1птегзес(1опВаз13(Ч5) — базис пересечения наборов векторов Ч5. Приведем иллюстрирующий некоторые из этих команд пример: > ютщ(1пеагЯ)деьга): ч1:-<1[2[3>: ч2:-<-1~2[3>: > чЗ." 11[12[13>: ч4:- 1)1[1>: Ьам-Вамь([ч),ч2,чз,ч4)). Ьаа х> [[1, 2, 3), [-1, 2, 3), [11,!2, 13]] > Огаа5спюст(Ьаз); ' У 7]'( ' 3' 13 > 1птегзест)опВаи 4(кч1.
ч2), [чЗ. ч4П); [[1,2,3[] Скалярное произведение двух векторов и и ч вычисляется командами И па1д[оотргоо](и,ч) и Е)пеагЯ1деЬга[оотрго()ьст](и.ч), а векторное произведение — командами 11па1д[сговаргоо] (о. ч) и Е1пеагА1деЬга[СгоззРго()исг](и. ч). Для вычисления нормы векторов и матриц используются команды 11па1 д[попп] (М, погтппап)е) и [1 пеагя1 деЬга [Могикн.оогитуре). В качестве параметра погл)пал)е может фигурировать 1, 2, "1пт! п1ту" или "тгоЬеп4ЬЗ", а параметра попптуре — положительное целое, 1пт)п)ту, Еос11оеап или РгоЬеп1 ьз. Приведем примеры: > ю 11па1д[сгоааргье)((а,ь.с),(е,е.т)): ю: [ЬГ - с а, с <( - ат( а а - Ь <4] Преобразования в операторной форне 139 > з!ар111у(1(па19[соьрго»](и.(а.ь.с))); ии:-$: (а) Ь|-(а) се+((Ь) с»-(Ь) ау+(с) ае — (с) Ь» Обратим внимание на то, что в результате упрощения смешанного произведения с двумя одинаковыми векторами не получилось нуля.
Это объясняется тем, что Мар!е по умолчанию считает все математические переменные комплексными, а в этом случае искомое выражение не равно нулю. Теперь определим все переменные в выражении действительными при помощи команды азььае и снова упростим выражение: > вззияе(а.геа1): аззчпе(Ь,геа1); аззчпе(с.геа1); > 51ар1зту(ии): 0 Перейдем к дифференциальным операторам векторного анализа пакета йпа[д.
Чтобы вычислить градиент скалярной функции т, зависящей от переменных х, нужно выполнить команду дгз(](г. х). Дивергенцию векторной функции г, зависящей от переменных х, можно получить при помощи команды (]1 чегде(г. Г). Например: > Г:-х"2+у"2+11п(г): 9гп:-9гва(Г,(х,у,г]): яг»;= [2 х, 2 у, соз(г ) ] > й чег9е(9г».(х,у.г]): 4 — Мп(г) И еще три команды для важных дифференциальных операторов: О сьг1(ч, х) — вычисление ротора трехмерного вектора ч по трем переменным х; О 1ар!ас1ап(т, х) — вычисление лапласиана функции т по переменным х; сз дасоЬ)ап(ч, х) — вычисление матрицы Якоби для вектора ч по переменным х.
Дадим примеры использования этих команд; > счг1(дга.[х,у,г]): [0,0,0] > 1др1дс~ап(1,[х,у.з)): 4 — Б!п(г) > ЬасоЬ1дп(9г»,(х,улП: с 2 0 0 0 2 0 0 0 -йп( г.) преобразования в операторной форме В Мар]е можно определять абстрактные, не заданные явно математические операторы н работать с ними. Для определения оператора и его свойств используется команда пег(пе: Се[(пе (орег, ргорегту1.
ргорегту2, ...) Здесь орег — имя оператора, ргорег(у[, ргореггу2;... — его свойства, в качестве которых могут фигурировать уравнения, определяющие правила действия операто- 14хх Глава б. Алгебра е Мар(е ра или зарезервированные служебные слова (аззос1 ас1че, соппцсат1че, 1)пеаг, лв1 т1- 11пеа г, ог((ег1езз, Е) ат, 1((епт1 ту, 2ЕГО, ()1 ЕЕ). Добавление свойств для уже определенного оператора осуществляется командой пег(пещоге (орег, ргарегсу). ргсрегсу2, ...) Теперь рассмотрим параметры и способы задания абстрактных операторов. С вомощью уравнений определяются действия, производимые оператором, или специальные значения, которые оператор может принимать для входных данных специального вида.
При описании действий можно определять также тип переменных оператора. Пример; > аег!пе(р,р(П(1;:1птедег"х::а!деьга1с), П(3::1п(едег*х::а1деЬга)с))-П((1+3)*х)>щ (1-3)>х)); > р(М2>х),П(378*х)): Щ 380 х) + Ц-37б х) Описатель 1! пеа г означает то, что оператор линеен по первой переменной, а в случае описателя ео1Г11(пеаг оператор принимается линейным по всем переменным. Привелем пример определения линейных операторов: > еег)пЕ(д,! 1пеаг,д( 1)-5): > 9(З*(-2); 38(()-28 > еЕЕ(пе(г,еч!Г1!1пеаг,Е(-Ь::а!деЬга(с,а::а1деЬга1с)--Е(Ь.а)): > Е(-а>с.Ы; -Е(а,ь)+Е(с Ы > Е(а-с,-Ь.а): -Е(а, Ы+Е(а, а)+ Е(с.
Ы Е(с а) > Е(д(а-2), -9(а+Ы): -Е(8(а), 8(а) ) - Е(8(а), 8(Ы) + 2 Е(Ю, 8(а) ) + 2 Е(Я, 8(Ы) Описатель аззос(ат(че или его синоним Е1 ат означает, что оператор является ассоциативным, то есть Е(х,Е(у,г)) - Е(Е(х,у),х) - Е(х,у,х). Пример: > пег(пе(а.аззос1ат1че); а(х,а(у).а(а(а(х)))); а(х,у,х) Если в описании оператора присутствует огбег1езз, то порядок аргументов во внимание не принимается.
Пример: > еег(пе(ь,огеег!еае): > ща,Ы-П(Ь,а): О С помощью описателя хего можно определить нуль оператора, а обратный к описываемому оператор задается с помощью параметра 1пчегзе. Пример: > аеЕ1пе("ач",1пчегзе-д,хего.у): > ач 9(у): ач тс У О Преобразование а операторной форме а41 Описатель Оттт предназначен для определения производной оператора. Например: > Оет1пе(рА1тт(р(х).х)-ц). 01 Гт(01)ах',х): ц! > 1пыр(х),х); 1 1 хр(х)--х ц 2 Отметим, что при выполнении команд свойства операторов проверяются в порядке их определения командами Оег1пе и Оет) пеа)о ге.