Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать неотразимый комплимент Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?

Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Пакет linalg





План

1. Пакет linalg.

2. Пакет LinearAlgebra.

3. Елементарні операції з матрицями і векторами.

4. Рішення систем лінійних рівнянь.

 

У Maple виконання перетворень лінійної алгебри можна здійснювати за допомогою команд двох пакетів: linalg і LinearAlgebra, функціональність яких практично однакова. Перший пакет входив до складу і всіх попередніх версій Maple, тоді як другий пакет — це новий засіб, що дозволяє працювати з числовими матрицями, у тому числі і з матрицями великих розмірів, використовуючи всю потужність відомого пакету чисельних розрахунків NAG (Numerical Algorithms Group).

Основними об'єктами, з якими працюють команди цих пакетів, є матриці, проте матриці одного пакету не еквівалентні матрицям іншого. У пакеті linalg використовуються матриці, побудовані на основі масиву, створюваного командою array про, тоді як в пакеті LinearAlgebra застосовуються вектори і матриці, побудовані на основі нової структури r-таблииы (r-table) і створювані спеціальними конструкторами vector про і Matrix про або з використанням короткої нотації <а,b,с>. Матриці в пакеті linalg обчислюються тільки до рівня своїх імен, тому в ньому неможливо обчислити операції поелементного підсумовування або віднімання, використовуючи прості операції над ідентифікаторами матриць, і доводиться користуватися спеціальним синтаксисом через команду evalm(). У пакеті LinearAlgebra матриці обчислюються до рівня своїх елементів, тому просте завдання імені матриці у області введення робочого листу приводить до відображення її елементів, а не імені матриці, як у випадку з пакетом linalg. Окрім цього, в пакеті LinearAlgebra матриці можуть задаватися як операнди складання і віднімання, що приводить до поелементного виконання вказаних операцій без використовування додаткових синтаксичних конструкцій.

Щоб ухвалити рішення, якому пакету лінійної алгебри віддати перевагу, рекомендується взяти до уваги наступні обставини:

• Пакет linalg корисний при виконанні абстрактних обчислень над матрицями і векторами.



• Пакет LinearAlgebra володіє більш дружнім інтерфейсом, працює з числовими матрицями і особливо ефективний при роботі з числовими матрицями великих розмірів через можливість звернення до програм пакету чисельних розрахунків NAG, що відкомпілюються.

Пакет linalg

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

Всі команди пакету лінійної алгебри працюють з матрицями і векторами. У Maple матрицею вважається двовимірний масив, індекси якого змінюються від одиниці. Аналогічно, вектор — це одновимірний масив з індексом, що змінюється від одиниці. Визначити матрицю або вектор в Maple можна двома способами: або за допомогою команди array() стандартної бібліотеки, або командами matrix () і vector() пакету linalg.

Найзагальніший синтаксис команди array про, яка дозволяє задавати багатовимірні масиви з індексами, що змінюються в діапазонах цілих (як позитивних, так негативних) чисел, наступний:

array(діапазони, список, опції);

Всі параметри необов'язкові і можуть задаватися в довільному порядку. Параметр діапазонами є цілочисельні діапазони зміни індексів масивів, що задаються через кому, — розмірність масиву рівна кількості заданих діапазонів. Значення елементів масиву задаються параметром список у вигляді списку для одновимірних масивів або списку списків для багатовимірних масивів, Як значення параметра функції можна застосовувати symmetric, antisymmetric, identity і diagonal. Вони використовуються для завдання масивів спеціального вигляду (симетричних, антисиметричних, одиничних і діагональних). Для завдання векторів і матриць за допомогою цієї функції слід указувати діапазони зміни індексів, що починаються з одиниці:

> vec:=array(1..2,[1,2]);

> matr:=array(1..2,1..2,[[1,2],[10,15]]);

Для завдання тих же вектора і матриці можна використовувати відповідно команди vector() і matrix() з пакету linalg, заздалегідь підключивши його командою with (linalg). Синтаксис цих команд наступний:

vector (n,[элемент1,элемент2,...]);

matrix (n,m,[элемент1,элемент2,...]);

Тут цілі величини n і m задають розмірності вектора і матриці, а значення їх елементів задаються у вигляді простого списку.

> vec:=vector(2,[1,2]);

> matr:=matrix(2,2,[1,2,10,15]);

У Maple 6 команди vector() і matrix() знаходяться в основній бібліотеці, тому ними можна користуватися і без підключення пакету linalg. Проте доступ до всієї решти команд цього пакету вимагає його явного підключення.



Значення елементів вектора або матриці не обов'язково задавати при створенні цих об'єктів. Можна пізніше за допомогою загальноприйнятого індексного посилання на елементи вектора або матриці (у квадратних дужках після імені вектора або масиву задаються індекс(ы) необхідного елементу) привласнити їм нові значення або використати вже привласнені значення в обчисленнях.

> vec[1]:=5;

> eval(vec);

Зверніть увагу, що для відображення вмісту вектора vec використана команда eval(), оскільки змінний, містить складні об'єкти, якими є і вектори, і матриці, обчислюється не повністю, а тільки до свого імені.

Пакет linalg містить більше ста корисних команд виконання матричних операцій, а також структурних перетворень матриць. Перелік всіх доступних команд можна знайти на сторінці довідки, що відображається командою ?linalg.






Date: 2015-04-23; view: 326; Нарушение авторских прав

mydocx.ru - 2015-2020 year. (0.008 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию