Види матриць. Ступінчастий вид матриці

Сторінка 2


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

Трикутною матрицею називається матриця, у якої всі елементи, що стоять по один бік від головної або побічної діагоналі, дорівнюють нулю. Чому дорівнює визначник трикутної матриці?

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

Це інтуїтивне уявлення знаходить у деяких випадках точне кількісне вираз. Наприклад, ми знаємо (див. (6) з § 1), що визначник трикутної матриці (верхньої чи нижньої) дорівнює добутку елементів, що стоять на головній діагоналі.

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

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

Чим більше нулів серед елементів матриці А і чим краще вони розташовані, тим легше обчислювати визначник det А. Це інтуїтивне уявлення в деяких випадках знаходить точне кількісне вьфажение. Наприклад, ми знаємо (див. (6) з § 1), що визначник трикутної матриці (верхньої чи нижньої) дорівнює добутку елементів, що стоять на головній діагоналі.

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

Ця можливість випливає із трьох основних властивостей визначників. Додавання кратного одного рядка до іншого не змінює визначника. Переставлення двох рядків змінює знак визначника. Визначник трикутної матриці дорівнює просто добутку її діагональних елементів. DECOMP використовує останню компоненту вектора провідних елементів, щоб помістити туди значення 1, якщо було зроблено парне число перестановок, і значення - 1, якщо непарне. Щоб отримати визначник, це значення потрібно помножити на добуток діагональних елементів вихідної матриці.

Трикутні матриці та характеристичне рівняння

Квадратна матриця, яка має всі елементи, розташовані нижче або вище головної діагоналі, дорівнюють нулю, називається трикутною. Трикутна матриця може бути верхньої та нижньої будови. Верхня та нижня форми мають відповідно вигляд:

, .

Трикутні матриці мають ряд важливих у практичному відношенні властивостей:

1) Визначник трикутної матриці дорівнює добутку її діагональних елементів:

Отже, трикутна матриця не є особливою тільки тоді, коли всі елементи її головної діагоналі відмінні від нуля.

2) Сума і добуток трикутних матриць однакової будови є також трикутною матрицею тієї ж будови.

3) Неособлива трикутна матриця легко звертається, і її зворотна матриця знову має трикутну структуру тієї самої будови.

4) Будь-яка неособлива матриця за допомогою елементарних перетворень лише над рядками або лише над стовпцями може бути приведена до трикутної матриці. Як приклад розглянемо відому в теорії стійкості матрицю Гурвіца

.

Для переходу до верхнього трикутного вигляду виконаємо такі елементарні перетворення. З кожного елемента другого рядка віднімемо елемент першого рядка, що стоїть над ним, попередньо помножений на . Замість рядка з елементами отримаємо рядок з елементами де , , , ... і т.д.

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

.

Такі перетворення по суті еквівалентні множенню матриці праворуч (або зліва) на іншу допоміжну матрицю.

Визначник матриці Гурвіца

.

Існує теорема про розкладання будь-якої квадратної матриці у добутку двох трикутних. Відповідно до цієї теореми, будь-яка квадратна матриця може бути представлена ​​у вигляді добутку нижньої та верхньої трикутних матриць:

,

за умови, що її діагональні мінори відмінні від нуля:

, , .

Це розкладання єдине, якщо зафіксувати діагональні елементи однієї з трикутних матриць (наприклад, покласти їх рівними одиниці). Розкладання будь-якої квадратної матриці у добуток двох трикутних з розпорядженими діагональними елементами широко використовується у обчислювальних методах при вирішенні задач за допомогою ЕОМ.

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

Визначник квазітрикутної матриці дорівнює добутку її діагональних клітин.

На відміну від діагональних матриць, операція множення трикутних матриць у загальному випадку не коммутативна.

У обчислювальних методах теорії управління істотну роль грають як трикутні, а й звані майже трикутні матриці. Багато методів використовують розкладання матриці у вигляді добутку двох матриць, одна з яких має трикутну будову. Матриця А називається правою (лівою) майже трикутною або матрицею Хессенберга, якщо для її елементів а ij виконуються співвідношення:

Наприклад, матриця Хессенберга правої майже трикутної форми розмірності (4x4) має вигляд

Зазначимо корисні особливості аналізованих матриць, що використовуються у обчислювальних методах:

а) сума майже трикутних матриць однакової будови буде трикутною матрицею тієї самої будови, а добуток – ні;

б) побудова характеристичного полінома майже трикутних матриць економічно, оскільки вимагає набагато меншого обсягу обчислень, ніж за довільної форми матриці. Число операцій множень складає , додавань - ;

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

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

Або , (4.4)

де Q - ортогональна матриця; R – права (верхня) трикутна форма; L – ліва (нижня) трикутна форма матриці.

Подання (4.4) називається QR-розкладанням (у разі нижньої трикутної матриці QL-розкладанням) і для матриці А є єдиним.

