Кpаткое посібник по maple

Використання пакетів

До складу Maple входить велика кількість спеціалізованих пакетів, орієнтованих, як правило, на конкретні розділи математики. Вантаження пакета здійснюється за допомогою команди with. аргументом якої служить ім'я пакета:

Warning, new definition for maximize
Warning, new definition for minimize
[Basis, convexhull, cterm, define_zero, display, dual, feasible, maximize, minimize, pivot, pivoteqn, pivotvar, ratio, setup, standardize]

Нерідко пакети містять функції, що називаються так само, як функції, що входять в ядро ​​Maple, але відрізняються від них. У таких випадках після подгрузки пакету містяться в них функції отримують більш високий пріоритет у порівнянні зі своїми "тезками". У нашому прикладі система попередила нас, що після підключення пакету лінійної оптимізації буде діяти нове визначення функцій maximize і minimize.

Як результат успішного виконання команди with Maple виводить на дисплей (курсивом у квадратних дужках) перелік функцій, що стали доступними після активізації пакета.

Нерідко користувачеві потрібні не всі функції пакета, а лише незначна їх частина. У цих випадках для економії оперативної пам'яті комп'ютера корисно використовувати команду with з декількома аргументами. При цьому перший з них як і раніше буде означати ім'я підключається пакета, а решта - імена тих функцій пакета, які слід довантажити. Наприклад, замість кількох десятків функцій, що входять до складу пакета з теорії чисел, можна підключити лише кілька функцій, що цікавлять користувача в поточний момент:

> With (numtheory, divisors, factorset, phi, order, primroot);

[Divisors, factorset, order, ф, primroot]

Можливо і "одноразове" використання функції зі спеціалізованого пакета без збереження її в оперативній пам'яті після звернення. Для такого виклику необхідно вказати ім'я пакету, супроводивши його ім'ям викликається функції, укладеними в квадратні дужки:


При повторному виклику функції визначника (без вказівки пакета лінійної алгебри, в якому вона зберігається). Maple "забув", що таке det і порахував її користувальницької функцією.

Слід мати на увазі, що деякі функції, "приписані" до тих чи інших спеціалізованим пакетам, насправді доступні з ядра Maple. Такі, наприклад, функції ifactor. isolve. isprime. ithprime. nextprime і prevprime з пакета numtheory. matrix і vector з пакета linalg. інертні функції з пакету student. Врахування цієї особливості дозволить економніше використовувати оперативну пам'ять комп'ютера і в кінцевому підсумку прискорити обчислення.

Лінійна алгебра

У попередньому розділі ми розглянули загальні принципи роботи зі спеціалізованими пакетами Maple. Зупинимося дещо докладніше на вивченні одного з найбільш об'ємних (по числу функцій) і часто використовуваних пакетів - linalg. (Відзначимо, що починаючи з 6-ї версії в комплект Maple входить ще один пакет з лінійної алгебри - LinearAlgebra.)

Довантажити пакет за допомогою команди with, ми побачимо перед собою перелік назв функцій, а також попередження про нове визначення норми і сліду:

Для знайомства з основними функціями пакета задамо кілька матриць, проілюструвавши при цьому різні способи їх завдання.

> F: = transpose (randmatrix (3, 3, unimodular, entries = rand (-3..3)));


В останньому випадку ми згенерували верхнетреугольную унімодулярную матрицю (із зазначенням діапазону розкиду коефіцієнтів) і потім транспоновану її.

Знайдемо визначник матриці C:

Для множення узгоджених матриць в Maple використовується операція *. Знайдемо різницю творів матриць A і B, взятих в протилежних порядках:

Ми бачимо, що замість звичного для нас остаточного результату Maple повернув в якості відповіді якийсь "напівфабрикат" (множення і віднімання матриць позначені, але не виконані). Справа в тому, що для складних об'єктів (матриць, масивів, таблиць, процедур) в Maple використовується так зване "правило обчислення до останнього імені" (last name evaluation). Це правило (на відміну від "правила обчислення до кінця", використовуваного для менш громіздких об'єктів) застосовується з метою уникнення зайвого виведення на екран. Для того, щоб все ж вивести на екран інформацію, що цікавить нас матрицю, скористаємося функцією evalm (інша можливість - використовувати вже відому нам функцію op):

Знайдемо ранг отриманої матриці:

Знайдемо матрицю, зворотну до A. В цьому випадку, на відміну від бінарної операції множення матриць, Maple обчислює результат до кінця:

Для матриць A і B знайдемо власні значення і належать їм власні вектори:

> Eigenvals (A); eigenvectors (A);

Зверніть увагу, що при зверненні до функції eigenvectors (eigenvects) Maple повертає власні значення матриці, їх кратність як коренів характеристичного многочлена і базис підпростору з власних векторів, що належить кожному власному значенню.


Зрозуміло, Maple вміє працювати не тільки з числовими матрицями:

> F: = collect (charpoly (M, lambda), lambda);

В останньому прикладі ми знайшли характеристичний поліном M і згрупували його відносно.

Волгоградський державний педагогічний університет
Кафедра алгебри, геометрії та інформатики

Схожі статті