Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Разреженные матрицы: sparce, spy, speye, spalloc



 

При использовании численных методов (метод конечных разностей, метод конечных элементов) часто возникают матрицы, в которых ненулевые элементы составляют лишь малую часть. Такие матрицы называются разреженными. Было бы нерационально тратить драгоценную память компьютера на запоминание огромного количества нулей. Рассмотрим пример.

 

A =

1 0 0 0 -1

0 2 0 0 0

0 0 1 0 0

0 0 0 2 0

0 4 0 0 1

 

В этой матрице из 25 чисел лишь семь ненулевых, то есть меньше одной трети. С увеличением размеров матриц эта доля, как правило, уменьшается. В матрице жесткости конструкции, возникающей при применении МКЭ, доля ненулевых элементов обычно менее 5-ти процентов.

Для хранения таких матриц в MATLAB’e используется специальная технология. Выполните команду:

 

>> B = sparse(A)

B =

(1,1) 1

(2,2) 2

(5,2) 4

(3,3) 1

(4,4) 2

(1,5) -1

(5,5) 1

 

Команда sparse (sparse - редкий) изменяет порядок хранения матрицы. То есть матрица B – это та же самая матрица A, но для запоминания каждого ненулевого элемента используется одно вещественное значение (величина элемента) и два целых (номера строки и столбца, в которых располагается этот элемент). А нулевые элементы, таким образом, вообще не занимают памяти.

Обращаться с разреженной матрицей можно также, как и с обычной. Например, сложить с другой матрицей

 

>> A+B

ans =

2 0 0 0 -2

0 4 0 0 0

0 0 2 0 0

0 0 0 4 0

0 8 0 0 2

 

Все нюансы, возникающие при выполнении операций с разреженными матрицами (а они имеются) MATLAB решает сам. Вникать в них вам не обязательно. Единственное, что требуется от вас – это дать понять MATLAB’у, с какой матрицей следует обращаться как с разреженной, а с какой – как с обычной.

Для работы с разреженными матрицами имеется довольно много функций. Однако на настоящем этапе ограничимся только одной:

 

>> spy(A)


Эта функция (spy – подглядывать, подсматривать) дает графическое изображение расположения ненулевых элементов. Здесь, для матрицы размера 5х5 такое изображение мало, что дает. Однако в тех случаях, когда размер матрицы порядка сотен или даже тысяч, такая картинка дает очень ценную информацию о структуре матрицы.

 

Упражнения.

  1. Создайте обычным способом матрицу размера 6х6 с 7-8-ью ненулевыми элементами.
  2. Преобразуйте эту матрицу в разреженную
  3. Получите портрет матрицы

 

 

Задание

 

Найти решение системы линейных алгебраических уравнений . Матрицу A и вектор b взять по номеру своего варианта, заменяя значение n номером своего варианта.

Работу оформить в виде m-файла. Матрицу A следует создавать с использованием функций формирования матриц, имеющихся в системе MATLAB.

 


 

№№ вариантов Матрицы
 
 
 

 

№№ вариантов Матрицы
 
 
 
 
 
 

 

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.