Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Теоретичні відомості. Визначення матриць та векторів.Описання матриць та векторів здійснюється через визначення змінних




Визначення матриць та векторів. Описання матриць та векторів здійснюється через визначення змінних. У цьому разі використовують три прості правила.

1. Усі елементи матриці або вектора необхідно брати у квадратні дужки.

2. Між числами, які відповідають елементам вектора або рядка матриці, можна ставити пробіл або кому.

3. Між рядками матриці ставлять крапку з комою.

 

Найважливіше, що є у системі MatLab і чого немає в інших системах програмування та математичних САПР — це можливість виконання арифметичних дій ізматрицями та векторами та їх використання як параметрів математичних функцій. У цьому разі обчислення проводяться з кожним елементом матриці або вектора. З основ програмування відомо, що в кожній з мов програмування запис типу sin(v) або exp(M), де М — матриця,v — вектор, був би некоректним. Щоб виконати будь-яку математичну дію з елементами вектора або матриці, потрібно організувати цикл. Обчислення функції від всіх елементів вектора або матриці є можливим у системі MathCAD, але там це робиться через спеціальну функцію векторизації. З точки зору точного математичного опису вцьому є певна рація, оскільки у математиці такі операції заборонені. Але під час розробки реальних програм найчастіше необхідно обробляти масиви великих чисел саме таким чином, наприклад, поелементно додавати, множити поелементно або на константу, обчислювати функції від елементів масиву. А такі дії, як множення матриць або векторний добуток двох векторів, потрібні програмісту значно рідше, тому їх можна реалізувати через внутрішні функції системи. Розробники MatLab виходили, ймовірно, саме із цих міркувань, адже система створювалася для професіоналів?програмістів. Томуу MatLab використані записи типу exp(M) або sin(v) як поелементні дії з матрицями та векторами.

Множення, ділення, піднесення у степінь умові MatLab реалізовані як за правилами лінійної алгебри, так і для поелементних операцій, але запис цих функцій різний. Якщо визначені дії слід виконувати поелементно, використовуються оператори.* для поелементного множення,./ для по елементного ділення та.^ для поелементного піднесення у ступінь, у цьому разі розмірність масивів для поелементних операцій має бути однаковою. При використанні операторів */ та ^математичні дії виконуються за правилами лінійної алгебри. У випадку множення вектора або матриці на числову константу по елементні операції повністю збігаються з операціями лінійної алгебри.

Дії додавання та віднімання для матриць або векторів та числових констант мають єдине значення. Під час додавання або віднімання двох матриць або векторів ці операції також виконуються поелементно, у цьому разі для уникнення помилок програмування розмірності векторів або матриць повинні бути однаковими.

Функції перетворення матриць. У системі MatLab є багато функцій для створення матриць на основі заданої та перетворення матриць. Такі матричні операції дуже часто використовують під час числових обчислень для погодження отриманих результатів між собою, Розглянемо головні матричні функції системи, наведемо формати їх запису та приклади використання.

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

Формат функції об’єднання матриць cat(dim, A, B), де

dim — специфікація розмірності масиву, а A та B — матриці, що об’єднуються. Параметри специфікації розмірності dim визначені таким чином:

dim = 1 — об’єднання матриць за рядками, кількості рядків у матрицях A та B повинні збігатися;

dim = 2 — об’єднання матриць за стовпчиками, кількості стовпчиків у матрицях A та B повинні збігатися;

dim = 3 — об’єднання матриць зі створенням тривимірного масиву, кількості матриць A та B повинні бути однакової розмірності.

Слід зазначити, що функцію об’єднання матриць легко здійснити через множинну індексацію та методи формування матриць, наявність функції cat у системі MatLab є дещо надлишковою і користуються нею рідко.

Іншими важливими функціями опрацювання матриць є функції переставлення їх елементів.

fliplr(А) здійснює дзеркальне відображення елементів матриці зліва’направо відносно вертикальної осі.

flipud(А) здійснює дзеркальне відображення елементів матриці зверху вниз відносно горизонтальної осі. Функція reshape(A, l,k) створює з матриці A розмірності m*n іншу матрицю розмірності l*k через послідовний вибір елементів матриці А по стовпцях. Обов’язковою умовою для проведення такої операції є виконання співвідношення m•n = l•k. Але безперечною перевагою функції reshape є те, що за її допомогою можна здійснювати будь’які перетворення розмірності матриці.

Розглянемо тепер важливі функції створення трикутних матриць і матриць з відповідними діагональними елементами.

tril(A)створює нижню трикутну матрицю на основі матриці А через присвоєння значення «0» усім її елементам, розташованим нижче головної діагоналі.

triu(A) створює верхню трикутну матрицю на основі матриці А, анулюючи її елементи, розташовані вище головної діагоналі. Для створення діагональної матриці використовують функцію MatLab diag.

Можливі такі формати функції:

diag(v) — створення квадратної матриці, на головній діагоналі якої розташовані елементи вектора v;

diag(v, n) — створення прямокутної матриці, на одній із діагоналей якої розташовані елементи вектора v, у цьому разі параметр n визнає зсув діагоналі розташування елементів відносно головної діагоналі. Значення n > 0 відповідають зсуву відносно головної діагоналі вгору, а значення n < 0 — зсуву вниз.

Інша функція формування матриці на основі заданої — це функція repmat(A,m,n), яка повертає матрицю B, що є результатом розмноження матриці A m разів по стовпчиках та n разів по рядках. Розглянули два способи виконання тієї самої операції через використання множинної індексації, тому наявність функції repmat у системі MatLab теж є дещо надлишковою.

Є крім того, функція повороту елементів матриці на 90°

rot90(A, k), де A — матриця, що перетворюється, k — кількість поворотів, за замовчуванням k = 1.

У MatLab функція норми вектор а norm має такі формати:

norm(X, р) — функція повертає норму порядку р для вектора Х;

norm(X, р) — функція повертає норму другого порядку для вектора Х;

norm(X,’inf’) — функція повертає максимальне значення з абсолютних значень елементів вектора;

norm(X,’– inf’) — функція повертає мінімальне значення з абсолютних значень елементів вектора.

 

Завдання:

1. Здійсніть наступні операції:

1. Уведіть довільну матрицю розміром (4*6). Знайдіть суму найбільших елементів її рядків.

2. Уведіть квадратну матрицю (5*5) з одним найменшим елементом.Знайдіть суму елементів рядка, у якому розміщений елемент із найменшим значенням.

3. Уведіть матрицю (6*9), у якій є єдині найбільший і найменший елементи і вони розташовані в різних рядках. Поміняйте місцями рядок, що містить найбільший елемент, і рядок із найменшим елементом.

4. Уведіть матрицю (5*6) із різними значеннями елементів. У кожному рядку виберіть елемент із найменшим значенням, з отриманих чисел виберіть найбільше. Знайдіть індекси отриманих елементів.

5. Уведіть матрицю (5*6). Знайдіть вектор, елементами якого є найбільші елементи відповідного рядка матриці.

6. Уведіть матрицю (5*6). Побудуйте вектор, елементами якого є суми найбільшого й найменшого елементів відповідного рядка матриці.

7. Уведіть матрицю (5*6). Побудуйте вектор, елементами якого є середні значення елементів відповідного рядка матриці.

8. Уведіть матрицю (5*6). Побудуйте вектор, елементами якого є середньоквадратичні відхилення елементів відповідного рядка матриці від їхнього середнього значення.

9. Уведіть матрицю (5*6). Побудуйте вектор, елементами якого є середні арифметичні найбільшого й найменшого елементів відповідного рядка матриці.

10. Уведіть матрицю (6*5). Побудуйте вектор, елементами якого є суми квадратів елементів відповідного стовпчика матриці.

11. Уведіть матрицю (5*5). Побудуйте вектори, елементами яких є суми елементів стовпчиків матриці, добутки елементів стовпчиків і найменші значення елементів стовпчиків.

12. Уведіть матрицю (5*6). Знайдіть середнє арифметичне найбільшого й найменшого її елементів.

13. Уведіть матрицю (5*5). Побудуйте вектор, елементами якого є елементи головної діагоналі матриці. Знайдіть слід матриці.

14. Уведіть дві матриці (4*4). Побудуйте нову матрицю розміром (4*8), включаючи в перші 4 стовпчика рядки першої матриці, а в інші – стовпчики другої матриці.

15. Знайдіть суму всіх елементів матриці розміром (4*3).

 

2. Уведіть довільну матрицю розміром (5*5).

Знайдіть:

1) визначник матриці; якщо визначник дорівнює нулю, або занадто малий, змініть деякі елементи матриці і повторіть обчислення;

2) обернену матрицю; перевірте слушність шляхом обернення оберненої матриці;

3) характеристичний поліном матриці;

4) корені характеристичного полінома матриці; упорядкуйте корені по комплексно-спряжених парах і за величиною;

5) власні значення матриці; порівняйте з раніше знайденими коренями характеристичного полінома;

6) LU-розкладання матриці; перевірте його слушність;

7) QR-розкладання матриці; перевірте його слушність;

8) сингулярні числа матриці; порівняєте їх з одержуваними при svd- розкладанні;

9) слід матриці;

10) число обумовленості матриці;

11) експоненту від матриці;

12) логарифм від експоненти матриці; порівняйте з вихідною матрицею

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных