Быстрая и ненапряжная работа с матрицами

zuzaka

посоветуйте пакет или алгоритм
матрицы неограниченного размера (то есть чем больше, тем лучше. Я так понимаю, собираются проводить децимацию методами комп. моделирования, хотя особо не вникал)
нужно:
а) умножать матрицы;
б) искать их СЗ;
в) искать _наибольшее_ СЗ (есть ли такие алгоритмы?).
Насколько я понимаю, с таким вопросом часто сталкиваются те, кто решает обратные задачи.
Подскажите, плз.

spiritmc

Насколько общего вида матрицы?
Что сказал GAMS?
Какие ещё есть требования?
---
...Я работаю антинаучным аферистом...

zuzaka

матрицы совершенно произвольные (да, я понимаю, что так не бывает, но именно такую задачу хочет решать мой коллега)
ГАМС ничего пока не сказал. Советуешь?

abramenkomv

http://algolist.manual.ru/maths/linalg/index.php
Там ссылка на Богачевскую книжку. imho достаточно толково написана, и, в общем-то, полезна.

spiritmc

Коллега способен освоить фортран на простейшем уровне?
Да, советую, если он хочет быстро.
Если хочет ненапряжно, не знаю,
можно и матлабами какими-нибудь пробовать.
Но это может быть ну о-о-очень медленно.
---
...Я работаю антинаучным аферистом...

zuzaka

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

spiritmc

> юзает си
А GSL не удовлетворяет? Не глядел?
---
...Я работаю антинаучным аферистом...

Zoltan

если он книжку на русском освоит, то +1 за Богачёва. там всё что нужно имеется

zuzaka

думаю, ему проще освоить фортран, нежели русский

vovatroff

а) умножать матрицы;
б) искать их СЗ;
в) искать _наибольшее_ СЗ (есть ли такие алгоритмы?).
а) библиотека BLAS третьего уровня, если не ошибаюсь.
б) полная диагонализация с нахождением всех соб. зн. и соб.в. требует порядка N^3 действий
даже для вещественных симметрических матриц. Уже при размерностях порядка тысячи это
заметно дорого и долго. Искать только с.з. - порядка N^2 действий.
Самые оптимальные алгоритмы, на мой взгляд - приведение к трехдиагональному виду с последующей QL-диагонализацией (алгоритм Хаусхолдера). Реализацию см., напр., на сайте
http://www.library.cornell.edu/nr/
в) искать _наибольшее_ СЗ (есть ли такие алгоритмы?).
Авторы алгоритмов: Арнольди, Ланцош, Давидсон.
См. учебный текст http://www.nada.kth.se/kurser/kth/2D1252/Linalgtop.pdf
Для совсем произвольных матриц, про которые известно только то, что они очень большие, ничего разумного посоветовать нельзя
На эту же тему: акад. С.М.Никольский, математик, автор известного курса матана, в одной из своих монографий про квадратурные формулы заметил, что априорная погрешность
квадратурной формулы для вычисления интеграла от функции совершенно произвольного вида
равна просто плюс бесконечности

spiritmc

> а) библиотека BLAS третьего уровня, если не ошибаюсь.
Кажись, оно DGEMM называется.
---
...Я работаю антинаучным аферистом...

zuzaka

всем спасибо

Jeton89

Можно еще попробовать Math Kernel Library интеловскую.

slsf

Mathematica Kernel + MathLink Library, которая есть в поставке.

zuzaka

на математику у них истекла лицензия

slsf

Тогда, конечно, надо искать открытый код
Оставить комментарий
Имя или ник:
Комментарий: