Автор Тема: Разреженные матрицы  (Прочитано 1493 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Vasya1

  • Коллежский регистратор
  • *
  • Сообщений: 6
  • Репутация: 0
Разреженные матрицы
« : јРЩ 27, 2009, 07:54:55 pm »
Есть 2 разреженные матрицы и их надо перемножить. Какие на этот счет существуют алгоритмы (в Инете не так много информации) и в чем их суть.

Оффлайн jx

  • Глобальный модератор
  • Коллежский асессор
  • *****
  • Сообщений: 291
  • Репутация: 16
  • Пол: Мужской
Re: Разреженные матрицы
« Ответ #1 : јРЩ 28, 2009, 08:05:49 pm »
а матрицы общего вида?

если общего вида, то лучше хранить в памяти данные такого типа:
1. столбец элемента
2. строка элемента
3. ссылка следующий ненулевой элемент в строке
4. ссылка следующий ненулевой элемент в столбце
5. само значение
это намного ускорит перемножение матриц. если хранить только индексы элемента и значение, то при перемножении нужно будет каждый раз искать элемент во второй матрице по ключам из первой.

если какого-то определённого вида, например, трёхдиагональная, то алгоритмы есть.


http://www.cise.ufl.edu/research/sparse/ssmult/
посмотри тут. вроде, что надо -- разрежённая матрица на разрежённую матрицу. я не проверял исходники.
« Последнее редактирование: јРЩ 28, 2009, 08:14:15 pm от jx »

Оффлайн Vasya1

  • Коллежский регистратор
  • *
  • Сообщений: 6
  • Репутация: 0
Re: Разреженные матрицы
« Ответ #2 : јРЩ 30, 2009, 01:51:40 am »
Большое спасибо за линк - пока еще не успел полностью все просмотреть.  Но у меня уже появились соображения по поводу решения данной задачи
« Последнее редактирование: јРЩ 30, 2009, 01:56:55 am от Vasya1 »

Оффлайн dEEp

  • Глобальный модератор
  • Тайный советник
  • *****
  • Сообщений: 2021
  • Репутация: 29
  • Пол: Мужской
Re: Разреженные матрицы
« Ответ #3 : ёоЭм 01, 2009, 08:48:14 am »
закрываем тему, чего тупить-то?
Подпись - есть нечто иное, как изъяснение общей сути человека, выраженное кем-то более великим, чем тот, кто написал его в каком-либо месте в любой форме изложения....