Говорухин В., Цибулин Б. Компьютер в математическом исследовании (1185927), страница 10
Текст из файла (страница 10)
2.1. Чтобы выяснить, является ли выражение ЕХ объектом типа Хтпо, исполъзуется команда Суре (ЕХ.К1«с$) В качестве Х(п(( может выступать один из терминов, приведенных в табл. 2.1, а также многие другие типы, полную и адекватную информацию о которых предоставит справка Мар!е. Квалифицированный пользователь может определить также н свои типьс. Более полную информацию о термине Х) п((можно получить, обратившись к справке Мар!е: ?Суре(К1«П) Приведем ряд примеров, иллюстрирующих действие команд ииаССуре и Суре; > инаССуре( 1.2еЗ),илаССуре( 1/2),ннаССуре(а)п(х)); /)оа/,угас/(о«,уй«с/(ол > Г:-х+у инаССуре(С),инаССупе("1"),инаССуре(""Ч''): +, хуг«Ь«С илеча( > иьассуре(Р1>з)/ипассуре(0.. 1).ипассуре(а(к)): <,, 1«аехеа' > ипаССуре(а,Ь),ипаССуре(Га.Ь)),иэаССуре((а.о)): ехргхеЧ,! П/, лес > инаССуре(<1,2>),ипаССуре(<112>),ипаССуре( 1,2>,<З,б»); )/ес/охи., )/есгог, Ма/г/х > Суре(а-Ь."+").Суре(а/Ь,"*") Суре(а апп Ь,"апд"); /гие, /гие, ггие > Суре(З,ров111че),Суре(в(п(х"у) Сг(Ч).гуре(а!п(х)+1,Сгъв); Сгие, /гие,уа(хе При анализе выражений полезна команда па а ( ЕХ.
)/Ад), позволяющая определить, содержит ли объект ЕХ выражение или переменную )/Ай. Результатом выполнения команды является булево выражение. Проверить, входит ли в объект ЕХ объект типа Тур, позволяет команда Ьазсуре(ЕХ, ТУР). Эти команды особенно полезны при программировании, когда для работы существенна информация о типе или со- Структура выражений 57 ставных частях выражения (см, вывод формулы метода Рунге-Кутты в главе 10 «Примеры решения задача). Приведем простую иллюстрацию действия этих ко- манд: > д:-1-х"2: Паз(д,х"2); Пазтуре(д,(иост!оп); ппе уа)зе Таблица 2.1.
Перечень типов Термин Значение "апо", "пот", "ог" аггау ехргзец (1оат (таст)оп толст!оп Ьтаггау !поехеп штедег 115( ПроцедУра Разложение ргосепоге зег!ез зе( Теперь перейдем к команде сопуегс, назначение которой — преобразовывать одни объекты в другие с изменением их типа. Для преобразования выражения Ех со- гласно заданному параметру ОРТ применяется вызов соптегг (ЕК.ОРТ) 5(г)пд зуеЬо! тао)е ипета1 Аггау Мз(г!х Уесгог(со1швп). уестог(гон) Произведение выражений Сумиа выражений Степень Диапазон Определение типа Операция отношения Булевы операции Массив Последовательность выражений Вещественное число Дробь Функция Массив для вычислений, использующих арифнетическид процессор компьютера Индексная величина Целое число Список Множество Строка Символьная величина Таблица Невычисленное (неоцененное) выражение Массив дпя команд из пакета С)пеагА1 деЬга Матрица для команд из пакета С! пеагА)деога Вектор-столбец и вектор-строка для команд из пакета С)пеагА1 деЬга 58 Глава 2.
Аналитические преобразования в нар[в В качестве параметра ОРТ могут выступать следующие термины: "+", "*", О, Ьаве, Ьт пагу, Ьт паап а1, сап ггас, (]еств(а1, ((едгеев, гй ГГ, ((аиЬ]е, едиа1(су, ехр, ехр1 п, ехрв(псов, Гзссаг(а1, т]аат, Ггасс(ап, 6АиИА, Ьех, Ьагпег, ьавтГ)]е, ьурегдеав(, 1езвтнап, 1езведиа1, 1)зт,115с115т,1п,п(атгтх,а(есг(с,вю((2,в(и1с15ес,папе,аста1,рагтгас,ра]аг,ра1упов,гагиапз, габ(са1, гат1апа1, гагра]у, Й0010Г, зет, 5(псаз, здгггее, сап, тг)д, чессаг.
Отметим, что назначение ряда терминов разъяснено ранее или будет указано далее, мнемоника помогает понять смысл других терминов (Ь( па гу, 01ТГ, га01 апв). За получением точного значения любого термина сегв((и следует обратиться к справочной системе, набрав команду ?сапчегт[сегвп'п] Приведем характерные случаи употребления команды сапчег[: о сапчегс([15,аггау) — преобразование списка [15 в одномерный массив; 0 сапчегт([15 1, ...[15 И.(пзбг)х) — преобразование списков [15 1, ..., [15 и в матрицу; 0 сапчегт([!5, гатра1у) — преобразование списка Ь[5 в полиномиальное выражение с рациональными коэффициентами; О сапчегт(Р.1150) — преобразование палинома Р в список. Кроме того, о некоторых разновидностях команды сапчегс будет рассказано ниже.
Следующий пример показывает, как, вычислив разложение функции сав в ряд Тейлора (см. главу 3 Математический анализ в Мар)е»), перевести его в полинам, воспользовавшись для этого командой сапчег[: > з:-зеыез(саз(х).х,?); 3 1 4 1 б 7 з зх 1 — -х + — х — — х + 0(х ) 2 24 720 > р:-санчесе(з.ра!упав); 1, 1, 1 р:=1--х + — х — — х 2 24 720 После преобразования списка (115т) в переменную типа множество (вес) число элементов может уменьшиться, так как Мар!е удаляет из множеств одинаковые элементы. Это можно использовать для формирования списка без одинаковых элементов: > 51:-сапчегт([2.0,0,1].зев): сапчегт(51.1!зс); 5) з> (О, 1,21 [0, Ц21 Для перевода тригонометрического выражения к экспоненциальной форме и обратно также можно использовать команду сопчег~) > Г:-ехр(х+1»Р()+ехр(!"х); санчесе(т.тг(д); сапчегт(х.ехр): о»(ю (1>( е +е -сава(х) — в(пщх) + сав(х) + (йе(х) (О) -в*+ е Етруачура выражений 59 вычисление выражений Целое семейство команд посвящено операциям оценивания или вычисления выражений: еча1, еча)г, еча1а), еча1с и др.
Чтобы получить текущее значение переменной скалярного типа, достаточно в строке ввода указать ее имя. Для просмотра содержимого таких структур данных, как таблицы, матрицы и процедуры, нужно использовать команду печати рг)пт или команду еча1. Поясним это на примере, Определим массив А: > А;-аггау(1,.2.1,.2.Па,Ь].(с,аП): Если в строке ввода указать просто имя А, то вывода содержимого массива не последует.
Для вывода применим команду еча1: > Я; еча1(А); А ~:И Поскольку индексы массива А принимают положительные значения, то результат выведен в виде матрицы, Следовательно, вывести содержимое А можно было и при помощи команды оценки матриц еча1ш. Команда еча1 необходима для подстановки значений в переменные, участвующие в определении массива: > ааьа(с-13.еча)(А)): ~' '1 Для массивов с неположительными значениями индексов вывод содержимого проводится в табличной форме.
Например: » В:-аггау(- 1. АЬ (а,Ь]): ачьа(Ь а1п(Р1>а),еча)(В)): апау( 1-() ! (-1) =а (О) = -в!п(И) !) Этот пример напоминает также, что в Мар!е упрощение выражений с функциями производится и при подстановках (использована формула приведения для синуса). Многоцелевая команда еча1(ЕХ. ЕО) позволяет оценить значение функции ЕХ при значениях переменных, определенных уравнением (множеством уравнений), без присваивания.
Например: > еча!(а)п(а)+з>а+у,(а"Р!/з,у а!); улк 1 -~/3+в+а 2 ух 60 Глава 2. Аналитические преобразования в Иар1е По умолчанию в Мар1е проводится полное оценивание для глобальных переменных и выполняется одношаговая оценка для локальных переменных процедур, см. главу 7 «Программирование в Мар!ем При работе в Мар!е нужно иметь в виду, что система запоминает назначения. Например: > х;-у: у:-з: х:=7: х,у,х; 7, 7, 7 Для выяснения вложенности назначений переменной применяется команда еуа) с целым числом в качестве второго параметра для указания уровня вложенности. Так, для определенной выше переменной к имеем: > зеп(еча)(х,Х),1-1..3); у,к7 Если переопределить одну из участвующих в определении к переменных, то полу- чим: > у:-Рт: х у,х; я,л, 7 Ряд команд семейства еча) служит для вычисления выражения с преобразованием к нужному типу.
Если в выражении ЕХ все числа заданы при помощи рациональных величин (дроби, степени), то для перехода к числам с плавающей запятой применяется команда еча)т 1ЕХ) Кроме того, для ускорения вычислений с плавающей запятой имеется команда ета1ПГ, использующая арифметику компьютера, то есть при этом все вычисления происходят на аппаратном уровне Например, использование арифметического процессора позволяет на порядок сократить время вычисления последовательности значений синуса: > г!пег зео( з)п11"0.1),1-1..10"4) ): 13.330 > г1ие1 зе01 ета)нттз)п1Х*0.1)),Х-1..10-4) ); 1Л70 здесь использована команда г)вте, позволяющая оценить (в секундах) время, затраченное на вычисление заданного выражения или команды.
Для вычисления матричного выражения ЕХ с матрицами в качестве операндов и допустимыми операторами $*, +, *, " применяется команда еча)иЕЕХ) Для вычисления значения комплексного выражения ЕХ применяется команда ета)с ЕЕХ) Операции с Комплексными аеличинами В Мар1е комплексные числа представляются собственными структурами данных, благодаря чему быстрее выполняются операции комплексной арифметики. Для Операции с формулаии 61 работы с комплексными числами необходимы функции (команды), перечислен- ные в табл. 2.2 (СХ обозначает комплексное выражение).
Таблица 2.2. Функции для работы с комплексными числами Назначение Имя Вычисление сопряженной величины для комплексного выражения Определение мнимой части выражения Преобразование комплексного выражения в полярные координаты Определение действительной части выражения соп3ойате(СХ> 1и(СХ) ро1аг(СК> йе(СХ) Приведем примеры, использующие некоторые нз этих функций: > с:-2*(х>1>у>"2/баз! п(Р!*зцгт(2001) >; еча1т(с>; с» — (х+1у) + в!п(л>/200! ) 2 5 .4000000000(х+ 1. /у) +.7448!33732 > йе(с); еча1с(йе(с)); ;п( чт2001) 2 ад(( +1 )г) 5 в!п(л,> 200 ! ) + — х — — у 2 г 2 5 5 Операции с формулами Разложим на множители это выражение, используя команду тастог: > г:-Гасгог(и>; (х — у) (у+х) х -х у +у Преобразуя математические выражения, обычно приходится делать множество рутинных операций: приводить подобные члены, раскладывать на множители (факторизовьвать), раскрывать скобки, делать подстановки и т.д.