И другие программы этой серии
К примеру, рассмотренный выше объект bucky описывает в виде графов молекулу C60, содержащую 60 атомов сферической конфигурации. Ее можно представить матрицей B и вектором v: >> [B,v]=bucky;
Вектор задает список xyz-координат для 60 точек единичной сферы. Задав в командном режиме команды:
>> gplot(B,v) >> axis equal
можно построить граф данной молекулы. Он представлен на рис. 5.5.
Граф фигуры bucky представляет собой сферическую поверхность, построенную из многоугольников. Она дает наглядное представление о структуре молекулы.
5.2.3. Оцифровка узлов графа
Иногда желательно построить граф, узлы которого оцифрованы. Это несложно
сделать, используя конструкцию цикла for-end:
% Программа построения графа с оцифровкой узлов
Рис. 5.5. Пример построения графа фигуры bucky, представленной смежной матрицей B и вектором координат узлов v
k = 1:30;
gplot(B(k,k),v);
axis square
cfor j = 1:30, text(v(j,1),v(j,2), int2str(j));
end
Здесь задана оцифровка первых 30 узлов, что дает граф половины фигуры, представленной на рис. 5.5, – см. рис. 5.6.
5.2.4. Применение разреженных матриц в аэродинамике
В описании и справке по системе MATLAB можно найти пример подобного описания для моделирования профиля воздушного потока, обтекающего крыло самолета, – рис. 5.7.
При решении этой задачи в NASA использовались 4253 треугольные ячейки сетки, для описания которых потребовалась разреженная матрица, имеющая 28 831 ненулевой элемент. При этом степень заполнения матрицы составляла всего 0,0016.
248
Типы данных – массивы специального вида
Применение разреженных матриц
249
Рис. 5.6. Пример построения графа передней части фигуры bucky с оцифровкой узлов
5.2.5. Визуализация разреженных матриц, возведенных в степень
Команда
>> spy(В)
позволяет визуализировать матрицу B. Полученный с ее помощью вид матрицы
уже был представлен на рис. 5.2 (слева). Любопытно просмотреть, как меняется
вид разреженных матриц при математических операциях.
Начало в части 1