QR- і QL-алгоритми дуже мало різняться. Їх використання залежить від цього, як розташовані елементи матриці. Якщо вони зосереджені в правому нижньому кутку, ефективніше використовувати QL-алгоритм. Якщо елементи матриці зосереджені у лівій верхній частині, доцільніше використовувати QR-алгоритм. При правильній реалізації на ЕОМ помилки округлення у часто не надають великого впливу точність обчислення.

Матриця – це особливий об'єкт у математиці. Зображується у формі прямокутної або квадратної таблиці, складеної з певної кількості рядків та стовпців. У математиці є велика різноманітність видів матриць, що різняться за розмірами чи змістом. Числа її рядків та стовпців називаються порядками. Ці об'єкти використовуються в математиці для впорядкування запису систем лінійних рівнянь та зручного пошуку їх результатів. Рівняння з використанням матриці вирішуються за допомогою методу Карла Гауса, Габріеля Крамера, мінорів та додатків алгебри, а також багатьма іншими способами. Базовим умінням під час роботи з матрицями є приведення до стандартного виду. Однак спочатку давайте розберемося, які види матриць виділяють математики.

Нульовий тип

Усі компоненти цього виду матриці – нулі. Тим часом кількість її рядків і стовпців абсолютно різна.

Квадратний тип

Кількість стовпців та рядків цього виду матриці збігається. Інакше кажучи, вона є таблицею форми "квадрат". Число її стовпців (або рядків) називаються порядком. Приватними випадками вважають існування матриці другого порядку (матриця 2x2), четвертого порядку (4x4), десятого (10x10), сімнадцятого (17x17) і так далі.

Вектор-стобіць

Це один з найпростіших видів матриць, що містить тільки один стовпець, який включає три чисельних значення. Вона представляє низку вільних членів (чисел, незалежних від змінних) у системах лінійних рівнянь.

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

Діагональний тип

Числові значення в діагональному вигляді матриці набувають лише компоненти головної діагоналі (виділена зеленим кольором). Основна діагональ починається з елемента, що знаходиться у правому верхньому кутку, а закінчується числом у третьому стовпчику третього рядка. Інші компоненти дорівнюють нулю. Діагональний тип є лише квадратною матрицею будь-якого порядку. Серед матриць діагонального вигляду можна назвати скалярну. Усі її компоненти набувають однакових значень.

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

Канонічний тип

Канонічний вид матриці вважається одним із основних; приведення до нього часто необхідне роботи. Число рядків і стовпців у канонічній матриці по-різному, вона необов'язково належить до квадратного типу. Вона трохи схожа на одиничну матрицю, проте в її випадку не всі компоненти основної діагоналі набувають значення, що дорівнює одиниці. Головнодіагональних одиниць може бути дві, чотири (все залежить від довжини та ширини матриці). Або одиниці можуть бути зовсім (тоді вона вважається нульовою). Інші компоненти канонічного типу, як і елементи діагонального та одиничного, дорівнюють нулю.

Трикутний тип

Один з найважливіших видів матриці, який застосовується при пошуку її детермінанта та при виконанні найпростіших операцій. Трикутний тип походить від діагонального, тому матриця також є квадратною. Трикутний вид матриці поділяють на верхньотрикутний та нижньотрикутний.

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

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

Вигляд необхідний знаходження рангу матриці, і навіть для елементарних дій з них (поруч із трикутним типом). Ступінчаста матриця названа так, тому що в ній містяться характерні "сходи" з нулів (як показано на малюнку). У ступінчастому типі утворюється діагональ з нулів (необов'язково головна), і всі елементи під даною діагоналлю теж мають значення рівні нулю. Обов'язковою умовою є таке: якщо в ступінчастій матриці є нульовий рядок, то інші рядки, що знаходяться нижче за неї, також не містять числових значень.

Отже, ми розглянули найважливіші типи матриць, необхідних роботи з ними. Тепер розберемося із завданням перетворення матриці на необхідну форму.

Приведення до трикутного вигляду

Як привести матрицю до трикутного вигляду? Найчастіше у завданнях потрібно перетворити матрицю на трикутний вигляд, щоб знайти її детермінант, по-іншому званий визначником. Виконуючи цю процедуру, дуже важливо "зберегти" головну діагональ матриці, тому що детермінант трикутної матриці дорівнює саме добутку компонентів її головної діагоналі. Нагадаю також альтернативні методи знаходження визначника. Детермінант квадратного типу перебуває з допомогою спеціальних формул. Наприклад, можна скористатися методом трикутника. Для інших матриць використовують метод розкладання по рядку, стовпцю або їх елементам. Також можна застосовувати метод мінорів та алгебраїчних доповнень матриці.

Докладно розберемо процес приведення матриці до трикутного виду прикладах деяких завдань.

Завдання 1

Необхідно знайти детермінант представленої матриці, використовуючи метод його приведення до трикутного вигляду.

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

Щоб привести її до трикутного вигляду, почнемо перетворення з лівого нижнього кута матриці - з числа 6. Щоб повернути його в нуль, помножимо перший рядок на три і віднімемо його з останнього рядка.

Важливо! Верхній рядок не змінюється, а залишається таким самим, як і у вихідній матриці. Записувати рядок, в чотири рази більший за вихідний, не потрібно. Але значення рядків, компоненти яких потрібно обернути на нуль, постійно змінюються.

Залишилося лише останнє значення - елемент третього рядка другого шпальти. Це число (-1). Щоб повернути його в нуль, з першого рядка віднімемо другий.

Виконаємо перевірку:

detA = 2 x (-1) x 11 = -22.

Отже, відповідь завдання: -22.

Завдання 2

Необхідно визначити детермінант матриці шляхом приведення його до трикутного вигляду.

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

Почнемо приведення її з елемента, що знаходиться в нижньому кутку зліва, - з числа 4. Нам потрібно обернути це число в нуль. Найзручніше зробити це, помноживши на чотири верхній рядок, а потім відняти його з четвертого. Запишемо результат першого етапу перетворення.

Отже, компонент четвертого рядка перетворений на нуль. Перейдемо до першого елемента третього рядка, до 3. Виконуємо аналогічну операцію. Помножуємо на три перший рядок, віднімаємо його з третього рядка та записуємо результат.

Нам вдалося звернути у нуль усі компоненти першого стовпця даної квадратної матриці, крім числа 1 - елемента головної діагоналі, не потребує перетворення. Тепер важливо зберегти отримані нулі, тому виконуватимемо перетворення з рядками, а не зі стовпцями. Перейдемо до другого стовпця представленої матриці.

Знову почнемо з нижньої частини – з елемента другого стовпця останнього рядка. Це число (-7). Однак у цьому випадку зручніше почати з числа (-1) - елемента другого стовпця третього рядка. Щоб повернути його в нуль, віднімемо з третього рядка другий. Потім помножимо другий рядок на сім і віднімемо його з четвертого. Ми отримали нуль замість елемента, розташованого у четвертому рядку другого стовпця. Тепер перейдемо до третього стовпця.

У даному стовпці нам потрібно звернути в нуль тільки одне число - 4. Зробити це нескладно: просто додаємо до останнього рядка третій і бачимо необхідний нам нуль.

Після всіх вироблених перетворень ми навели запропоновану матрицю до трикутного вигляду. Тепер, щоб знайти її детермінант, потрібно тільки зробити множення елементів головної діагоналі. Отримуємо: detA = 1 x (-1) x (-4) x 40 = 160.Отже, рішенням є 160.

Отже, тепер питання приведення матриці до трикутного вигляду вам не ускладнить.

Приведення до східчастого вигляду

При елементарних операціях над матрицями ступінчастий вигляд менш "затребуваним", ніж трикутний. Найчастіше він використовується для знаходження рангу матриці (тобто кількості її ненульових рядків) або визначення лінійно залежних і незалежних рядків. Однак ступінчастий вид матриці є більш універсальним, тому що підходить не тільки для квадратного типу, але і для решти.

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

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

Завдання 1.Знайти ранг цієї матричної таблиці.

Перед нами є квадратна матриця третього порядку (3x3). Ми знаємо, що для знаходження рангу необхідно привести її до ступінчастого вигляду. Тому спочатку нам потрібно знайти детермінант матриці. Скористаємося методом трикутника: detA = (1 x 5 x 0) + (2 x 1 x 2) + (6 x 3 x 4) - (1 x 1 x 4) - (2 x 3 x 0) - (6 x 5 x 2) = 12.

Детермінант = 12. Він більший за нуль, отже, матрицю можна привести до ступінчастого вигляду. Приступимо до її перетворень.

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

Ми, що у результаті приведення утворилася трикутна матриця. У нашому випадку продовжити перетворення не можна, оскільки решта компонентів не вдасться навернути в нуль.

Значить, робимо висновок, що кількість рядків, що містять числові значення, у цій матриці (або її ранг) – 3. Відповідь до завдання: 3.

Завдання 2.Визначити кількість лінійно незалежних рядків цієї матриці.

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

Ми бачимо матрицю, яка не належить до квадратного типу. Вона має розміри 3х4. Почнемо приведення також із елемента лівого нижнього кута - числа (-1).

Подальші її перетворення неможливі. Отже, робимо висновок, що кількість лінійно незалежних рядків у ній та відповідь до завдання – 3.

Тепер приведення матриці до ступінчастого вигляду не є для вас нездійсненним завданням.

На прикладах даних завдань ми розібрали приведення матриці до трикутного вигляду та ступінчастого вигляду. Щоб звернути в нуль потрібні значення матричних таблиць, в окремих випадках потрібно проявити фантазію і правильно перетворити стовпці або рядки. Успіхів вам у математиці та в роботі з матрицями!

Якщо верхня трикутна матриця має n 2 елементів, приблизно половина є нульовими і немає необхідності зберігати їх явно. Конкретно, якщо ми віднімаємо n діагональних елементів із суми n 2 елементів, то половина елементів, що залишилися, є нульовими. Наприклад, при n=25 є 300 елементів зі значенням 0:

(n 2 -n) / 2 = (25 2 -25) / 2 = (625-25) / 2 = 300

Сума або різницю двох трикутних матриць А і В виходить в результаті складання або віднімання відповідних елементів матриць. Результуюча матриця є трикутною.

Додавання С = А + В

Віднімання С = А - В

де С - це трикутна матриця з елементами C i, j = A i, j + B i, j.

Множення С = А * В

Результуюча матриця С - це трикутна матриця з елементами C i , j значення яких обчислюються з елементів рядка i матриці А і стовпця j матриці В:

C i , j =(A i ,0 *B 0, j)+ (A i ,1 *B 1, j)+ (A i ,2 *B 2, j)+…+ (A i , n -1 * B n -1, j)

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

Зберігання трикутної матриці

Застосування для зберігання верхньої трикутної матриці стандартного двовимірного масиву вимагає використання всієї пам'яті розміром n 2 незважаючи на прогнозовані нулі, розташовані нижче діагоналі. Для виключення цього простору ми зберігаємо елементи трикутної матриці в одновимірному масиві М. Всі елементи нижче головної діагоналі не зберігаються. Таблиця 3.1 показує кількість елементів, що зберігаються у кожному рядку.

Зберігання трикутної матриці

Таблиця 1

Алгоритму збереження потрібна функція доступу, яка повинна визначати місце розташування в масиві М елементу A i , j . Для j< i элемент A i , j является равным 0 и не сохраняется в М. Для j ³ i функция доступа использует информацию о числе сохраняемых элементов в каждой строке вплоть до строки i. Эта информация может быть вычислена для каждой строки i и сохранена в массиве (rowTable) для использования функцией доступа.

приклад 4.

З урахуванням того, що елементи трикутної матриці зберігаються рядково в масиві М, функція доступу для A i j використовує такі параметри:

Індекси i та j,

Масив rowTable

Алгоритм доступу до елемента A i j полягає в наступному:

Якщо j

Якщо j³i, то виходить значення rowTable[i], яке є кількістю елементів, що зберігаються в масиві М, для елементів до рядка i. У рядку i перші i елементів є нульовими і зберігаються в М. Елемент A i , j міститься в M+(j-i)].

