Матросов А.В. Maple 6. Решение задач высшей математики и механики (1185909), страница 34
Текст из файла (страница 34)
В пакете ЫоеатхгчеЬта ЭтОт МЕтОд рЕаЛИЗуЕтСя КОМаыдсй Готе атс(аоьзт1)ото () . ТЕПЕРЬ, таК КаК ЬЛЗ-Ч2 И Ь.с.х-Ч2, тО ДЛЯ НаХОжЛЕНИЯ РЕШЕНИЯ ИСХОДНОЙ СИСТЕМЫ уравнений достаточно найти решение системы п.х-чз, которое находится подстановкой назад в связи с тем, что матрица с является верхней диагональной; последний элемент вектора выражается сразу же из последнего уравнения указанной системы, затем его значение подставляется, в. прсд- Часть!.
Основы 1Иар1е 184 последнее уравнение и находится значение предпоследнего компонента вектора решения х и т, д, Эта подстановка реализуется командой ВьсхньгСЗ Ьзкьгчте (ц,уЗП В рЕЗуЛЬтатЕ бЕЗ ОбращЕНИя К КОМаНдЕ щ згл1оеьгз мы решили исходную систему уравнений методом Ш-декомпозиции. Замечание При задании в качестве метода решения системы линейных уравнений в команде ьтпезтзст е !! метод Ы-декомпозиции неявно выполняются все, выполненные нами в примере 3.11, действия. г' Замечание Можно выполнить подобные пошаговые вычисления при решении системы линейных уравнений и любым другим способом, реализованном в пакете ьтпеагвтчеьта.
3.2.2.4. Вычисления с использованием программ пакета МАО В этом заключительном подразделе описания нового пакета .='пеьгвгчеьгь мы сконцентрируем внимание читателя на проблеме численных расчетов с его помощью, В процессе решения задач линейной алгебры в среде пакета ьгпеьтыдеьгз он автоматически выбирает, какую модель вычислений следует использовать: символьную, программную реализацию арифметики чисел с плавающей точкой с произвольным числом значащих цифр в мантиссе или арифметику чисел с плавающей точкой, поддерживаемую процессором компьютера, что, естественно, связано с ограничением числа значащих цифр в мантиссе.
Символьная модель самая медленная, тогда как процессорная модель самая быстрая. Более того, в зависимости от используемой модели для решения одной и той же задачи используются разные встроенные процедуры. Для символьных вычислений применяются интерпретируемые процедуры, написанные на языке Мар!е, и это приводит к снижению скорости вычислений, особенно ощутимой для матриц больших размеров.
Для двух других моделей подключаются откомпилированные программы из пакета численных расчетов !ЧАСт, причем для программного моделирования вычислений с произвольным числом значащих цифр в мантиссе скорость вычислений меньше, чем при использовании арифметики процессора, хотя в последнем случае страдает точность вычислений. Решение задач с использованием программ !ЧАС в любом случае быстрее, чем с интерпретируемыми процедурами Мар!е.
Как же Мар!е определяет, какую модель применять в конкретных случаях и, соответственно, какие процедуры следует использовать? Прежде всего опре- ]85 Глава Э. Пакеты деляется, содержат ли матрицы элементы, значениями которых являются числа с плавающей точкой и/или символы. Для этого он проверяет тип данных матрицы, определяемый опцией с]агапу]>е конструктора при создании матрицы. Если она не была задана, то осуществляется поэлементная проверка типов данных содержимого матрицы, причем д]гя больших матриц этот процесс может оказаться достаточно длительным.
Поэтому рекомендуется задавать тип данных матрицы при ее создании. После проверки происходит выбор подходящей модели в соответствии со следующим алгоритмом: ьз если элементы матрицы содержат только числовые данные, причем хотя одно из них представлено числом с плавающей точкой, и значение переменной окружения иаенатаеатег1па1а равно птпе (значение по умолчанию), используется арифметика процессора; Г2 если элементы матрицы содержат только числовые данные, причем хотя одно из них представлено числом с плавающей точкой, и значение переменной окружения оаенагс]еатег1оапа равно га1ае, используется программная реализация арифметики вещественных чисел; ]:! если есть хоть одно не числовое значение, например,,/2 или х, то используются процедуры символьных вычислений; !'.з если нет чисел с плавающей точкой, то используются процедуры символьных вычислений.
Для того чтобы увидеть, действительно ли будут вызываться процедуры пакета НАС и использоваться арифметика процессора, следует в специальной табЛИцЕ 1 Гогече1, Храиящсй уСтаНОВКИ дЛя урОВНя ОтОбражЕНИя ИифОрМации пользователю при выполнении некоторых команд, установить для пакета ьгпеатл1де]>та уровень 1. Для этого следует использовать синтаксическую конструкцию > 1пто1ече1]11пеата]ЧеЬта]:=1; Вообще, можно.
устанавливать соответствующий уровень отображения информации для пользователя либо при выполнении определенной команды, НаПрИМЕр, с]ао1че]], ЛИбО ВСЕГО ПаКЕта, ЛИбО дЛя ВСЕХ КОМаНд, Задан В КВадратНЫХ СКОбКаХ ВЫШЕуКаЗаННОй КОНСтруКцИИ а11: > 1пее1ече1]с]ао1че]:=2; ифо1ече!,~ := 2 > гпто1ече1!а11]:=1: ]лУо1ече1 а г 1 Всего может быть пять уровней. Первый отображает сообщения лля пользователя, второй и третий — общую информацию, включая информацию об Часть 1. Основы МарЬ тВб используемой методике или алгоритме, четвертый и пятый — более подроб- ную информацию о процессе решения задачи. ( Замечание Не все команды отображают инФормацию, даже при установленном пятом уровне. При использовании арифметики процессора отображаются имена программ пакета !Я!А4я с префиксом ьн, тогда как при программной реализации арифметики чисел с плавающей точкой эти программы имеют префикс ям .
Пример 3.!2 демонстрирует использование вычислений с арифметикой процессора. > н11Ь (ЬьпеатА1деЬта1: 1пто1ече1111пеатА1деЬта1:=1; > М1 2=«112>, <4 ~ 5»; М2 та[ ] > М1 (-1) -5 2 3 3 1 3 3 > М22м«1.~2>,<4~5»! М2.=[ ] > Мг. 1-11; Матт1х1глетяе2 Мат<1х1лчеяяе2 Маттгх1п22етяе2 мса111пд ехтетпа1 Гслс11спм мЫРОм Ьн 107аот мИАОм Ьн 107а51 с -1.66666666666666666666666666666 .666666666666666666666666666665 133333333333333333333333333333 -.333333333333333333333333333332 ] При вычислении обратной матрицы м1 использовались символьные процедуры, так как ни один ее элемент не является числом с плавающей точкой. Матрица мг содержит один элемент, представленный числом с плавающей точкой, а так как по умолчанию переменная окружения цяянаяснатяг1стя имеет значение схие, то при вычислении ее обратной использовались программы пакета ХА<я для вычислений с арифметикой процессора.
Глава 3. Пакеты Замечание Рекомендации по аффективному использованию памяти при работе с программами пакета НА6 можно найти в примере, который вызывается командой ?ехавр1ез,? Р, ИРЛ. 3.3. Обыкновенные дифференциальные уравнения Мы знакомы с универсальной командой решения обыкновенных диффе- рЕНцИаЛЬНЫХ ураВНЕНИИ Озс1 е(). С ЕЕ ПОМОШЬЮ МОЖНО ПОЛуЧатЬ ОбШСЕ решение дифференциального уравнения или системы дифференциальных уравнений, решать задачи Коши и краевые задачи.
Эта команда всегда стремится найти общее решение в аналитическом виде и использовать его лля построения решения краевой задачи или задачи Коши. Однако не всегда удается для обыкновенного дифференциального уравнения найти общее решение в замкнутой форме, и более того, сушествуют дифференциальные уравнения, для которых вообц(е невозможно построить обшее решение в аналитическом виде. В таком случае прибегают к приближенным методам рЕШЕНИя, КОтсрЫЕ рЕаЛИЗуЮтСя тОЙ жЕ КОМаНдсй Скотте„е СООтВЕтСтВуЮ- шими опциями (в форме рядов, с использованием численных методов типа Рунге-Кутта различной точности).
После чего полученное в виде процедуры Мар!е решение можно использовать для построения таблицы его значений или отобразить в форме графика командой оцер1ос , ) из пакета графических команд ртосз (), о котором пойдет речь в гл. 4. ' у~ 1ф~~з[ей~~у~Фд)й[[((~~~ > Охт1!=отхт(х(С),С)=х(С) -у(С) ! а!(17:= — х(!) = Х(!) — у(!) д! > отх2:=с11ГГ(у(С),С)=х(С)+у(С)) д с(()2:= †. у(!) = х(!) + у(!) д! > 1пгсоп!(:=х (О) =1, у (О) 1) (л)солИ:= х(0) = 1, у(0 ) — - 1 > зо1!Г азо1те ((отг1, огх2, 1пгсап!(), (х(с), у(с) ), суре=по!кетгс); зо(:= ртос(т((Г45 х) ...
еп!( ртос > зо1 (О) ) зо1 (1 ) ! зо1 (2) ! зо1 (3) ! [! = О, х(!) = 1., у( ! ) = 1. ) [т= 1, х(!) = -.818661372311693780, у(!) = 3.75604922293629252[ [! = 2, х(!) = -9.79378206300327570, у(!) = 3,64391727181316627) [! = 3, х(!) = -22.7190017594013122, у(!) = -17,0500600314509967) Часть!. Основы )Иар(е > н1ЬЬ(р1ока): > () Фазовый портрет системы > ооер1ос(ао1, [х(с),у(с) ),-5..1, 1аье1а=[ "х(с), "у(с) ),со1от=ь1аск) о > О Решение систеыы в пространстве > ос(ер1оЬ (ао1, [Ь,х(Ь),у (С) ), -5 .. 1, 1аЬе1а=["С","х(С),'"у(С)),со1ок=Ь1асх); 3 , о)2 1 о о ох о.о Замечание Система дифференциальных уравнений примера 3.13, являясь линейной системой дифференциальных уравнений, имеет общее аналитическое решение.
Она взята нами исключительно в иллюстративных целях, чтобы показать возможности команды рс(ер1ос ( ) . Оказывается, для некоторых дифференциальных уравнений реализованные в КОМаНдЕ Оао1 е() ПрИбЛИжЕННЫЕ МЕтОдЫ НЕ даЮт удОВЛЕтВОрИтЕЛЬНОГО рсзультата в связи с накоплением погрешности при их использовании. (Мы не будем приводить примеры вычислительной неустойчивости численного решения дифференциального уравнения, но такое действительно случается и достаточно часто в практике моделирования реальных явлений.) В таких случаях приходится либо разрабатывать специальные методы приближенного интегрирования дифференциального уравнения, либо упрощать математическую модель явления, вводя некоторые ограничения, либо пытаться преобразовать дифференциальное уравнение, приведя его к виду, для которого можно построить удовлетворительное приближенное решение.