- •Глава 2. Основные понятия и конструкции системы
- •2.1. Алфавит и синтаксис Maple-языка
- •2.2. Последовательности выражений
- •2.3. Операторы оценивания выражений
- •2.4. Извлечение операндов выражений
- •2.5. Наборы и операции с наборами
- •2.6. Списки и операции со списками
- •2.7. Типы объектов и выражений
- •2.8. Преобразование типов выражений
- •2.9. Имена переменных
- •2.10. Типы переменных
- •2.11. Оператор присваивания
- •2.12. Отмена операции присваивания
- •2.13. Ограничение значений переменных
- •2.14. Операторы
- •2.15. Математические функции
- •2.16. Операции с формулами и выражениями
- •2.17. Операции с полиномами
- •2.18. Массивы, векторы и матрицы
- •2.19. Строковые переменные
- •Упражнения
- •Глава 3. Операции и функции математического анализа
- •3.1. Вычисление сумм и рядов
- •3.2. Вычисление произведений членов некоторой последовательности
- •3.3. Вычисление производных
- •3.4. Вычисление пределов
- •3.5. Интегрирование выражений
- •3.6. Разложение функций в ряды
- •3.7. Нахождение экстремумов, максимумов и минимумов функций
- •3.8. Анализ функций на непрерывность
- •Упражнения
- •Глава 4. Решение уравнений и неравенств
- •4.1. Основные понятия и конструкции
- •4.2. Решение одиночных уравнений
- •4.3. Решение систем алгебраических уравнений
- •4.4. Присваивание значений полученных решений
- •4.5. Поиск корней полиномов
- •4.6. Решение тригонометрических уравнений
- •4.7. Решение неравенств
- •4.8. Решение функциональных уравнений
- •4.9. Решение рекуррентных уравнений
- •4.10. Численное решение уравнений и систем
- •4.11. Решение дифференциальных уравнений
- •Упражнения
2.7. Типы объектов и выражений
Под объектами в Maple понимаются сами выражения и их части. Эволюция объектов зависит от их типа. Тип объекта (expr) можно проконтролировать с помощью функции вида
whattype(expr).
Эта функция выводит тип указанного объекта. Здесь под типом объекта понимается тип операции между подобъектами первого уровня, которая образовала этот объект. Перечислим некоторые из типов:
+, -, *, ^ - объекты представляют собой арифметические выражения, составленные из скалярных величин, результатами которых не есть число;
<, >, =, <>, <=, >= - объекты представляют собой неравенства или уравнения;
and, not, or – бинарные выражения;
array – массивы;
table – табличная величина;
indexed – индексированные переменные;
exprseq – последовательность выражений;
float, integer, fraction – арифметическое выражение, результат которого есть число в форме с плавающей точкой (float), в формате целых чисел (integer) или в виде обыкновенной дроби (fraction);
function, procedure – объект состоит из обращения к функции (function) или процедуре (procedure);
set – объект представляет собой множество;
list – список выражений;
series – результат разложения в степенной ряд.
Функция вида type(x, t) - возвращает true (истина) или false (ложь) в зависимости от того, является ли x выражением, имеющим тип t. Возможные значения параметра t не совпадают с типами выражений, возвращаемых оператором whattype. Это связано с тем, что, как правило, любое математическое выражение можно рассматривать как с точки зрения синтаксиса системы, так и со смысловой точки зрения. Например, выражение a*x^2+b*x+c с точки зрения синтаксиса – сумма, а с другой стороны – это полином. Полный список стандартных типов системы, определяемых этим оператором, включает в себя около 100 наименований. Его можно посмотреть в справке командой >?type
Примеры:
> whattype(x - y);
+
> whattype(x^2*f(y));
*
> whattype(1/x);
^
> type( a + b, polynom );
true
> type( a * b, `+` );
false
> type( a and b, `and` );
true
Функция вида
hastype(expr, t)
возвращает значение true (истина) или false (ложь) в зависимости от того, содержит ли выражение expr подвыражение типа t.
Примеры:
> hastype((x+1/2)*exp(3),fraction);
true
> hastype(x^2+3*x+5,radical);
false
> hastype(x^2+3*x+5,`*`);
true
2.8. Преобразование типов выражений
Одни и те же математические выражения в Maple могут быть записанными различными конструкциями. В зависимости от вида конструкции, полученный объект будет иметь определенную форму представления, тип и присущий этому типу набор функций обработки. Например, одно и тоже число может быть записано в системах с различным основанием, координаты точки А(2,3) на плоскости можно задавать в виде последовательности целых чисел 2,3, вещественных чисел 2.,3., набора [2,3], одномерного массива array(1..2,[2,3]) и т.д.
Для преобразования выражения expr к типу form используется команда вида
convert(expr, form, arg3, ...) .
Здесь arg3 и т.д. – необязательные параметры, содержащие, возможно, дополнительные переменные, участвующие в преобразовании.
Отметим, что не каждое выражение можно преобразовать к любому из имеющихся в системе типов. Способ преобразования зависит от типа исходного выражения и типа, к которому это выражение преобразуется. Список допустимых значений второго параметра уже списка всех типов выражений системы и включает в себя около 70 типов. Некоторые из преобразований - преобразования типов данных, например, convert([x,y],set). Другие - преобразование формы, например, команда convert(x^3-3*x^2+7*x+9,horner,x) возвратит (((x ^ 3) *x + 7) *x) + 9.
Примеры:
> convert(1.2315,fraction);
> convert(2463/2000,float);
1.231500000
> convert(12,binary);
1100
> convert(1100,decimal,binary);
12
> t:=taylor(sin(x),x=0);whattype(t);
series
> p:=convert(t,polynom);whattype(p);
+