Приклад 5.

Розглянемо трикутну матрицю Х з прикладу 3.4:

1.Х 0,2 = M = М = М = 0

2.X 1,0 не зберігаються

3.Х 1,2 = M + (2-1)] = М = М = 1

Клас TriMat

Клас TriMat реалізує низку операцій трикутної матриці. Віднімання та множення трикутної матриці залишено для вправ у кінці розділу. Враховуючи те обмеження, що ми повинні використовувати лише статичні масиви, наш клас обмежує розмір рядка та стовпця числом 25. При цьому ми матимемо 300=(25 2 -25)/2 нульових елементів, тому масив М має містити 325 елементів.

Специфікація класу TriMat

ОГОЛОШЕННЯ

#include

#include

// максимальна кількість елементів та рядків

// верхньої трикутної матриці

const int ELEMENTLIMIT = 325;

const int ROWLIMIT = 25;

// Закриті дані-члени

int rowTable; // Початковий індекс рядка в М

int n; // розмір рядка/колонки

double М;

// Конструктор із параметрами TriMat(int matsize);

//Методи доступу до елементів матриці

void PutElement (double item, int i, int j);

double GetElement(int i, int j) const;

// матричні арифметичні операції

TriMat AddMat(const TriMat&A) const;

double DelMat(void) const;

// матричні операції введення/виводу

void ReadMat(void);

void WriteMat(void) const;

// отримати розмірність матриці

int GetDimension(void) const;

ОПИС

Конструктор приймає число рядків та стовпців матриці. Методи PutEle-ment та GetElement зберігають та повертають елементи верхньої трикутної матриці. GetElement повертає 0 для елементів нижче діагоналі. AddMat повертає суму матриці з поточним об'єктом. Цей метод не змінює значення поточної матриці. Оператори введення/виводу ReadMat та WriteMat працюють з усіма елементами матриці n x n. Сам метод ReadMat зберігає лише верхньо-трикутні елементи матриці.

#include trimat.h // увімкнути клас TriMat

TriMat A (10), (10), С (10); // Трикутні матриці 10x10

A.ReadMat(); // Ввести матриці А і В

З = A. AddMat (В); // Обчислити С = А + В

C.WriteMat(); // Друкувати

Реалізація класу TriMat

Конструктор ініціалізує закритий член n параметром matsize. Таким чином задається число рядків та стовпців матриці. Цей же параметр використовується для ініціалізації масиву rowTable, який використовується для доступу до елементів матриці. Якщо matsize перевищує ROWLIMIT, видається повідомлення про помилку та виконання програми переривається.

// ініціалізація n та rowTable

TriMat::TriMat (int matsize)

int storedElements = 0;

// Перервати програму, якщо matsize більше ROWLIMIT

if (matsize > ROWLIMIT)

cerr<< "Превышен размер матрицы" << ROWLIMIT << "x" << ROWLIMIT << endl;

// задати таблицю

for (int i = 0; i< n; i++)

