Рис. 2.10. Окно предварительного просмотра данных с открытой вкладкой Table
Вкладка Image (Изображение) позволяет просмотреть массивы в виде рисунков — см. рис. 2.11. Тут почти все понятно, но стоит обратить внимание на список Color Map (Цветовая Карта). С его помощью можно задать отображение изображения в формате Greyscale (черно-белое изображение с оттенками серого цвета) или изображение интенсивности каждой из составляющих цветного изображения. С вкладкой Options, позволяющей изменить опции данных, читатель может познакомиться самостоятельно.
Рис. 2.11. Окно предварительного просмотра данных с открытой вкладкой Image
Активизируя кнопку Insert можно вставить изображение в документ Maple. Это показано на рис. 2.12. При этом изображение можно растягивать или сжимать в различных направлениях.
Рис. 2.12 Пример вставки в документ Maple 10 изображения
Следует отметить, что в Maple 10 появился новый графический объект — наброски (Sketch). Подробно работа с ними описана в главе 8.
2.2.8. Создание Maple-таблиц и их применение
Еще одним важным типом множественных данных являются таблицы. Они задают данные с произвольной индексацией. Для создания таблиц служит функция table, которая при вызове в простейшем виде table[] создает шаблон пустой таблицы:
> table[];
table[ ]Пустая таблица резервирует память под данные. Когда параметром функции table является список выражений, он выводится в естественном порядке расположения элементов таблицы, но с произвольным порядком индексации:
> Т:=table ({1,2,Pi, `string`});
T: = table([1 = 1, 2 = 2, 3 = π, 4 = string])> Т [3] ;
π> S:=table([(one)=1,(two)=2,(three)=3]);
S := table([one = 1, three = 3, two = 2])> S [1];
S1> S[two];
2> S[three];
3> entries(S);
[1], [3], [2]> indices(S);
[one], [three], [two]В конце приведенных примеров показано, как можно выделить отдельные компоненты таблицы и вывести значения и индексы таблицы с помощью функций entries и indices. Следующие примеры показывают, что таблицу можно использовать для выполнения математических преобразований:
> F := table([sin=cos, cos=-sin]): op(op(F));
[cos = -sin, sin = cos]> F[cos] (Pi/2);
-1> F[sin] (0);
1> evalf(cos(Pi/2));
0.> evalf(sin(0));
0.Следует внимательно присмотреться к этим примерам — они демонстрируют замену функции косинуса на синус со знаком «—» и синуса на косинус.
2.2.9. Пакет ListTool для работы со списками
Для работы со списками имеется пакет расширения ListTool. Его вызов и состав новых определений — функций представлены ниже:
> with(ListTools);
Warning, the assigned name Group now has a global binding
Binary Place, Binary Search, Categorize, Dot Product, Enumerate, Find Repetitions, Flatten, Flatten Once, Group, Interleave, Join, JoinSequence, MakeUnique, Pad, PartialSums, Reverse, Rotate, Sorted, Split, TransposeПрименительно к задачам данной книги применение этого пакета ограничено. Поэтому ограничимся несколькими примерами его применения (файл listtools):
> myList := [seq( ithprime (i) , i=1..20 )];
myList := [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71]> BinarySearch(myList, 61, `<`);
18> Reverse (myList);
[71, 67, 61, 59, 53, 47, 43, 41, 37, 31, 29, 23, 19, 17, 13, 11, 7, 5, 3, 2]> FindRepetitions(rnyList);
[ ]> FindRepetitions([1, 2, 3,1, 5, 3]);
[1,3]> L := [0., .84, .91, .14, -.76, -.96, -.28, .66, .99, .41, -.54];
L := 10., .84, .91, .14, -.76, -.96, -.28, .66, .99, .41, -.54]> M := [1., .54, -.42, -.99, -.65, .28, .96, .75, -.15, -.91, -.84];
M := [1., .54, -.42, -.99, -.65, .28, .96, .75, -.15, -.91, -.84]> DotProduct(L, L);
5.0063> DotProduct(L, M);
.3162Нетрудно заметить, что применение этих функций (как и ряда других) достаточно очевидно.
2.2.10. Структура разбросанных полиномов ряда переменных SDMPolynom
В Maple 9.5 введена новая структура данных — разбросанные полиномы ряда переменных — SDMPolynom (Sparse Distributed Multivariate Polynom). Примеры применения новой структуры:
А: =SDMPоlynоm(х³ - 2 х² - 2 х + 4, [х])
B:=SDMPolynom(х*у^2+х^2*у^3 + (2 + I)у + 1, [х, у])
Из этих примеров форма задания таких полиномиальных структур очевидна. С ними можно проводить различные операции — вычислять степень по каждой переменной, выполнять арифметические операции и т.д.
2.3. Применение констант
2.3.1. Символьные и числовые константы
Константы — это простейшие именованные объекты, несущие заранее предопределенные значения. Их имена (идентификаторы) также заранее определены и не могут меняться. Подробную информацию о константах можно найти, исполнив команду ?constant. Константы могут быть символьными, т. е. представленными только своим символьным именем.