SeB -- Sergei I. Blinnikov

Обычно при решении больших линейных систем алгебраических уравнений определители не нужны, но иногда всё же хочется их знать (или хотя бы их знаки).

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

Рабочий пакет был отчасти собран через новый трефор, http://dau.itep.ru/sn/node/28 но тут уже чистый фортран.

 
  
После распаковки determ.tgz внутри новой дир набивайте:


 make -f ifcdeterm.mak
  -- это для ifort

 make -f mgfdeterm.mak
  -- это для gfortran


Можете там свои компиляторы вставлять.


Для теста миноров:

 make -f ifcdeterm.mak alargematr

 make -f mgfdeterm.mak alargematr

Получаете  xalargematr.exe
и пускаете его.

Задаёте размер матрицы N. Нормально работает до N~200.
Потом детерминанты могут стать слишком большими, но если матрица
хорошая и нормированная, то и сильно больше можно брать.

Нажимаете там много раз ввод.
Когда встанет, смотрите файл

ompDet015.res
если N=15
или
compDet125.res
если N=125 и т.п.

В этом файле первые три колонки выдают диагональные миноры
матрицы, посчитанные тремя разными способами (первые два почти один способ).
Все три должны совпадать.
Использованы разные варианты библиотеки lapack (она стоит обычно на
линукс-машинах, но я сюда собрал все нужные исходники из неё). Ещё
там большой файл test_mat.f90 с сайта

http://people.sc.fsu.edu/~%20jburkardt/f_src/test_mat/test_mat.html
-- в моём пакете используется только малая часть этого файла, но вы
можете с другими тестами поиграть (я у себя вставил только
TEST_DETERMINANT для AEGERTER).

и файл ma28Timmes.f90 с сайта

http://cococubed.asu.edu/code_pages/burn.shtml

Главная программа в пакете tLargematrAlone.f90 -- там после строки
238 матрица amat(i,k) заполняется случайными числами и единицами. Т.е.
это пакет для произвольной матрицы. Он должен работать и для
симметричных матриц, но я такие пакеты не исследовал. По идее, они
должны быть более быстрыми, но и здесь для N<200 всё неплохо.

Т.е. вам надо на место моей случайной матрицы подставлять вашу.

Тот же J.Burkardt собрал программы и для симметричных матриц:
http://people.sc.fsu.edu/~%20jburkardt/f_src/sparsepak/sparsepak.html

Они основаны на книге
Alan George, Joseph Liu,
Computer Solution of Large Sparse Positive Definite Matrices,
Prentice Hall, 1981,
По-русски
А.Джордж, Дж.Лю, Москва, Мир, 1984.
Но я эти программы не осваивал.

Я пользовался такими книжками:

Писсанецки С - Технология разреженных матриц

Эстербю О., Златев З.: Прямые методы для разреженных матриц

Дж. Райс - Матричные вычисления и математическое обеспечение