МАТРИЧНА АЛГЕБРА

Оператори МАТ забезпечують виконання всіх основних операцій над матрицями

542 МАТРИЧНА АРИФМЕТИКА

На відміну від звичайних арифметичних операцій, Бейсік не допускає складних виразів з матричними операціями Кожен рядок повинна містити одну матрицю зліва від знака

присвоювання (=) і одну або дві матриці справа залежно від типу операції У операторах МАТ можна вказувати як матриці, так і вектори У табл 71 зібрані існуючі форми арифметичних операцій над матрицями

Таблиця 71 Матрична алгебра Змінні А, В і С можуть бути векторами або матрицями до –

проста переменная, числове вираження або константа

Оператор Дія Коментар

МАТ А = В Копіювання елементів В в А

При перевизначенні розміри А замінюються на розміри В

МАТ А = В + С

МАТ А = В-

З

МАТ А = (к) * В

МАТ А =

В * С

Поелементне додавання В і С та копіювання результатів в А Поелементне віднімання В і С та копіювання результатів в А Множення кожного елемента В на скалярний значення до і копіювання результатів в А Матричне множення В і С відповідно до правил матричної алгебри

В і С повинні мати однакові розміри

В і С повинні мати однакові розміри

Дужки зазвичай обовязкові

Кількість стовпців у В повинна дорівнювати числу рядків у С

Оператор копіювання, або заміщення, МАТ А = В привласнює значення елементів B (I, J) відповідних елементів A (I, J) У деяких системах розміри А перевизначаються так, щоб вони збігалися з розмірами В Еквівалентна цьому операторові програма має наступний вигляд:

Оператори додавання і віднімання МАТ А = В + С і МАТ А = В-С вимагають, щоб В і С мали однакові розміри, і привласнюють кожному елементу A (I, J) значення В (I, J) + C (I, J ) і В (I, J) – C (I, J) відповідно Програма

для складання матриць має вигляд

Присвоєння після виконання цих арифметичних функцій може викликати перевизначення розмірів А

При скалярному множенні кожен елемент матриці множиться на скалярний значення Наприклад,

оператор

МАТ А = (225) * В

викликає присвоювання кожному елементу A (I, J) значення 225 * B (I, J) У деяких системах потрібно, щоб скалярний значення було укладено в дужки в інших системах дужки не обовязкові, але рекомендуються для уникнення плутанини з множенням матриць Наведемо ще кілька прикладів скалярного множення:

МАТ А = (Х) * В

MAT A= (SQRT(T) +Y(Z)) *B

Оператору МАТ А = (225) * В еквівалентна програма

Матричне множення є більш складним Елементи МАТ А = В * С задаються виразом

A(I,J) =B(I,1) *C(1,J) +B(I,2) *C(2,J)+ .. +B(I,M) *C(M,J)

=MΣK=1       B(I,K)*C(K,J)

рівним скалярному твору I-й рядки матриці В на J-й стовпець матриці С

Матриці В і С не зобовязані бути квадратними або мати однакові розміри потрібно лише збіг числа стовпців у матриці В з числом рядків у матриці С Ця умова випливає з наступного співвідношення для розмірів:

розміри

А

=

У

*

З

(L*N)

(L*M)

(M*N)

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

Розміри 3 * 3 3 * 2 2 * 3

Нижче показані приклади допустимих комбінацій (елементам матриць значення дані до множення)

:

10 DIM А (2,2), В (2,3), С (3,2), D (3), Е (2)

100 МАТА = В * С

110 MAT E = B*D

120 MAT E = D*C

130 MAT D = E*B

140 MAT D = C*E

У рядку 110 вектор D розглядається як матриця з розмірами 3 * 1, тобто як вектор-стовпець, і результат Е має розміри 2 * 1 і теж є векто-

ром-стовпцем Але в рядку 120 вектор D розглядається як матриця з розмірами 1 * 3, тобто як вектор-рядок, і результат Е має розміри 1 * 2, що відповідає вектору-рядку Як уже згадувалося, система не розрізняє ці два типи векторів Наступна програма служить прикладом множення матриць:

Складні операції, наприклад 10 MAT A = (3) * B + CD

в одному рядку не допускаються і вимагають перетворення в послідовність операторів

10 МАТ А = (3) * В 20 МАТ А = А + С 30 MAT A = AD

Врахуйте, що розподіл матриць не визначено відповідне діленню дія може бути отримано множенням на зворотну матрицю

Одна і та ж матриця не повинна зявлятися по обидва боки від знака (=) при множенні або при транспонировании, ймовірно, через те, що в такому випадку потрібна була б додаткова робоча область в памяті Так, оператори

МАТ А = А * А

МАТ А = А * В

MAT A = TRN(A)

неприпустимі, в той час як можливі наступні оператори:

МАТ В = А * А

МАТ С = С + А

MAT D=B-D

Джерело: Уолш Б Програмування на Бейсике: Пер з англ М: Радіо і звязок, 1988 336 с: ил

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*