rowTable [i] = storedElements;

викладені елементи += n - i;

Матричні методи доступу. Ключовим моментом під час роботи з трикутними матрицями є можливість ефективного зберігання ненульових елементів у лінійному масиві. Щоб досягти такої ефективності і все ж таки використовувати звичайні двовимірні індекси i і j для доступу до елемента матриці, нам необхідні функції PutElement і GetElement для збереження та повернення елементів матриці в масиві.

Метод GetDimension надає клієнту доступ до розміру матриці. Ця інформація може використовуватися для забезпечення того, щоб методам доступу передавалися параметри, що відповідають правильному рядку та стовпцю:

// Повернути розмірність матриці n

int TriMat::GetDimension(void) const

Метод PutElement перевіряє індекси i та j. Якщо j ³ i, ми зберігаємо значення даних М, використовуючи функцію доступу до матриці для трикутних матриць: Якщо i чи j немає у діапазоні 0 . . (n-1), то програма закінчується:

// записати елемент матриці масив М

void TriMat::PutElement (double item, int i, int j)

// Перервати програму, якщо індекси елемента поза

// Індексного діапазону

if ((i< 0 || i >= n) | (j< 0 |1 j >= n))

cerr<< "PutElement: индекс вне диапазона 0-"<< n-1 << endl;

// Усі елементи нижче діагоналі ігноруються if (j >= i)

M + j-i] = item;

Для отримання будь-якого елемента метод GetElement перевіряє індекси i та j. Якщо i або j не в діапазоні 0…(n - 1), програма закінчується. Якщо j

// отримати матричний елемент масиву М

double TriMat::GetElement(int i, int j) const

// Перервати програму, якщо індекси поза індексним діапазоном

if ((i< 0 || i >= п) | (j< 0 |I j >= n))

cerr<< "GetElement: индекс вне диапазона 0-"<< n-1 << endl;

// Повернути елемент, якщо він вище діагоналі

return M+j-i];

// Елемент дорівнює 0, якщо він нижче діагоналі

Введення/виведення матричних об'єктів. Зазвичай, введення матриці передбачає, що дані вводяться рядково з повним набором значень рядків, і стовпців. В об'єкті TriMat нижня трикутна матриця є нульовою та значення не зберігаються в масиві. Тим не менш, користувачеві пропонується ввести ці нульові значення для збереження звичайного матричного введення.

// всі (n x n) елементів

void TriMat::ReadMat (void)

