Смугова матриця

Матеріал з testwiki
Перейти до навігації Перейти до пошуку

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

Ширина смуги

Формально, розглянемо n×n матрицю A=(ai,j ). Якщо всі елементи матриці, що не належать смузі чий діапазон визначається сталими k1 і k2:

ai,j=0ifj<ik1абоj>i+k2;k1,k20.

нульові, тоді величини k1 і k2 називаються нижня ширина смуги (Шаблон:Lang-en) і верхня ширина смуги (Шаблон:Lang-el), відповідно.Шаблон:Sfn Ширина смуги (Шаблон:Lang-en) матриці - це найбільше зі значень k1 і k2; інакше кажучи, це число k таке, що ai,j=0 якщо |ij|>k.Шаблон:Sfn

Існують алгоритми зменшення ширини смуги матриці, наприклад алгоритм Катхілл-Маккі. Задача знаходження представлення матриці з найменшою шириною смуги - NP-складна.

Приклади

Застосування

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

Оптимізація вимог до пам'яті

Смугові матриці зазвичай зберігаються у вигляді діагоналей; інші елементи нулі.

Наприклад тридіагональну матрицю

[B11B1200B21B22B230B32B33B34B43B44B450B54B55B5600B65B66]

можна зберігати так:

[0B11B12B21B22B23B32B33B34B43B44B45B54B55B56B65B660].

Додаткову економію пам'яті можна отримати якщо матриця симетрична.

Джерела

Примітки

Шаблон:Reflist