И другие программы этой серии
Для подготовки баз данных большое значение имеют многомерные массивы. Описание этих средств MATLAB и дается в этом уроке. Все они относятся к сложным типам данных.
5.1. Разреженные матрицы
5.1.1. Роль и назначение разреженных матриц
Матрицы без элементов с нулевыми значениями называются полными матрицами. Матрицы, содержащие некоторое число элементов с нулевыми значениями, в MATLAB называются разреженными матрицами. Часто такими матрицами являются матрицы с 1–3 диагоналями, заполненными ненулевыми элементами и имеющими остальные нулевые элементы. Сильно разреженные матрицы имеют большую часть элементов с нулевыми значениями.
Строго говоря, разреженными называют те матрицы, при работе с которыми используются численные методы, учитывающие упрощение арифметических операций с нулевыми элементами (например, получение нуля при умножении на нуль или пропуск операций сложения и вычитания при использовании этих операций с нулевыми элементами матриц). Применение таких операций уменьшает время, затрачиваемое на обработку матриц и вычисления с ними.
Разреженные матрицы имеют специальную структуру для исключения хранения нулевых элементов. Например, могут храниться только ненулевые элементы в виде чисел двойной точности и их целочисленные индексы или, точнее, диапазоны индексов. Уже одно это уменьшает размеры разреженной матрицы порою во много раз. Кроме того, фактически разреженные матрицы развертываются по столбцам в одномерные массивы, что упрощает индексацию ненулевых элементов – вместо указания двух индексов произвольного элемента достаточно указать один индекс. Детали упаковки разреженных матриц большинству пользователей не важны.
Разреженные матрицы широко используются при решении прикладных задач. Например, моделирование электронных и электротехнических линейных цепей часто приводит к появлению в матричном описании топологии схем сильно разреженных матриц. Для таких матриц создан ряд функций, обеспечивающих эффективную работу с ними и устраняющих тривиальные операции с нулевыми элементами матриц [45, 49].
5.1.2.
Начало в части 1