Прохоров Г.В., Леденев М.А., Колбеев В.В. Пакет символьных вычислений Maple V (1185912), страница 4
Текст из файла (страница 4)
2б Глава 4 Вычитание: > (а,Ь) ппппв (Ь,с); (а) Принадлежность элементов 'а' и 'соз' множеству зе[1: > гоетЬег(а,вег1); > пгегоЬег(соа,вег1); Генерация последовательности 'р' и множества 1.: > р:=вефх,х=1..4); р--1,2,3,4 > Е:= (яе4(уЯ,!=1..4)); ( 3' 4' 1' 2)' Добавление элемента к множеству 12 > Е:= (ор(1.) г(5)); ( 1' 2' 3' 4' 5з' Удаление второго элемента из множества 1.: > Е:= зпЬзор(2=МИЛ.,Е); (1' 3* 4' 5~ Список принято обозначать квадратными скобками. Структу ы данных в Мар1е 5 > 11511л(51п,соа,гап,соз(; 6581 = (звз, соз, гап, соз) Со списками можно производить математические операции, например дифференцирование; > Р(1!511); 'ьс05, -гзп, ! +Сап, -5вгз 2 Приведем некоторые операции над списками: ор — извлечение элементов из списка; порз — подсчет количества элементов в списке; пзегпЬег — принадлежность списку; сопгегг — преобразование в другие структуры.
Извлечение двух элементов из списка!1511: > Ор(1..2,11511); 5ВГ, СО5 Определим количество элементов в списке!1511: > пора(11511); Проверим принадлежность элемента 'а' списку!1511: > гаепгЬег(а,! 1511); 28 Глава 4 Преобразование списка !1зг! во множество: > сопчегг(!!яг1,яе!); (соя, юп, гап) По отношению к спискам и множествам допустимы операции присваивания; > !!а!2:=!!вг1; !ге!2 = [ап, соя, гап, соя) 4.2. Массивы и таблицы Массив — конечномерный список с целочисленными индексами. Операции, применяющиеся к массивам: аггау — создание массива; рг(п! — распечатка содержимого массива; шар .- задание операции над всеми элементами массива; ор — извлечение элементов (уточнение задания массива). Создадим массив ч: > ч:= аггау(1..4); ч =актау(1 4, [ )) Заполним этот массив элементами и распечатаем его содержимое: > 1ог ! го 44о ч[!):=! ог): > рппг(ч); [1 2 3 4) Структуры данных в Мвр1е 5 Создадим одномерный массив 'в' с нулевыми значениями: > внкаггау(1..2,[0,0)); к =[О О) Создадим двумерный массив 'гп'.
> пг:=аггау(аугапгегг(с,1,.2,1..2,[[соя(у),0),[О,я(п(у)))); с05(У) О Зададим операцию дифференцирования над всеми элементами массива 'гп'. > гоар(огг(,гп,у); О сов~у) Определим характеристики массива 'гп'. тил массива > ор(1,ета1(пг)); размер массива > ор(2,ета1(пз)); 1. 2,1.2 элементы массива > ор(З,ета1(пз)); [(1, 2) = О,(2, 2) = ваз(у),(1, 1) = сов(у)] Глава 4 В отличие от массивов, где индексы — целочисленные значения, расположенные по порядку номеров, индексы у таблиц — любые значения, Таблица задается указанием слова цаЪ|е": > ФаЫе(); таЫе([ )) Команда ЗаЫе( )" создала таблицу с неопределенными значениями, Определим значения таблицы, выполнив команду: > ФаЫе([22,42[); ФаЫе([ 1= 22 2=42 3) Так как индексы таблицы не были определены, то программа сама присвоила им целочисленные значения, расположенные по порядку.
Зададим индексы таблицы следующим образом; > Я:= таЫе([(те4)=45,(ятееп)мбЦ); Я вЂ” — саЫе([ игеен = 61 гас( = 45 ]) Обратимся к элементам таблицы; > Я[Ц,Яте41; Я,45 Над таблицами возможны различные операции. Зададим таблицу Р, элементами которой являются операторы: > Р:=ЕаЫе([у=(х — > х"2),соя= — ап[): Структу ы данных в Мар1е 5 3! Распечатаем таблицу: > рппцр); зао)е([ соя = -5яз Вычислим значение элемента таблицы 'у' от аргумента, равного 3; > е!уКЗ); 'Таким образом множества, списки, массивы, таблицы — это гибкая основа для создания более сложных структур данных.
Глава 5 б. МАТРИЧНЫЕ И ВЕКТОРНЫЕ ВЫЧИСЛЕНИЯ Среда Мар!е позволяет выполнять все стандартные операции, определенные в линейной алгебре. Они становятся доступными при подключении библиотеки "!!па!р". Библиотеки подключаются через команду чч!!з с указанием ее имени. В нашем случае запишем: > и!гй(1!па!к): Приведем неко~орые из 107 доступных операций: честнот задание вектора; шшпх — задание матрицы: шшог распечатка минора матрицы: га~з(г — нахождение ранга матрицы: !талярове — транспонирование матрицы; йе! — вычисление определителя; сонг! — число обусловленности матрицы; йг етзе - нахождение обратной матрицы; е!ленча!а .
вычисление собственных значений матрицы: е!яепчесгв вычисление собственных векторов матрицы: сйагро!у . характеристический многочлен матрицы: шп!г!р!у — умножение матриц: !асоЬ!ап - вычисление якобиана от вектора функций. Определим вектор 'а'. > а:в кесгог(12,х'2,4,5.3,а!рйа!); а =(2 х 4 53 о.! Зададим матрицу: > А:=гааге!х(Ц1,1,1),[4,1,6Ц7,1,9Ц)! [! ~ 1] Матричные и векторные вычисления Распечатаем минор матрицы А, отвечающий элементу, стоящему во второй строке первого столбца: > полог(А, 2,1); Найдем ранг матрицы А: > гапк(А); Транспонирование матрицы А: > АТ:=!гапврояе(А); Найдем определитель матрицы А: > вег(А); Число обусловленности матрицы А (вычисленное по Ь вЂ” норме); > сопд(А,1); 128 3 34 Глава 5 Отыскание обратной матрицы; > А1:=!птегве(А); Перемножение матриц А и А! ( оператор 8с" используется для умножения матриц ): > Е1:=егайп(АЙ*А!); Преобразуем матрицу А, после чего найдем ее собственные значения.
При этом используем команду аггау(!г)епг!гу,!..3,!..3) для создания единичной матрицы ЗхЗ. 1 — Л 1 1 4 1 — Л 6 7 1 9 — Л > В=де!(В); .1'.= 6 — 2 Л+ 11 Л вЂ” Л 2 3 > гевнаега)1(зо!ге(1,!апгЬйа),4)! геа = 10 87„067 + 7395 1, 067 †.73951 1 -4 2 3 1 1 3 -1 — 1 2 > Вкаегайп(А — 1апюЬйа*аггау(!йепг!гу,1,.3,1..3)); 5 6 -1 3 -1 2 Матричные и векто ные вычисления 35 Результат, полученный в ходе выполнения трех предыдущих команд, люжно найти, проделав лишь одну операцию над матрицей А: > еча!1(е!йепча!я(А),4); 10 87, .067 + 7395 1, 067 — .7395 1 Найдем характеристический полипом матрицы А: > сйагро!у(А,!авййа); Х вЂ” 111 +2 1 — б 3 2 Собственные векторы матрицы А можно найти с помощью следующей команды; > еча!1(е!певчее!а(А,'тай!са!'),4); [10 87, 1, ([1 3 978 5.893]) ], [ 067+ 7395 1, 1.„([1. - 1833+.9026 з' -7487 †.16311]) ], [ 067 — 7395 1, 1.
([1 - 1833 — 90261 -7487+ 16311]) ] Результат выдается в форме: [пшп,г. (чесг)], где пнт - собственное значение матрицы; г — кратность собственного значения; чесг — собственный вектор; 'гарсий — ключ, определяющий режим нахождения всех собственных значений Создание случайной матрицы через генератор случайных чисел гапд: > С пв аггау(1..3,1..3): > г:=гапй(!00): > 1ог 1 Со 3 йо (ог ] го 3 йо С[1,][ не г() ой ой: > еча!вп(С); Перемножим матрицу О на саму себя: 36 > с)р)у(Счч ); Глава 5 19216 17586 12554 13121 12770 9797 12954 12546 11270 Вычислим якобиан от вектора А > А иа чесгог((х"2, х*у, х*г) ); А:=~х ху хг1 > )асоЬ|ап(А, (х,у,г)); 2х 0 0 у х 0 г 0 х Решение линейных и нелинейных алгебраических у авнений и систем 37 6.
РЕШЕНИЕ ЛИНЕЙНЫХ И НЕЛИНЕЙНЫХ УРАВНЕНИЙ И СИСТЕМ 6.1. Обыкновенные выражения Для решения линейных и нелинейных уравнений и систем служит команда зо!се. Например, зададим нелинейное уравнение: > ецп1:=х" 3 — 54*х "2+972*х — 5839=0; едл1 =х — 54 х + 972 х — 5839 = 0 3 2 Далее решим его относительно переменной х; > во!те(ецп1,х)! Получим приближенное решение до пятого значащего знака: > ета!1(",5)' 19 913, 17 044+ 1 6567 1, 17 044 — 1.6567 1 Найдем решение нелинейного уравнения !п(х) — 2х(!п(х) — 2)=0: > ецпЗ:=!п(х) — 2*к*(1п(х) — 1)=0; е улЗ = !п(х) — 2 х (1п(х) — 1) = 0 > аЗ:=во!те(ецпЗ,х); аЗ = 38 Глава 6 Следовательно, среде Мар!е не удалось найти решение в символьном виде, но можно попробовать найти решение в численном виде.
Для этого служит команда Гео!те: > аЗ:=Во!те(еопЗ,х)! аЗ = 3.258475747 С помощью Мар!е можно находить решения линейных и нелинейных уравнений и систем. Например, рассмотрим систему из трех линейных уравнений. > еця1:= ( х + 2*у + 3*г = 6, > 5*х + 5*у + 4" г = 1, 3*у+4*а = 1); е~уе) — — (5 х+ 5у+4г= 1, х+ 2у+ Зг= б.
Зу+4г= 1) > а1наяо!те(еая1, (х,у,г)); -105 82 42 ! а1:= ( = 13 =13 =ГЗ)' > ета!1(а1,4); (х = 3 231, г = б 308,у = -8 077) Усложним пример, рассмотрев систему из трех линейных уравнений с параметром. > еоя2на ( а*х + 2*у + 3*г = б, > 5*х+а"2*5*у+4*а =1, З*у + 4*г = 1); еде2 =(ах+ 2у+ 3г= б, 5 х+ 5 а у+4г= 1, Зу+4г= 1.» 2 Решение линейных и нелинейных алгебраических уравнений и систем 39 > а2:=во!те(еая2,(х,у,г) ); а з = х — 21 5а — 3 5а — За+ВО 105 1 2 3 -12а+20а +5 -12а+20а +5 -12а+20а +5 Рассмотрим решение систем нелинейных уравнений. Пример ) 1' среда выдает одно решение ): > еаа5 ие (2*хву = 1, х + г = О, 2*х — 3*х = 2); едв5'= (2 х — Зг= 2, х+г= О, 2 ху= 1) > яо!те(ейа5,(х,у,г)); < 2 -2 51 х=-,г= —,у= — ) Проверим, правильно ли мы решили данную систему методом подстановки, при помощи команды знЬа.
Здесь мы используем принятые обозначения "- последнее и "" — предпоследнее. > вика(в нв), (2=2,0=0,1=1) Пример 2 (решений много): >еазбз=( х+ у+ а =6, > х"2+ у"2+ к"2 =14, > х'3 + у "3 + г'3 = 36); еавб — — з,х +у +г =14,х +у +г =Зб,х+у+г=б.) 2 2 2 3 3 3 4О Глава 6 > яо!че(ес)яб,(х,у,х))! (х = 2 у = 1, х = 3), (у= 1, х = 2 х= 3), (х= 1, х ж 3 у = 2), (х = !,у= 2, х= 3), (х= 1,у= З.х = 2), (х= 2 у= З,х = 1) 6.2. Дифференциальные выражения Мар!е эффективен для задач с различными типами дифференциальных уравнений и систем.