При этом изображение можно растягивать или сжимать в различных направлениях.

Рис. 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, [х, у])

Из этих примеров форма задания таких полиномиальных структур очевидна. С ними можно проводить различные операции — вычислять степень по каждой переменной, выполнять арифметические операции и т.д.

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату