Дьяконов В.П. Maple 9.5 и 10 в математике, физике и образовании (1185901), страница 57
Текст из файла (страница 57)
Решение задач линейной алгебры, олтимизации и регрессии > м!1, з1; > м12,31; лгзэ Обратите внимание на последние примеры — они показывают вызов индексированных переменных вектора и матрицы. 6.2.4. Работа с векторами и матрицами Для работы с векторами и матрицами Мар!е имеет множество функций, входящих в пакет !!па!а. Ограничимся приведением краткого описания наиболее распространенных функций этой категории.
Операции со структурой отдельного вектора У и матрицы М: ° со1бип(М) — возвращает число столбцов матрицы М; ° гоччб1гп(М) — возвращает число строк матрицы М; ° чес1б)гп(Ч) — возвращает размер вектора Ч; ° со1(М,!) — возвращает 1-й столбец матрицы М; ° гочч(М,1) — возвращает ~'-ю строку матрицы М; ° гп)пог(М,1,!) — возвращает минор матрицы М для элемента с индексами 1 и!; ° бе1со!з(М,Ц) — удаляет столбцы матрицы М от (-го до г'-го; ° бе!гочгз(Н,1..)) — удаляет строки матрицы М от (-й доьй; ° ехтепб(М,гп,п,х) — расширяет матрицу М на гп строк и и столбцов с применением заполнителя х.
Основные векторные и матричные операции: ° бо1ргоб(ЦН) — возвращает скалярное произведение векторов 0 и Ч; ° сгоззргоб(!),Н) — возвращает векторное произведение векторов 0 и Ч; ° попп(Ч) или попп(М) — возвращает норму вектора или матрицы; ° сору!п1о(А,В,Ц) — копирует матрицу А в В для элементов последовательно от ! до 1; ° сопса1(М1,М2) — возвращает объединенную матрицу с горизонтааьным слиянием матриц М1 и М2; ° з1асх(М1,М2) — возвращает объединенную матрицу с вертикальным слиянием М1 и М2; ° гпа!абб(А,В) и еча!п~(А+В) — возвращает сумму матриц А и В; ° гпц11!р1у(А,В) и еча)п~(А8*В) — возвращает произведение матриц А и В; ° аб)о(п1(М) или аб!(М) — возвращает присоединенную матрицу, такую, что М аб)(М) дает диагональную матрицу, определитель которой есть бе1(М); ° спагро)у(М,1агпЬба) — возвращает характеристический полином матрицы М относительно заданной переменной 1атЬба: ° бе1(М) — возвращает детерминант (определитель) матрицы М; ° Е(оепча1з(М,чес1ог) — инертная форма функции, возвращающей собственные значения матрицы М и (при указании необязательного параметра чес1ог) соответствующие им собственные векторы; ° )огбап(М) — возвращает матрицу М в форме Жордана; ° Пеггпйе(М) — возвращает матрицу М в эрмитовой форме; ° !гасе(М) — возвращает след матрицы М; ° гапК(М) — возвращает ранг матрицы М; ° 1гапзрозе(М) — возвращает транспонированную матрицу М: ° 1пчегзе(М) или еча1гп(1/М) — возвращает матрицу, обратную к М; ° з)пдц1агча!з(А) — возвращает сингулярные значения массива или матрицы А.
399 6.2. Пакет линейной алгебра ИлаЯ~ системы Приведем примеры применения некоторых из этих функпий (Файл 1!па18ор): > Мс=еасгсх(2,2, (а,Ь,с,с)!); > ггаоароае(М)< [ь ш] > 1оссегае(М); -ас(+Ьс -ос[+ Ьс -ай+Ьс -ос(+Ьс > с)ес(М! ' ас[ -Ьс > гас)с(М) с > Ггасе(М); > Мс=спасгух(2, 2, [1, 2, 3, 41) > есс:=ена1С(Е1цеосса1а(М,Ч))) ею:= 1-.372281323, 5372281323! > ееа1(Ч)) с -.8245648401 -.42222915041 .5657674650 †.9230523142] > снагро1у(М,р)) р2 -5р-2 > 5огс)ас(М) с — + — ~/33 30 2 2 0 5 )Л33 2 2 > Лс= аггау< [[1,0,1), [1,0,1), [0,1,0!! ) о~о] 400 Глава б. Решение задач линейной алгебры„оитимизации и регрессии > а1пяп1ахна1а(А) [О, 2, 1[ В приведенных примерах полезно обратить внимание на то, что многие матричные функции способны выдавать результаты вычислений в аналитическом виде, что облегчает разбор выполняемых ими операций.
6.2.5. Решение систем линейных уравнений > ю1сь(11па1о): > С: ва( схх (3, 3, [ [4, В, 21, [б, 2, 3], [3, 7, 111 1) ) с:-[ 4 8 2 б 2 3 3 7 !1 > В:=вапх1х(3, 1, [5, б, 11) в:=[ > А:=ена1в(С) А:-[ > А1: =сорузппо (В, С, 1, 1) 5 8 2 6 2 3 7 11 > с: =ена1в (А): А2: =сор уапсо (В, С, 1, 2); 4 5 2 А2:=б б 3 3 ! !1 > с: ена1в(А):АЗ:=сорузпсо (В,С, 1, 3) ( 4 8 5 АЗ:= 6 2 6 3 7!1 Одной из самых распространенных задач линейной алгебры является решение систем линейных уравнений.
Ниже представлен простой пример составления и рещения трех систем линейных уравнений с применением функций, входящих в пакет!)па)д [файл 51е): 6.2. Пакет линейной алгебры Бна(д системы > х1:=бее (А1) /с)ее (А) х/:=— 419 380 > х2: г)ее (А2) /оее(А); х2:=— 3 20 > хз:=бее(АЗ) /бег (А] -29 хЗ:=— 95 А теперь рассмотрим пример решения матричного уравнения в символьном виде: > А:=еаегьх(2,2, [а,Ъ,с,о]) ( > В:=чесгог(2,[с,г)])ю 8:=]с, (/] > Х:=11оео1че(А.В! Х. Д(-Ь-) -Д -1 Ьс-Иа Ьс-(/а] Следующий пример показывает решение более сложной системы линейных уравнений с комплексными коэффициентами: > А:-ваег[х(2, 2, [[10+200*1, -200*1], [-200*1, 170*1]]): ] 10 + 200 / -200 /1 †2 / 170 I ~ > В:=чесеог(2,[5,0]) 8:=]5, 0] > Х: пи1хьр1у (ьочегее (А), В) Р Х:=~ — + — /, + — / Г 289 510 ! 70 600 17778 3889 3889 3889 > 0[часе:=5: сосчеге(еча1(Х),г1оаГ); ].037156 +.131!4 /, .043713 +.15428 /] На этот раз решение получено использованием функций умножения матриц и вычисления обратной матрицы в виде Х = А ' В, то есть в матричном виде.
В конце примера показано преобразование результатов с целью их получения в обычной форме комоде~ сных чисел с частями, представленными в форме чисел с плавающей точкой. виг,глава о г еи)ение зииач линеинои а))георы, оптимизации и регрессии 6.2.6. Визуализация матриц Как видно из описанного, многие вычисления имеют результаты, представляемые в форме матриц. Иногда такие результаты можно наглядно представить графически, например, в виде гистограммы.
Она представляет собой множество столбцов квадратного сечения, расположенных на плоскости. образованной осями строк (гои! и столбцов (со!шпп) матрицы. При этом высота столбцов определяется содержимым ячеек матрицы. Такое построение обеспечивает графическая функция п)а1пхр1о1 из пакета р!о1в. На рис. б.! показано совместное применение этой функции с двумя функциями пакета !)па!о, формирующими две специальные матрицы А и В.
ттт Етг тв 1 вт вв» т лт б лав )оЯ%1в)в) [Яф] )а) ] ')тДтДЯ Я,) 1Ча Д Я г Д])а)вЗ т т > гввгагт вго,(о1втв) . «)ь))нат1я): лвт пв, тлв г п вт«в вввтв ввтв и тт л л вв. пвтт в в /гт т а 1 б.З. Работа с лакетом ИлеагА1дебга а алеооильиами А[Аб 40.3 на больших ЭВМ и суперкомпьютерах, обеспечивая ускорение численных матричных операций от нескольких раз до нескольких десятков раз.
Их применение обеспечивает эффективное использование систем символьной математики в решении задач, сводящихся к задачам линейной алгебры. В числе таких задач многочисленные задачи теоретической электротехники, механики многих объектов, моделирования электронных устройств и т. д. В Мар1е 9.5/!О использование алгоритмов )ЧАС реализуется пакетом ] ]пеагА]- деЬга. Для его загрузки используются следующие команды (файл 1ЧАС): > гевеагег ш1ГЬ (щоеагй1веЬга): > ьиго1еше1[ъзоеагй1ЧеЬга]:=1; и[/о(езе~~„„зл, .
'= ! Многие функции этого пакета (их большой список опушен) повторяет по назначению функции более старого пакета йпа1д, описанного выше. Поэтому мы не будем останавливаться на их повторном описании. Главное то, что эти функции задействуют возможности быстрых алгоритмов ]шАС и, в отличие от функции пакета йпа!д, ориентированы на численные расчеты в том формате обработки вещественных чисел, который характерен для применяемой компьютерной платформы. Знающий матричные методы читатель легко поймет назначение функций пакета ЫпеагА]деЬга по их составным названиям. Например, Ое]е!еСо!цп]п означает удаление столбца матрицы, Тоер!1[2Ма!пх означает создание матрицы Теплица, 2егоМа!пх — создание матрицы с нулевыми элементами и т.
д. Все имена функций этого пакета начинаются с заглавной буквы. 6.3.2. Примеры матричных операций с применением пакета !.1пеагА1деЬга Применение алгоритмов Ь[АО особенно эффективно в том случае, когда используется встроенная в современные микропроцессоры арифметика чисел с плавающей запятой. С помощью специального флага такую арифметику можно отключать или включать: Ф иве вогтшаге г1оаев > цвеиагошагеЕ1оаев :- га1ве: УзеНопЬюаге Г!оогз: = майе $ с[егаи1г Ьеьазъоиг > озенагс[шагег1оагв := ггое[ ЮзеНопБчагейоогз: = ггие Матрицы в новом пакете линейной алгебры могут задаваться в угловых скобках, как показано ниже: > Н1:=«112>,<415»; Н2:=«112.>,<4]5»; 404 Глава 6. Решение задач линейной алгебры, оптимизации и регрессии После этого можно выполнять с ними типовые матричные операции. Например, можно инвертировать [обращать) матрицы: > м1" (-1); м2" (-1): -5 2 3 3 4 -1 3 3 маггьх1пчегае: "са11гпч ехгегпа1 гппсг1оп" Масгьх1пчегае: "Нйб" )>м г87аог Масгьх1пчегае: "Ийс" Ье г07а]г с -1.66666666666666652 .66666666666666630 1 !.33333333333333326 -.3333333333333333!53 Обратите внимание, что Мар!е теперь выдает информационные сообщения о новых условиях реализации операции инвертирования матриц с вещественными элементами и, в частности, об использовании алгоритмов НАС и арифметики, встроенной в сопроцессор.
Следующий пример иллюстрирует создание двух случайных матриц М1 и М2 и затем их умножение: > м1г=вапоо~пиагг1х(2,3) 7 м2: Вапоооиагг1х(3, 3) ( Мо1Г1р1у(М1,М2,'1пр1асе')ю М1; м~:-[ -50 62 -7]~ 30 -79 28 ~ с 2570 4246 18541 160! 1358 3570 3 с -2570 4246 -1854 160! 1358 3570 м:-[ 14. -8. 1. -!! . -4. 18. 3. ! 2. 19. Параметр [пр1асе в функции умножения обеспечивает помещение результата умножения матриц на место исходной матрицы М1 — излюбленный прием создателей быстрых матричных алгоритмов НАС. Поскольку матрицы М1 и М2 заданы как случайные, то при повторении этого примера результаты, естественно, будут иными, чем приведенные.
Другой пример иллюстрирует проведение хорошо известной операции ] [.]-разложения над матрицей М, созданной функцией Ма[пх: > м:=маггзх( [ [14,-8, 1], [-11,-4, 18], [3, 12,19) ], оагагуре=11оаг); ьооесоероааг1оп (м, опгрог= [ ' вайо' ], 1пр1асе); 1ргч:=4[1]; м; 6.3. Работа е пакетом ИпеагА!дебга и алгоритмами !УАС гцоесовроввгаоп: "са11гп9 ехгегпа1 гопсгаоп" Ьцоесоеров1Г>оп: "Ыао" Ье г07аог 14.
-8 1. .2142857142857!4274 13.7!42857142857!36 18.7857!42857142848 †.785714285714285698 †.750000000000000000 32.8750000000000000 3] (рл: = 14. -8 1. .2!4285714285714274 !3.7142857142857!36 18.7857142857!42848 †.785714285714285698 -.750000000000000000 32.8750000000000000 6.3.3. Методы решения систем линейных уравнений средствами пакета 1.1певгА!деЬга 6.3.4. Решение системы линейных уравнений методом 1.Ц-декомпозиции Зададим матрицу А левой части системы уравнений и вектор свободных членов В: > гевгаггг евгп(11пеагв19еьга): цвенагоеагег1оагв := га1ве: > в:=«4!.241-.08>,<.09!3! †.15>,<.04!†.08!4»у В:=<8,9,20>; 4 0.24 -0.08 0.09 3 -О.! 5 0.04 -0.08 4 8 9 20 Конечной целью большинства матричных операций является решение систем линейных уравнений.