И другие программы этой серии
Пример:
>> A=[1 3 4 6 8 0 0;7 8 0 7 0 0 5; 0 0 0 0 0 9 8 ; 7 6 54 32 0 9 6];
>> d=[1 3 2 2]
>> B = spdiags(A,d)
B=
3
6
4
4
0
0
7
7
0
9
0
0
0
6
9
9
• S = speye(m,n) возвращает разреженную матрицу размера m?n с единица
ми на главной диагонали и нулевыми недиагональными элементами;
• S = speye(n) равносильна speye(n,n).
Пример:
>> S = speye(4)
S=
(1,1)
(2,2)
(3,3)
(4,4)
1
1
1
1
5.1.2. Элементарные разреженные матрицы
Вначале рассмотрим элементарные разреженные матрицы и относящиеся к ним
функции системы MATLAB.
Функция spdiags расширяет возможности встроенной функции diag. Воз
можны четыре операции, различающиеся числом входных аргументов:
Матрица R = sprand(S) имеет ту же структуру, что и разреженная матрица S,
но ее элементы распределены по равномерному закону:
• R = sprand(m,n,density) возвращает случайную разреженную матрицу
размера m?n, которая имеет приблизительно density?m?n равномерно
распределенных ненулевых элементов (0?density?1).
• R = sprand(m,n,density,rc) в дополнение к этому имеет в числе пара
метров число обусловленности по отношению к операции обращения, при
близительно равное rc. Если вектор rc имеет длину lr (lr?min(m,n)), то
матрица R имеет rc в качестве своих первых lr сингулярных чисел, все
другие значения равны нулю. В этом случае матрица R генерируется с по
мощью матриц случайных плоских вращений, которые применяются к ди
агональной матрице с заданными сингулярными числами. Такие матрицы
играют важную роль при анализе алгебраических и топологических
структур.
236
Пример:
>> d=sprand(4,3,0.6)
d=
(1,1)
(2,1)
(4,1)
(3,3)
(4,3)
Типы данных – массивы специального вида
Разреженные матрицы
237
0.6614
0.2844
0.0648
0.4692
0.9883
• R = sprandn(S) возвращает матрицу со структурой разреженной матрицы
S, но с элементами, распределенными по нормальному закону с нулевым
средним и дисперсией, равной 1.
• R = sprandn(m,n,density) возвращает случайную разреженную матри
цу размера m?n, имеющую примерно density?m?n нормально распреде
ленных ненулевых элементов (0?density?1).