Манзон Б.М. Maple V Power Edition (1185908), страница 22
Текст из файла (страница 22)
Будем использовать матрицы 2х2,чтобы примеры не получились очень гролюздкими. > М2 г 8срхахемай~1х(2, С): > А:= М2 [1ири~] ( [ [1,х'3], [1-х, 1+х"3] ] ) ) А:= [[1, х'], [1 — х, 1 + х']] Вычислим определитель матрицы > с[Охрип]( м2[рес] (А) )г х+1 Вычислим квадрат матрицы > М2 [ОиВриВ] (М2 [' " '] (А, 2) ) г 3[[ — х' + х' + 1, х' + 2 х'], [ — х' + х' + 2 — 2 х, х' + 1 — х" + 3 х']] 8.
Программирование в сРеде Мер/е 199 Вычислим обратную матрицу > М2 (Оттсрзас 3 ( М2 (1пч] (А) ) 1 Еттот, (Ьп пот1вр1евепсес() орегатьоп Ьв поС Ьвр1евептес) Программа вывела сообщение об ошибке: нельзя вычислить обратную матрицу от матрицы полиномов, так как результат в общем случае — рациональная Функция (не полином). В следующих примерах приводятся вычисления со степенными рядами от одной переменной. Вначале создадим домен обрезанных степенных рядов от х над ().
> РЯ: ЬаеуУпачагъаЕеротгег$егаеа (Я, х): > а)зотг(РЗ, орегаЕаозза) 1 Яьдоатпгев Ест сопвттистот РЯ поТе: оретат1опв ргегьхес) Ьу — ате пот ача11аЬ1е * : (РЯ,РЯ*) -> РЯ * : (тптедег, Ря) -> Ря + : (РЯ,РЯ*) -> РЯ (РЯ,РЯ) -> РЯ вЂ” РЯ -> РЯ (РЯ,1птедет) -> Ря (РЯ, РЯ) -> РЯ О: РЯ 1: Ря <>: (РЯ, Ря) -> Еоо1еап (РЯ,РЯ) -> Еоо1еап АЬво1ите)Зедтее : 1пседег СЬатастег1втьс : 1птедег Соейй : (РЯ,1птедег) -> () СоеН1с(епсК1пд : Кьпд Соегсе : 1птедет -> Ря Сопвтапт : 0 -> РЯ Сов : Ря -> цп1оп(РЯ,РА1Ь) Сови : РБ -> Пп1оп(РЯ,РА1Ь) Шйй: РЯ -> РБ ))1у : (РБ,РЯ) -> Упьоп(РБ,РА1Ь) Еис11беапиогв : Ря -> 1пгедет Ехр : РЯ -> цпьоп(РЯ,РА1Ь) Растет : РЯ -> (Ря,((РЯ,1пседег]*]] Осе]: РЯ* -> РБ Осс)ех : (РЯ,РЯ,Иаве) -> Ря Осе)ех : (РЯ,РЯ,Иаве,иаве) -> Ря 1прШ : Ехргевв1оп -> Ппьоп(РЯ,РА1Ь) 1птедгасе : РЯ -> Ппьоп(РЯ,РА1Ь) я.
Программирование а среде Нар/е 201 > в1з-РЯ[~Т)1~~ )(в,х)Т М вфзз(х)"(1/2) в!:= 1 — — х -ь — х' + 0(х') ! ~ ! 2 24 Обрезанные степенные ряды "ленивы" ("!азу"), это означает, что коэффициенты вычисляются не сразу, а по требованию, то есть вычисляются только то количество коэффициентов, которое указано в команде. Например, мы можем вычислить члены ряда до десятой степени. > РЯ(Отзйрьт~) (в1, 10) Т 4 Ь 8 1 — — х+ х — х'+ х' х" + 0(х") 24 720 40320 3628800 Далее вычислим полиномы Чебышева по их производящей функции: (1 — х*т)/(! — 2*к*1+1"2) = ац3п( Т(в,х)*1"К, К=о.. ).
Вначеле создадим домен ИЗР8 == (.ахуОп!уапагеРовег8епев. > Р з= ТЛТРЯ(ТДТРЯ((2 х) Ф) с Вводим выражение > р1 ю= Р(Хтзрззй) (1-2~х*й+~ "2) Т р/:= 1 — 2 х1+ !' > р2з=Р(1пртзс)(1-В~х)Т р2т 1 — х1 Теперь находим разложение в ряд по ! величины р ( — 1/2) > Р['/') (Р2, Р1) Т 1+ х !+ ( — ! + 2х') г'+ ( — 3х+ 4х) г'+ (1 — 8 х'+ 8х') /+ + (5 х — 20 х' + ! б х') г + 0(/) Сравним полученную формулу с формулами лля полиномов Чебышева, имеющихся в Мар!е > ве4((оке)зоро1у(Т) (ф,х), 1=0 .. 5) Т 1,х,— 1+2х,— Зх+4х',! — 8х' ~-8х',5х — 20х' +1бх' 202 Мар!е Ч Рочюег Ес))х(оп 8.3.3. Пакет Оотаюв в интерактивном режиме Для удобства интерактивного использования команд пакета Рогаа)па используется команда етайогаа(ая(Р](ехрг).
ета)аогпа)пв обеспечивает Мар!еподобный пользовательский интерфейс, сортировку данных и проверку типов аргументов Рогаа(ав-функций. Она вычисляет выражение Мар/е в домене Р и возврашает выражение Мар1е. Приведем примеры. Используем введенный нами выше домен С полиномов от одной переменной. Введем два случайных полинома а! и а2. > а1. »С [капйопг) () )а2: С [калбоза) (); 57 45 93 .
43 з 7 а1;=— — — х — — х — — х' ч- — х' 59 8 92 62 9 5 61 11 а2:= — — + — х+ х 99 50 9 Так выглядит операция перемножения полиномов в Рота!пв — синтаксисе > С[Оисрзхс) (С['*') (а1,а2) ) т 77 6 706 - 67369157 4 56986531 1 28632029 х+ х'— х х'— х— 81 6975 31764150 7058700 3582480 116113 95 х -ь 129800 1947 Использование знакомого Мар1е синтаксиса для той же операции при по- моши ета!Могла!па > еча1с1озааЗ.хзв [С) (а1~а2) 7 77 6 706 ~ 67369!57 1 56986531 28632029 х ч- — х'— — х'— х' — х 81 6975 31764150 7058700 3582480 116113 95 х +— 129800 1947 Если необходимо вычислить несколько выражений в одном и том же домене удобно создать домен-вычислитель с использованием команды создания псевдонимов а1!агк а11ав (сЬхр = еча1с[оша1пв [домен) ) 8.
Программирование в среде Мер!е 203 Так как выражение, направляемое на етаЫова!ва, вначале обрабатывается синтаксическим анализатором Мар!е, пользователь не должен забывать о встроенных упрощениях, перегруппировке операндов и вычислении функций верхнего уровня этим анализатором. Например, слелуюшее выражение всегда приводится к О. езга16оваххха[С! (С[катвйов) () — С[1(ахм1ов] () ) ! Если домен имеет некоммутативное умножение или сложение, должна быть использована 8г-версия оператора с целью предотвращения перегруппировки операндов.
Например, используя введенный нами выше домен М3 квалратных матриц 3*3, введем псевдоним а1з.аа (в = езга1с1ова1хха [ИЗ] ) г 7,т > А := в (каззс1ов()); 2 -31 47 47 -41 Г-90 -1 — 83 > в (А а» (А + 1)]) 1128582 111813 194532 25595661 23999393236 †9024004~! ~ -496409 684996955 28118302103 ' 27688388 3 ~ 414778 339762436 267139822 204 Мар1е Ч Роччег Едй!оп 9.
Специализированные пакеты Иар!е Помимо команд, нахоляшихся в основной библиотеке Мар/е, большое количество команд, расширяюших функциональные характеристики программы в отдельных областях математики, находятся в соответствующих специализированных пакетах Мар!е. Некоторые из этих пакетов уже упоминались в других главах. В данном разделе мы кратко перечислим специализированные пакеты и функции, входяшие в эти пакеты. Более подробно будут рассмотрены пакеты, пе упоминавшиеся в других частях данного пособия. Во многих случаях читатель сможет получить достаточную информацию о функциях по их названиям, однако в некоторых случаях будут даны дополнительные пояснения. Полную информацию можно получить из руководства пользователя или из файлов справки программы.
9.1. Оооо!з — пакет дополнительных средств для дифференциальных уравнений Этот пакет содержит команды построения двух- и трехмерных графиков решений обыкновенных лифференциальных уравнений и дифференциальных уравнений с частными производными (команды РЕр!о(, РЕр1о13в, и РРЕр!о1, о которых уже было рассказано в разделах 6 и 7); команды замены переменных в обыкновенных дифференциальных уравнениях (команда Рсйавйеуаг) и системы координат в уравнениях с частными производными (РРЕсващесоогв); команда понижения порядка дифференциальных уравнений и некоторые другие команды. 9.2.
Ротатз — пакет для разработки кодов сложных алгоритмов Роша(вв — новый пакет Мал!е. Его идея пришла из пакета АХЮМ, и состоит в том, чтобы передавать в качестве параметра в аргументах процедур набор функций как одно целое, называемое домен (йнпа(п). Этот пакет предполагается использовать как средство для разработки сложных алгоритмов. Об этом новом, безусловно перспективном пакете Мар!е, уже подробно рассказано в главе 8,3. Здесь мы только приведем основные команды пакета. 9.
Специализированные пакеты Марге 265 Чтобы загрузить пакет Рогва)пв необходимо использовать одну из команд геаа11Ь(Рота!пв); или зг!!Ь(Роша!па). Список всех доменов в настояшее время имеюшихся в Марlе приведен в подразделе 8.3. Команда вЬозт(Р, орегаг(опз) может быть использована для вывода на экран всех операций, определенных лля домена Р. Для удобства интерактивного использования пакета Роша!па используется команла етаЫоша)па[О](ехрг). етаЫогва!ва обеспечивает МарЫ-подобный пользовательский интерфейс, компановку данных и проверку типов аргументов Рота!па-функций.
Она вычисляет выражение Мар/е в домене ГЭ и возврашает выражение МарЫ. 9.3. ОР— пакет "поля Галуа" Он содержит только одну команду Сг(р, (с) или СЕ(р, )с, а), где р — простое число; )г — натуральное число; а — неприводимый полипом степени Ь над полем целых чисел по модулю. Команда Сг возврашает таблицу О функций и констант для выполнения арифметических операций над конечным полем Сг(р"), то есть полем Галуа с р" элементами.
9.4. Оаизз(пй — пакет Гауссовых целых чисел 0161тгз.вог 61йасро1у 01сЬгеа 011асвес 01Ьав5.в 01дсйех 01Ьегшхее 01дса 01всвЬхпе 011ассог 011ассогв 01поаЬ 01пеагевг 01рЬх 01гоогв 01ипхслогвга1 011сга 011ввсг 01вогв 01логтва1 01огйег 01рг1ате 01вхетге 01сцо 010иайгев 01вгвхЕЬ 01вдгйгее 01вдгг Этот пакет содержит около тридцати команд для выполнения операций над полем Гауссовых целых чисел (комплексных чисел с целыми действительной и мнимой частями). Вот список этих команд: 206 Мвр)е Ч Рочюег Ее!11!оп 9.5.
1ВЕ~ооЬ вЂ” пакет для проведения расчетов с рекуррентными соотношениями ИЕРХос Ий!>гзяцрагс ИЕгес)всею ге)ег ИЕЕоргос сопвссоеййвоХ деХса ВБсгеаге палое)еХга гтхврегвХои ХхурегдесаввоХв роХуво1в гагроХувоХв вЫЕе Рассмотрим пример, а котором рекуррентное уравнение решается как командой гао!те, так и при помощи команд пакета ЬКЕ!оо!а, чтобы проиллюстрировать разницу в метолах. Отметим, однако, что далеко не все уравнения, решаемые командами ).КЕ!оо!а, решаются командой гао1уе.