for(i = 0; i

for(j = 0; j

//Порядкова видача в потік елементів матриці

void TriMat::WriteMat (void) const

// Встановлення режиму видачі

cout. setf (ios::fixed);

cout.precision (3);

cout.setf (ios:: showpoint) ;

for (i = 0; i< n; i++)

for (j = 0; j< n; j++)

cout<< setw(7) << GetElement (i,j);

cout<< endl;

Матричні операції. Клас TriMat має методи для обчислення суми двох матриць та детермінанту матриці. Метод AddMat приймає єдиний параметр, який є правим операндом у сумі. Поточний об'єкт відповідає лівому операнду. Наприклад, сума трикутних матриць X та Y використовує метод AddMat для об'єкта X. Припустимо, сума зберігається в об'єкті Z. Для обчислення

Z = Х + Y використовуйте оператор

Z = X.AddMat(Y);

Алгоритм складання двох об'єктів типу TriMat повертає нову матрицю з елементами B i , j = CurrentObjecty i , j + A i , j:

// Повертає суму поточної та матриці А.

// Поточний об'єкт не змінюється

TriMat TriMat::AddMat (const TriMat& A) const

double itemCurrent, itemA;

TriMat B(A.n); // В буде шукана сума

for (i = 0; i< n; i++) // цикл по строкам

for (j = i; j< n; j++) // пропускать элементы ниже диагонали

itemCurrent = GetElement i, j);

itemA = A. GetElement (i, j);

B. PutElement (itemCurrent + itemA, i, j);

Метод DetMat повертає детермінант поточного об'єкта. Значення, що повертається - це дійсне число, яке є добутком елементів діагоналі. Повний текст коду для реалізації класу TriMat можна знайти у програмній програмі.

У цій темі розглянемо поняття матриці, і навіть види матриць. Так як у цій темі чимало термінів, то я додам короткий зміст, щоб орієнтуватися у матеріалі було простіше.

Визначення матриці та її елемента. Позначення.

Матриця- Це таблиця з $ m $ рядків і $ n $ стовпців. Елементами матриці може бути об'єкти абсолютно різноманітної природи: числа, змінні чи, наприклад, інші матриці. Наприклад, матриця $\left(\begin(array) (cc) 5 & 3 \\ 0 & -87 \\ 8 & 0 \end(array) \right)$ містить 3 рядки і 2 стовпці; Елементами її є цілі числа. Матриця $\left(\begin(array) (cccc) a & a^9+2 & 9 & \sin x \\ -9 & 3t^2-4 & u-t & 8\end(array) \right)$ містить 2 рядки та 4 стовпці.

Різні способи запису матриць: показати\сховати

Матриця може бути записана у круглих, а й у квадратних чи подвійних прямих дужках. Тобто, вказані нижче записи означають ту саму матрицю:

$$ \left(\begin(array) (cc) 5 & 3 \ 0 & -87 \ 8 & 0 \end(array) \right);\;\; \left[ \begin(array) (cc) 5 & 3 \\ 0 & -87 \\ 8 & 0 \end(array) \right]; \;\; \left \Vert \begin(array) (cc) 5 & 3 \\ 0 & -87 \\ 8 & 0 \end(array) \right \Vert $$

Твір $m\times n$ називають розміром матриці. Наприклад, якщо матриця містить 5 рядків та 3 стовпці, то говорять про матрицю розміру $5\times 3$. Матриця $\left(\begin(array)(cc) 5 & 3\0 & -87\8 & 0\end(array)\right)$ має розмір $3 \times 2$.

Зазвичай матриці позначаються великими літерами латинського алфавіту: $A$, $B$, $C$ і таке інше. Наприклад, $B=\left(\begin(array) (ccc) 5 & 3 \ 0 & -87 \ 8 & 0 \end(array) \right)$. Нумерація рядків йде зверху донизу; стовпців - зліва направо. Наприклад, перший рядок матриці $B$ містить елементи 5 та 3, а другий стовпець містить елементи 3, -87, 0.

Елементи матриць зазвичай позначаються дрібними літерами. Наприклад, елементи матриці $A$ позначаються $a_(ij)$. Подвійний індекс $ij$ містить інформацію про положення елемента у матриці. Число $i$ це номер рядка, а число $j$ - номер стовпця, на перетині яких знаходиться елемент $a_(ij)$. Наприклад, на перетині другого рядка і п'ятого стовпця матриці $A=\left(\begin(array) (cccccc) 51 & 37 & -9 & 0 & 9 & 97 \1 \ -17 & -15 & -13 & -11 & -8 & -5 \\ 52 & 31 & -4 & -1 & 17 & 90 \end(array) \right)$ розташований елемент $a_(25)= 59$:

Так само на перетині першого рядка і першого стовпця маємо елемент $a_(11)=51$; на перетині третього рядка та другого стовпця - елемент $a_(32)=-15$ тощо. Зауважу, що запис $a_(32)$ читається як "а три два", але не "а тридцять два".

Для скороченого позначення матриці $A$, розмір якої дорівнює $m\times n$, використовується запис $A_(m\times n)$. Можна записати і більш розгорнуто:

$$ A_(m\times n)=(a_(ij)) $$

де запис $(a_(ij))$ означає позначення елементів матриці $A$. У повністю розгорнутому вигляді матрицю $A_(m\times n)=(a_(ij))$ можна записати так:

$$ A_(m\times n)=\left(\begin(array)(cccc) a_(11) & a_(12) & \ldots & a_(1n) \\ a_(21) & a_(22) & \ldots & a_(2n) \\ \ldots & \ldots & \ldots & \ldots \\ a_(m1) & a_(m2) & \ldots & a_(mn) \end(array) \right) $$

Введемо ще один термін - рівні матриці.

Дві матриці однакового розміру $A_(m\times n)=(a_(ij))$ і $B_(m\times n)=(b_(ij))$ називаються рівними, якщо відповідні елементи рівні, тобто. $a_(ij)=b_(ij)$ для всіх $i=\overline(1,m)$ і $j=\overline(1,n)$.

Пояснення до запису $i=\overline(1,m)$: показати\приховати

Запис "$i=\overline(1,m)$" означає, що параметр $i$ змінюється від 1 до m. Наприклад, запис $i=\overline(1,5)$ говорить про те, що параметр $i$ приймає значення 1, 2, 3, 4, 5.

Отже, для рівності матриць потрібно виконання двох умов: збіг розмірів та рівність відповідних елементів. Наприклад, матриця $A=\left(\begin(array)(cc) 5 & 3\0 & -87\8 & 0\end(array)\right)$ не дорівнює матриці $B=\left(\ begin(array)(cc) 8 & -9\\0 & -87 \end(array)\right)$, оскільки матриця $A$ має розмір $3\times 2$, а розмір матриці $B$ становить $2\times 2 $. Також матриця $A$ не дорівнює матриці $C=\left(\begin(array)(cc) 5 & 3\98 & -87\\8 & ​​0\end(array)\right)$, оскільки $a_( 21) \ neq c_ (21) $ (тобто $ 0 \ neq 98 $). А ось для матриці $F=\left(\begin(array)(cc) 5 & 3\0 & -87\8 & 0\end(array)\right)$ можна сміливо записати $A=F$ оскільки і розміри, і відповідні елементи матриць $A$ та $F$ збігаються.

Приклад №1

Визначити розмір матриці $A=\left(\begin(array) (ccc) -1 & -2 & 1 \\ 5 & 9 & -8 \\ -6 & 8 & 23 \\ 11 & -12 & -5 \ \ 4 & 0 & -10 \\\end(array) \right)$. Вказати, чому рівні елементи $a_(12)$, $a_(33)$, $a_(43)$.

Дана матриця містить 5 рядків і 3 стовпці, тому розмір $5\times 3$. Для цієї матриці можна також використовувати позначення $A_(5\times 3)$.

Елемент $a_(12)$ знаходиться на перетині першого рядка та другого стовпця, тому $a_(12)=-2$. Елемент $a_(33)$ знаходиться на перетині третього рядка та третього стовпця, тому $a_(33)=23$. Елемент $a_(43)$ знаходиться на перетині четвертого рядка та третього стовпця, тому $a_(43)=-5$.

Відповідь: $a_(12)=-2$, $a_(33)=23$, $a_(43)=-5$.

Види матриць залежно від їхнього розміру. Головна та побічна діагоналі. Слід матриці.

Нехай задана певна матриця $A_(m\times n)$. Якщо $m=1$ (матриця складається з одного рядка), то задану матрицю називають матриця-рядок. Якщо $n=1$ (матриця складається з одного стовпця), то таку матрицю називають матриця-стовпець. Наприклад, $\left(\begin(array) (ccccc) -1 & -2 & 0 & -9 & 8 \end(array) \right)$ - матриця-рядок, а $\left(\begin(array) (c) -1 \\ 5 \\ 6 \end(array) \right)$ - матриця-стовпець.

Якщо для матриці $A_(m\times n)$ правильна умова $m\neq n$ (тобто кількість рядків не дорівнює кількості стовпців), то часто говорять, що $A$ - прямокутна матриця. Наприклад, матриця $\left(\begin(array) (cccc) -1 & -2 & 0 & 9 \\ 5 & 9 & 5 & 1 \end(array) \right)$ має розмір $2\times 4$, тобто. містить 2 рядки та 4 стовпці. Так як кількість рядків не дорівнює кількості стовпців, то ця матриця прямокутна.

Якщо для матриці $A_(m\times n)$ правильна умова $m=n$ (тобто кількість рядків дорівнює кількості стовпців), то кажуть, що $A$ - квадратна матриця порядку $n$. Наприклад, $\left(\begin(array) (cc) -1 & -2 \\ 5 & 9 \end(array) \right)$ - квадратна матриця другого порядку; $\left(\begin(array) (ccc) -1 & -2 & 9 \\ 5 & 9 & 8 \\ 1 & 0 & 4 \end(array) \right)$ - квадратна матриця третього порядку. Загалом квадратну матрицю $A_(n\times n)$ можна записати так:

$$ A_(n\times n)=\left(\begin(array)(cccc) a_(11) & a_(12) & \ldots & a_(1n) \\ a_(21) & a_(22) & \ldots & a_(2n) \\ldots & \ldots & \ldots & \ldots \\ a_(n1) & a_(n2) & \ldots & a_(nn) \end(array) \right) $$

Говорять, що елементи $a_(11)$, $a_(22)$, $\ldots$, $a_(nn)$ знаходяться на головної діагоналіматриці $A_(n\times n)$. Ці елементи називаються головними діагональними елементами(чи просто діагональними елементами). Елементи $a_(1n)$, $a_(2 \; n-1)$, $\ldots$, $a_(n1)$ знаходяться на побічної (другорядної) діагоналі; їх називають побічними діагональними елементами. Наприклад, для матриці $C=\left(\begin(array)(cccc)2&-2&9&1\\5&9&8& 0\\1& 0 & 4 & -7 \\ -4 & -9 & 5 & 6\end(array) \right)$ маємо:

Елементи $c_(11)=2$, $c_(22)=9$, $c_(33)=4$, $c_(44)=6$ є головними діагональними елементами; елементи $c_(14)=1$, $c_(23)=8$, $c_(32)=0$, $c_(41)=-4$ - побічні діагональні елементи.

Сума головних діагональних елементів називається слідом матриціі позначається $\Tr A$ (або $\Sp A$):

$$ \Tr A=a_(11)+a_(22)+\ldots+a_(nn) $$

Наприклад, для матриці $ C = \ left ( \ begin (array) (cccc) 2 & -2 & 9 & 1 \ -9 & 5 & 6 \end(array)\right)$ маємо:

$$ \Tr C=2+9+4+6=21. $$

Поняття діагональних елементів також використовується для неквадратних матриць. Наприклад, для матриці $B=\left(\begin(array) (ccccc) 2 & -2 & 9 & 1 & 7 \\ 5 & -9 & 8 & 0 & -6 \\ 1 & 0 & 4 & - 7 & -6 \end(array) \right)$ головними діагональними елементами будуть $b_(11)=2$, $b_(22)=-9$, $b_(33)=4$.

Види матриць залежно від значень їх елементів.

Якщо всі елементи матриці $A_(m\times n)$ дорівнюють нулю, то така матриця називається нульовийі зазвичай позначається буквою $O$. Наприклад, $\left(\begin(array) (cc) 0 & 0 \\ 0 & 0 \\ 0 & 0 \end(array) \right)$, $\left(\begin(array) (ccc) 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end(array) \right)$ - нульові матриці.

Нехай матриця $A_(m\times n)$ має такий вигляд:

Тоді цю матрицю називають трапецієподібної. Вона може і не містити нульових рядків, але якщо вони є, то розташовуються в низу матриці. У більш загальному вигляді трапецієподібну матрицю можна записати так:

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

  1. Усі елементи, розташовані нижче головної діагоналі, дорівнюють нулю.
  2. Всі елементи від $a_(11)$ до $a_(rr)$, що лежать на головній діагоналі, не дорівнюють нулю: $a_(11)\neq 0, \; a_(22)\neq 0, \ldots, a_(rr)\neq 0$.
  3. Або всі елементи останніх $m-r$ рядків дорівнюють нулю, або $m=r$ (тобто нульових рядків немає взагалі).

Приклади трапецієподібних матриць:

Перейдемо до наступного визначення. Матрицю $A_(m\times n)$ називають ступінчастоюякщо вона задовольняє таким умовам:


Наприклад, ступінчастими матрицями будуть:

Для порівняння, матриця $\left(\begin(array) (cccc) 2 & -2 & 0 & 1 \\0 & 0 & 8 & 7\\0 & 0 & 4 & -7\\0 & 0 & 0 & 0 \end(array)\right)$ не є ступінчастою, оскільки у третього рядка нульова частина така сама, як і у другого рядка. Тобто, порушується принцип "чим нижче рядок - тим більша нульова частина". Додам, що трапецієподібна матриця є окремим випадком ступінчастої матриці.

Перейдемо до наступного визначення. Якщо всі елементи квадратної матриці, розташовані під головною діагоналлю, дорівнюють нулю, то таку матрицю називають верхньою трикутною матрицею. Наприклад, $\left(\begin(array) (cccc) 2 & -2 & 9 & 1 \\ 0 & 9 & 8 & 0 \\ 0 & 0 & 4 & -7 \\ 0 & 0 & 0 & 6 \end(array) \right)$ - Верхня трикутна матриця. Зауважте, що у визначенні верхньої трикутної матриці нічого не сказано про значення елементів, які розташовані над головною діагоналлю або на головній діагоналі. Вони можуть бути нульовими чи ні – це несуттєво. Наприклад, $\left(\begin(array) (ccc) 0 & 0 & 9 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end(array) \right)$ - теж верхня трикутна матриця.

Якщо всі елементи квадратної матриці, розташовані над головною діагоналлю, дорівнюють нулю, то таку матрицю називають нижньою трикутною матрицею. Наприклад, $\left(\begin(array) (cccc) 3 & 0 & 0 & 0 \\ -5 & 1 & 0 & 0 \\ 8 & 2 & 1 & 0 \\ 5 & 4 & 0 & 6 \ end(array) \right)$ - нижня трикутна матриця. Зверніть увагу, що у визначенні нижньої трикутної матриці нічого не сказано про значення елементів, розташованих під або на головній діагоналі. Вони можуть бути нульовими чи ні – це неважливо. Наприклад, $\left(\begin(array) (ccc) -5 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 9 \end(array) \right)$ і $\left(\begin (array) (ccc) 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end(array) \right)$ - теж нижні трикутні матриці.

Квадратна матриця називається діагональноїякщо всі елементи цієї матриці, що не лежать на головній діагоналі, дорівнюють нулю. Приклад: $\left(\begin(array) (cccc) 3 & 0 & 0 & 0 \\ 0 & -2 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 6 \ end(array) \right)$. Елементи на головній діагоналі можуть бути будь-якими (рівними нулю чи ні) – це несуттєво.

Діагональна матриця називається одиничною, якщо всі елементи цієї матриці, розташовані на головній діагоналі, дорівнюють 1. Наприклад, $\left(\begin(array) (cccc) 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end(array)\right)$ - одинична матриця четвертого порядку; $\left(\begin(array) (cc) 1 & 0 \\ 0 & 1 \end(array)\right)$ - одинична матриця другого порядку.



Останні матеріали розділу:

Атф та її роль в обміні речовин У тварин атф синтезується в
Атф та її роль в обміні речовин У тварин атф синтезується в

Способи отримання енергії в клітці У клітці існують чотири основні процеси, що забезпечують вивільнення енергії з хімічних зв'язків при...

Вестерн блотінг (вестерн-блот, білковий імуноблот, Western bloting) Вестерн блоттинг помилки під час виконання
Вестерн блотінг (вестерн-блот, білковий імуноблот, Western bloting) Вестерн блоттинг помилки під час виконання

Блоттінг (від англ. "blot" - пляма) - перенесення НК, білків та ліпідів на тверду підкладку, наприклад, мембрану та їх іммобілізація. Методи...

Медіальний поздовжній пучок Введення в анатомію людини
Медіальний поздовжній пучок Введення в анатомію людини

Пучок поздовжній медіальний (f. longitudinalis medialis, PNA, BNA, JNA) П. нервових волокон, що починається від проміжного і центрального ядра.