Матросов А.В. Maple 6. Решение задач высшей математики и механики (1185909), страница 33
Текст из файла (страница 33)
-.111022302462515654 1О" -.555111512312578272 1О " 1. > М:=Маггах(5, (Ь, 3) ->3'з.-3); 2 1 0 -1 -2 5 4 3 2 1 8 7 6 5 4 11 !0 9 8 7 14 13 12 11 1О () Выбор элемента матрицы 7 > М[3,21; 4 Выбор третьей строки [8, 7,6, 5,41 > М[3,1..-1) > 4 Выбор второго столбца > М[1..-1,2]~ 10 () Выбор блока размерности 2хз > М[2..3,2..41; [4 1 2~ Присваивание новых значений элементам матрицы также осуществляется с помощью индексов, причем и здесь можно использовать диапазон.
Главное, чтобы размерность матрицы в левой части оператора присваивания соответствовала размерности матрицы в правой части. Возможности выбора и присваивания значений целым строкам или столбцам используется для осуществления операций со строками или столбцами матрицы. > М:=Мабгтх(3, (Ь, 5) ->4*5+3-5) 1 2 3 6 7 8 1[' 12' 13 Для выделения элементов матрицы и ее подматриц используется индексная запись, причем в качестве индекса можно применять диапазон, что позво- ляет выделять целые блоки исходной матрицы: Глава 3, Пакеты > М[[1,2],1..-1]: И[[2,1],1..-1]; [] Перестановка местами строк 1 и 2 [6 7 8[ н,г],1 > М[3, 1..-1] := 3*М[3, 1..-1]> З Умножение строки 3 на число 3 Мз - [33' 36 39] 6 7 8 ! 2 3 33 36 39 > М[3,1..-1] := М[3,1..-1] -16*И[2,]..-1]; [] Вычитание ив строки 3 Ф строки 2, умноженной на 16 М...:= [ ! 7, 4, -9 ! > М Все перечисленные операции можно выполнять с помошью команд пакета ььненги.о ьгн, которые рекомендуется использовать при программировании в Мар[е, хотя и допустимо их использование при интерактивной работе.
Неполный список команд допустимых операций над матрицами и векторами приведен в табл. 3.3. Таблица З.З. Команды выполнения операций нвд матрицами и векторами Название команды Описание Пе1есеаон Пе1есеСс1нин Со1сип Зн]аяасг1х аньчесгог Вса1агМи1Г1р1у МасгьхЧесеогин1Ггр1у Удаление строки матрицы Удаление столбца матрицы Выделение строки матрицы Выделение строки матрицы Выделение подматрицы из заданной матрицы Выделение подвектора из заданного вектора Умножение матрицы/вектора на скаляр Скалярное произведение матрицы на вектор-столбец Часть! Основы Мар)е УВО таблица З.З (окончание) Название команды Списание уес С с тМат х1хМи11 гр1у Мат сгхнатт1хтМп111ргу Скалярное произведение матрицы на матрицу Замечание Получить полную информацию о всех перечисленных в табл.
3.3 командах можно на страницах справки по каждой из команд, которые отображаются по- сле выполнения команды тных команды. 3.2.2.3. Решение систем линейных уравнений В пакет 11пеьтл1сеьха, как и в пакет зьпа1д, входит специальная команда еесэс1 и решения систем линейных алгебраических уравнений. В отличие от своего двойника 11пзс1 е ~ ) ИЗ ПаКЕта 11па1с В ЭтОй командЕ можно указать способ, которым следует решать систему, но аналогично своему двойнику она требует задания системы уравнений в матричной форме, т. е.
в качестве параметров ей передаются матрица л системы и вектор правых частей ь. Сама система в матричной форме записывается в виде л. х=ь. Общий синтаксис команды ьгпес сзогте [ ~ следующий: тьпеасзс1тебч В, сч С, с, 1р, спесртз~ > Здесь параметр л представляет матрицу системы, а параметр в — ее левую часть, причем в может задаваться как в аиде вектора, так и в виде матрицы. В последнем случае за одно обращение к команде решения системы линейных уравнений будет решаться множество систем с правыми частями, представленными векторами — столбцами матрицы в. Параметр в можно и не задавать, передавая в качестве первого параметра расширенную матрицу системы <ив>. Размерности матрицы решения согласовываются с размерностями матриц правой и левой частей уравнения.
Если матрица системы л имеет размерность ихп, и правая часть представлена матрицей ихр, то результатом будет матрица размерности пхр, столбцы которой будут являться решениями соответствующих систем. Маттгх1пуедзе Эететхппапс М1псд Сспс111спнстдЬех Е1септа1пез Е Чептесьохз Скалярное произведение вектора-строки на матрицу Вычисление обратной матрицы Вычисление определителя матрицы Выделение миноров матрицы Вычисление числа обусловленности матрицы Вычисление собственных значений матрицы Вычисление собственных векторов Глава 3.
Пакеты Необязательный параметр и задается в форме уравнения песьос~=имя, где выбирается из следующего списка: осле', 'ео1те, 'аиьа', сьс1ееху, ьо, 'ов', 'зратаеьц и определяет метод решения системы уравнений. Параметр с, который также необязателен, определяет базовое имя перемен- ной в форме гтее=тмл, которое используется для конструирования имен па- раметров в случае, если исходная система линейных уравнений имеет мно- жество решений. Необязательным параметром с в форме уравнения ссс1счас =стсетге зе оп- ределяется, следует ли строить эрмитову сопряженную матрицу при исполь- зовании метода Холецкого или ЯК-декомпозиции. Решим следующую систему уравнений -[ 8 46] методом Ш-декомпозиции. Это можно сделать за одно обращение к коман- де шоеегво1чен или по шагам: сначала осуществить Ш-разложение матри- цы системы, а потом построить решение.
Параметр зо задается в виде зср1асе=стсе,'га1ее и определяет, помещать ли решение в вектор или матрицу в, или формировать новый объект лля решеНИя. ЗНаЧЕНИЕ ПО уМОЛЧаНИЮ Га1ае. Последним параметром сссорсе задаются опции сссрсссрс осе, предоставляющие дополнительную информацию конструктору решения (неизменяемая матрица, тип, математические атрибуты и т.
д.). Несколько примеров решения систем линейных уравнений с помощью команд пакета шлеетл1деЬта ПОМОГУТ освоитьсЯ в его использовании. Следует сказать, что пакет позволяет использовать для числовых матриц с вещественными числами в форме с плавающей точкой либо программную эмуляцию вычислений с вещественными числами с произвольным числом значащих цифр в мантиссе, либо использовать вещественную арифметику процессора, что, естественно, приводит к увеличению скорости вычислений и особенно эффективно при работе с большими числовыми системами линейных уравнений и числовыми матрицами больших размерностей.
При использовании любой из двух реализаций вычислений с вещественными числами для выполнения необходимых действий подключаются откомпилированные программы из пакета численных вычислений НАС. Выбор соответствующей арифметики Мар!е осуществляет автоматически, но можно и явно указать, какую из них использовать, задав значение стсе системной переменной цаенатсь е сег1сата для использования арифметики процессора и га1ае — в противном случае. В примерах этого раздела мы везде подразумеваем, что используется программная эмуляция арифметики чисел с плаваюШсй тОЧКОй, т. Е. цаепатсъ атеГ1оаеа=та1ае. Часть ! Основы Мар!е 182 Решение за одно обращение представлено в примере 3,10 > н1СЬ)Ь1пеах))1де)>та): Бвенате)на те Г1оа хе: = Га1в е 4 с191бв:=30: !7ееоате)4еатеГ!оа)е;=7а!ее > М:=«0)3)1>,<7)-13)-2>,<1)2)4»4 !)4:= 7 -13 -2 > ч:=<5.84,-Я.45,13.11>! -8.46~ > х := 51аеахзо1ее)М, Ч, техаса=')Л')! х := 1 1аеатяо1ее(<М)Ч>, тетЬае)='ЫН ) !.64999999999999999999999999999 1Л8999999999999999999999999999 2.27000000000000000000000000002 !.64999999999999999999999999999 1.18999999999999999999999999999 2.27000000000000000000000000002 =[ > М.х-ч) !вам 4 !Оав О.
Пример 3.!О демонстрирует, что можно увеличить при использовании программной змуляции арифметики действительных чисел с плавающей точкой точность вычислений, установив необходимое количество цифр в мантиссе в системной переменной о191св. В нем же показано два способа задания уравнения в команде ьгаеахяо1те(): через передачу в нее матрицы системы и вектора правой части посредством двух параметров и в виде одного параметра, представляющего расширенную матрицу системы. Последний оператор примера осуществляет проверку полученного решения. Как видим, результат вычитания левой и правой частей 'практически равен нулевому вектору, что говорит об истинности полученного решения. Пошаговое решение той же системы методом декомпозиции представлено в примере 3.11.
)ВЗ Глава 3. /7ахепз > Р, Ь, Ш =ЬПРесотроя111оо (М) 0 0 0 1 0 1 9 1 7 7 > Ч2:=ттаоярозе(Р).Ч( > чзо=вотеатояоьятттите(ь,ч2) с -8.46000000000000000000000000000 5.84000000000000000000000000000 6.8!000000000000000000000000005 (с, чз) ( 1.64999999999999999999999999999 1.18999999999999999999999999999 2.27000000000000000000000000002 > х:=ваохеатояоьзт1тите Сначала обращением к команде ьппесо роз1т1оо(), единственным параметром которой является матрица системы м, получается ее разложение на три матрицы: Р, ь и и, причем матрица Р представляет собой матрицу перестановок, а матрицы ь и и являются, соответственно, нижней и верхней диагональной. Таким образом, нашу систему можно записать в виде Р.ь.щ =ч.
Так как Р— матрица перестановок, то ее обратная матрица равняется транспонированной. Умножив и левую, и правую части уравнения на матрнцу, ОбратНуЮ Р (ВЫЧИСЛястея КОМаНдОй ттаоярояе(Р) ), НаШа СИСтЕМа ПрЕ- образуется к виду ь. ()=Ч2, где вектор чг есть произведение транспонированной матрицы Р на вектор правой части уравнения. Так как матрица ь является нижней диагональной, то можно найти вектор чз, удовлетворяющий системе ьлз=ч2, простой последовательной подстановкой вперед: первый элемент вектора выражается сразу же из первого уравнения указанной системы, затем его значение подставляется во второе уравнение и находится значение второго компонента вектора решения чз ит.д.