Говорухин В., Цибулин Б. Компьютер в математическом исследовании (1185927), страница 86
Текст из файла (страница 86)
Аналитические операции для пре- образования выражений перечислены в табл. 17.1. Таблица 17.1. Аналитические операции с выражениями Имя Назначение Подстановка Запись с подстановками и использованием промежуточных выражений Упрощение выражений Упрощение выражений с перечислением вариантов Раскрытие скобок Разложение выражения на множители Преобразование выражения в папином с выделениеи коэффициентов при степенях заданных переменных Приведение к рациональной форне Приведение к схеме Горнера 5ОЬ5 5ОЬехрг 51 яр)1 т)' 515Р1 е ехрапг) гассог со1!ест пывг)еп Погпег Команды анализа Таблица 17.2. Команды математического анализа Имя Назначение Вычисление производной Вычисление интеграла Вычисление предела Вычисление суимы ряда Разложение выражения в ряд Тейлора Вычисление матрицы Якоби Обращение функции Суперпозиция функций опт 5765ОП1 тат)пг Засоыап Г1ПЧЕГ5Е СОЕРО5Е Операции математического анализа Мар1е достаточно подробно описаны в пер- вой части книги, а комаидь) их вызова из МАТЮКАВ практически идентичны рас- смотренным.
Здесь мы ограничимся перечислением основных функций (табл. 17.2) и рядом примеров. 458 Глава 17. Расширения ИАТ[АВ Определим несколько символьных переменных и зададим выражение: » 5уа5 х г х. Г-1+5!П(х)+Ьеаае13(2.г) Мп(х)+Ьеаае13(2.г) По умолчанию дифференцирование ведется по х: » 0!ГГ(Г) ап5- се5(х) Прн дифференцировании по другим переменным их надо явно указывать: » пг-0!ГГ([.г) Ьг ЬП55е13(),г)-2/г Ьеаяе)3(2.г) Вторая производная вычисляется следующим образом; » Ь/2 ПМГ(цх,2) 012 -5!п(х) Приведем пример получения якобиана для вектор-функции из двух элементов.' » ]асаЬ!ап([х»г; г"3].[г; х]) ап5- [ к. г] [ 3*г"2, О] При вычислении неопределенных и определенных интегралов обозначения есте- ственны: » !Пг(х"'х.х) ап5- х"(К+1)/(Ь+1) Обозначения бесконечности ! ПГ и числа и стандартны для МАТ|АВ: » !Пг(ехр(-х"2),Ь,0,!ПГ) ап5- 1/2*р(*(1/2) Для операции суммирования используется новое имя зушзцш, чтобы избежать конфликтас операцией 50ш системы МАТ|АВ: » 5уаани(х (.2),1.!и!) дП5 1/б*р!"2 По умолчанию функция Ьау] ог вычисляет разложение в ряд Тейлора до пятой степени, а для указания иного порядка нужно определить третий параметр команды: » [гау)ог(5!П(х)).сау1ог(5!П(х).х,9)] ап5 [х-1/б»х"3+1/120»х"5, х-1/б»х"3+1/120»х 5-1/5040»х"7] Заметим, что в этом примере и ряде последующих для экономии места результаты выполнения нескольких команд заключены в квадратные скобки для получения Пакет бущЬоцс Иа(Ь 459 вектора-строки.
При вычислении предела может появиться нечисловая константа Най: » [11в(С(1/х,х.О), 1!м1С(1/х,х,О. '1етт')] апэ[ Ман. -1пт] Алгебра Для алгебраических операций с символьными объектами используются команды (см. табл. 17.3) с именами, аналогичными тем, что применяются для числовых переменных [класс ()оцЬ]е).
Однако, обнаружив, что аргументом той или иной команды выступает символьный объект, МАТЮКАВ запускает соответствующую процедуру пакета 5уаЬойс Ма[Ь Тоо[Ьох. Таблица ЗТ.З. Команды линейной алгебры Имя Назначение Задание илн извлечение диагональных элементов матриц Выделение верхней треугольной матрицы Выделение нижней треугольной матрицы Обращение матрицы Вычисление детерминанта матрицы Вычисление ранга матрицы Вычисление канонической формы Жордана Приведение матрицы к верхней треугольной форме Нуль-пространство матрицы Базис-пространство столбцов Вычисление собственных значений и собственных векторов матриц Сингуллрное разложение матриц Вычисление характеристического полинома матриц Вычисление матричного экспоненциала сц а9 Сг1ц Сю1 1пч бес гапх Оогоап ггет пн11 со1зрасе е1О 5ЧО ро1у ехрв Рассмотрим ряд простых примеров. Очистим текущие назначения сеанса и опи- шем переменные а, Ь, с как символьные: » с1еаг.
зуиз а Ь с Определим вектор: »т-[аь] ч [ а, Ь] Сформируем матрицу с главной диагональю из элементов этого вектора: » 01ар(т) апз[а. О] [ О. ЬЗ 4бО Глава 17. Расаирения ИАТ[АВ При помощи дополнительного параметра команды ()! ао подготовим матрицу с вектором, задающим наддиагональ (положительный второй параметр () ! а0) и поддиагональ (отрицательное число): » Н-с»еуе(3)+Щач([а Ь).1)+Фвд([-Ь в).-1) Н с.
а. 01 [ -Ь. с, Ь) [ О. а. с] Вычислим жорданову форму полученной матрицы: » ЗогОап(Н) дев [ с. 1, О) [ О. с. П [ О, О, с) При помощи операций плавающей арифметики трудно вычислить каноническую жорданову форму, поскольку она чувствительна к возмущениям, но ее можно найти, используя аналитические преобразования. Вообще, наличие символьного анализатора позволяет проводить в МАТ[.АВ вычисления, переходя от операций с плавающей точкой (запятой) к аналитическим преобразованиям и обратно. В качестве иллюстрации рассмотрим несколько операций с матрицей Гильберта второго порядка.
Введем матрицу при помощи команды МАТ[.АВ: » Н2 Щ )Ь(2) Н2 = 1.0000 0.5000 0.5000 0.3333 Преобразуем вещественные числа в дроби, используя команду зуав » Н"эуа(Н2) Н" 1. 1/21 [ 1/2. 1/3) Найдем собственные значения. Поскольку элементами матрицы являются символьные объекты, то МАТЮКАВ обратится к команде из ядра Мар! е: » е(-е!9(Н) е!- [ 2/3+1/6*13"(1/2)1 [ 2/3-1/6»13"(1/2)1 Вычислим спектр исходной матрицы: » е! в(0(Н2) е! 1.2676 0.0657 Для сравнения переведем результат аналитического вычисления спектра в деся- тичные числа: » чра(е),5) Пакет 5увЬойс Иавв аб а ап5 = 1.26763 Е .65741е-13 Отметим, что полученные числа являются символьными объектами.
Если команда не предназначена для работы с символьными объектами, то будет выведено соответствующее сообщение. Например, для команды погп) получим: ч пога(Н) >?? Еггог 55(пд ==5 погв Еопстюп "пога" пес де?1пеа Гог чапаше5 От с1а55 "57а" Напомним, что подстановка значения элемента матрицы производится при помощи команды 50Ь5; ъ М0=5ОЬ5(м,с.о) МОЕ О. а. 0] ( -Ь.
О, Ь] Е о. а, О] Ядро полученной матрицы (нуль-пространство) вычисляется с помощью команды пц]1, и при выводе результата для превращения вектора-столбца в строку используется транспонирование: ч по11(МО)' ап5- Е 1. О. П Вычисление сингулярных чисел производится при помощи команды со стандартным именем, но работает процедура из Мар1е: » 5чо(МО) до5 03 ( 2 (1/2)*(Ьчсоп](Ы)" (1/2)3 Е 2"(1/2)*(ачсоп](а) )"(1/2) 3 В ответе использована функция соп] для обозначения сопряженной величины. Решение уравнений Для аналитического решения алгебраических уравнений используется команда 501 че, вызов которой имеет следующий внд: 5о1 че(Е01. Е02, ЧАЯ1.
ЧАЯ2,,) ' Здесь Е01, Е02, ... — уравнения нз символьных переменных или строки, задающие уравнения, УАЯ1, ЧАЯ2, ... — неизвестные (символьные переменные). При решении системы уравнений для хранения результата создается структура с полями, соответствующими именам неизвестных. Можно также использовать вариант вызова с неизвестными в качестве выходных параметров: ЕЧАЯ1. ЧАЯ2.,3-5о1 че(Е01.
602 .. ) ПРиведем пример решения системы двух уравнений относительно неизвестных кию 4»62 Глава 17. Расширения ИАТ[АВ » 5-5о)че("х-ч"3",'х+7-1') 5 х; [Зх1 57В) у: [Зх1 57В) Выведем одно из решений для переменной х: >> 5.Х(1) апа- -1/6*(108+12»93"(1/2))"(1/3)«2/(108+12»93 (1/2))"(1/3)+1 Два других решения более громоздки. Если для вывода результата применить команду рге11у(5. х), то Все раВНо ПолУчатся довольно объемистые выражения, использующие обозначения повторяющихся частей (вспомогательные выражения $1, 12). В этом случае для преобразования результата вычисления корней уравнений полезна команда 5оЬехрг [см.
табл. 17.1): » [г,с)"5оЬехрг(5.х.'О'): г'. О апа " 0.3177 1.3412 + 1.1615) 1.3412,- 1.1615( о [ 1/(108>12"93"(1/2))"(1/3)1 [ (108+12»93"(1/2)) (1/3)1 Переменная О дает вспомогательные выражения $1, $2 из аналитического выражения для решения, а выходной параметр г содержит сами корни. Действительно, » дооЬ)е(5,х)' ап5- 0.3177 1.3412 » 1.1615( 1.3412 - 1.1615( Отметим, что команда бо)че в МАТ[.АВ не решает неравенств в отличие от команды, входящей в состав Мар1е.
Для решения дифференциальных уравнений в МЛТ1ЛВ применяется универсальная команда Оэо! че, Решение задач с начальными данными [задача Коши) и краевых задач при помощи команды Озо)че проводится аналогично тому, как это описано в первой части книги, см, главу 4 «Решение уравнений в Мар!е». По умолчанию независимой переменной считается 1. Для обозначения производных в уравнениях используется символ О, а комбинации 02, 03, ... применяются для обозначения второй, третьей и последующих производных. Приведем примеры. Определим систему двух дифференциальных уравнений: » Ое - "02о-01о-о+ч, 0ч-и" ое02о-01о-о+ч. оч-и Решим задачу Коши для данного уравнения и двух начальных условий: х 5- Оао)че(ле. "о(0)-0, ч(0)-0") 5 о: [1х1 57В) ч: [1х1 5УВ) Решение представлено структурой с двумя полями (по числу функций).
Вычислим решение для функции щ Пакет 5упзЬо((с Иа(Ь 463 » 5.о вщ- 1/2»СЗ*з1п(1) -1/2»СЗ"сок (Г )+1/2+СЗ»ехр(1) Поскольку для системы третьего порядка были заданы только два начальных условия, то одна константа осталась неопределенной — СЗ. Теперь покажем, что команда (7501че позволяет находить решения краевой задачи. Выполним команду, поставив два условия в точке 1-0 и одно в точке С-я: » 5 - озо1че(ец. 'Ои(р1)=0, ч(0) О.