Главная » 2019 » Январь » 5 » fpcSparse1_4 - модуль работы с разреженными матрицами
12:26
fpcSparse1_4 - модуль работы с разреженными матрицами

В каталоге файлов размещен новый материал fpcSparse — модуль на языке FreePascal, в котором реализован класс, позволяющий создавать, факторизировать и решать системы квадратно-матричных уравнений с разреженными матрицами коэффициентов. Класс разработан на основе адаптации для языка FreePascal оригинального пакета Sparse1.4 (Copyright © 2003, Kenneth S. Kundert), написанного на языке С.

Помимо базовой способности создавать, факторизировать и решать системы уравнений, этот пакет имеет несколько возможностей, которые повышают его полезность:

  • • Возможность обрабатывать как реальные, так и комплексные системы уравнений. Оба типа могут быть резидентными и активными одновременно. Фактически, одна и та же матрица может чередоваться между вещественной и комплексной.
  • • Возможность быстро решать транспонированную систему. Эта функция полезна при расчете чувствительности схемы с использованием сопряженного метода.
  • • Память для элементов в матрице распределяется динамически, поэтому размер матрицы ограничен только доступным для Sparse объемом памяти и диапазоном целочисленного типа данных, который используется для хранения индексов матрицы.
  • • Возможность эффективно вычислять число обусловленности матрицы и апостериорную оценку ошибки, вызванной увеличением числа элементов во время факторизации.
  • • Большая часть инициализации матрицы может быть выполнена Sparse, обеспечивая преимущества в скорости и упрощении кодирования вызывающей программы.
  • • Возможность предварительного переупорядочения матриц проводимостей модифицированного МУП для повышения точности и скорости.
  • • Возможность использовать разреженность в векторе правой части для уменьшения ненужных вычислений.
  • • Возможность масштабировать матрицы до факторинга, чтобы уменьшить неопределенность в решении.
  • • Возможность создавать и строить матрицы, не зная их окончательного размера.
  • • Возможность добавлять элементы, а также строки и столбцы в матрицу после переупорядочения матрицы.
  • • Возможность удалять строки и столбцы из матрицы.
  • • Возможность вырезать  из матрицы заполнения - ненулевые элементы, возникающие при факторизации. Это может повысить эффективность последующего переупорядочения.
  • • Возможность обрабатывать матрицы, в которых строки и столбцы отсутствуют в их входном описании.
  • • Возможность выводить матрицу в формах, которые могут прочитать люди или пакет Sparse. Также может быть выведена базовая статистика по матрице.
  • • По умолчанию все арифметические операции и хранение чисел используют двойную точность. Таким образом, Sparse обычно дает точные результаты, даже для очень плохо обусловленных систем. При желании Sparse может быть легко настроен для использования арифметики другой точности.
Категория: Программы+модули | Просмотров: 191 | Добавил: zoleg5763 | Рейтинг: 0.0/0
Всего комментариев: 0
avatar