Как быстрое умножение матриц ускоряет вычисление СЛАУ?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 15.12.17 09:34
Оценка:
Есть так называемый "школьный" способ решения систем линейных уравнений — сначала приводим систему к треугольному виду, а затем вычисляем значения переменных, идём обратно и подставляем уже вычисленные, чтобы получить остальные.

Примерно это называется методом Гаусса.
Ну или то же самое с выделением главного/опорного элемента.

Мне непонятно — при чём тут перемножение матриц?
Каким образом надо использовать быстрое умножение матриц (которое может ускорить вычисление СЛАУ)?
Отредактировано 15.12.2017 9:42 Эйнсток Файр . Предыдущая версия . Еще …
Отредактировано 15.12.2017 9:42 Эйнсток Файр . Предыдущая версия .
Отредактировано 15.12.2017 9:36 Эйнсток Файр . Предыдущая версия .
Re: Как быстрое умножение матриц ускоряет вычисление СЛАУ?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 15.12.17 10:24
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Мне непонятно — при чём тут перемножение матриц?

ЭФ>Каким образом надо использовать быстрое умножение матриц (которое может ускорить вычисление СЛАУ)?

А разве методом Гаусса кто-то СЛАУ решает? Откуда у тебя такая инфа?
Re[2]: Как быстрое умножение матриц ускоряет вычисление СЛАУ?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 15.12.17 10:44
Оценка:
N>А разве методом Гаусса кто-то СЛАУ решает? Откуда у тебя такая инфа?

из школы, а ещё тут написано — https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F_%D0%A1%D0%9B%D0%90%D0%A3

А как решают на самом деле?
Re[3]: Как быстрое умножение матриц ускоряет вычисление СЛАУ?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 15.12.17 10:48
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>из школы, а ещё тут написано — https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F_%D0%A1%D0%9B%D0%90%D0%A3

Ну, при решении в тетради, быстрое умножение матриц явно не нужно. В Википедии просто ссылки на методы. В реальности метод Гаусса получается одним из самых медленных.

ЭФ>А как решают на самом деле?

Как угодно, зависит от ситуации: размер матриц, разреженность, насколько точное решение надо получить и т.д. Надо исходить из задачи, а не наоборот.
Re[4]: Как быстрое умножение матриц ускоряет вычисление СЛАУ?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 15.12.17 10:58
Оценка:
N> зависит от ситуации: размер матриц, разреженность, насколько точное решение надо получить и т.д. Надо исходить из задачи, а не наоборот.

Размер матриц большой (для ручного счёта конечно, для вас-то может он маленький) — порядка 10^5 уравнений, разряженность высокая. решение нужно точное.
Re[5]: Как быстрое умножение матриц ускоряет вычисление СЛАУ?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 15.12.17 11:03
Оценка: +1
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Размер матриц большой (для ручного счёта конечно, для вас-то может он маленький) — порядка 10^5 уравнений, разряженность высокая. решение нужно точное.


А переменных сколько? Матрица переопределённая или нет? Думаю, что тебе надо применить какое-нибудь разложение матрицы. QR или SVD.
Re[6]: Как быстрое умножение матриц ускоряет вычисление СЛАУ?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 15.12.17 11:05
Оценка:
N>А переменных сколько? Матрица переопределённая или нет?

Столько же, матрица квадратная и точно не вырожденная.
Re[6]: Как быстрое умножение матриц ускоряет вычисление СЛАУ
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 15.12.17 11:55
Оценка:
N> QR

Я не понимаю, как QR может быть быстрее. Во-первых, он не точный, а итеративный. Во-вторых,

In this crude form the iterations are relatively expensive. This can be mitigated by first bringing the matrix A to upper Hessenberg form (which costs 10/3*n^3 + O ( n^2 ) arithmetic operations using a technique based on Householder reduction)


Это 10/3*n^3 уже больше, чем n^3/4 у Гаусса...
Отредактировано 15.12.2017 11:55 Эйнсток Файр . Предыдущая версия .
Re[7]: Как быстрое умножение матриц ускоряет вычисление СЛАУ
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 15.12.17 12:04
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Это 10/3*n^3 уже больше, чем n^3/4 у Гаусса...


А зачем тебе QR, если система невырожденная и имеет однозначное решение?
Точные значения ты получишь только в символьной арифметике. Сомневаюсь, что тебе надо именно это.
Re[8]: Как быстрое умножение матриц ускоряет вычисление СЛАУ
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 15.12.17 12:09
Оценка:
N> Точные значения ты получишь только в символьной арифметике.

Я могу использовать
https://en.wikipedia.org/wiki/Bareiss_algorithm
Он гарантирует O(n^5) и никакой символьной арифметики

Исходные коэффициенты у меня все целые
Отредактировано 15.12.2017 12:10 Эйнсток Файр . Предыдущая версия .
Re[8]: Как быстрое умножение матриц ускоряет вычисление СЛАУ
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 15.12.17 12:11
Оценка:
N> зачем тебе QR, если система невырожденная и имеет однозначное решение?

Откуда я знаю? Это ты предложил!

Я всего-то хотел более эффективный алгоритм, чем Гаусса. Говорят что они есть, но я не понимаю как.
Re: Как быстрое умножение матриц ускоряет вычисление СЛАУ?
От: andyp  
Дата: 17.12.17 12:43
Оценка: 1 (1)
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Мне непонятно — при чём тут перемножение матриц?


При том, что LU факторизация — продвинутый вариант алгоритма Гаусса c pivoting, имеющий ту же вычислительную сложность.

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

Минусы (что для Гаусса с перестановками, что для LU разложения)
— нет стабильности (даже в случае с перестановками)
— нет учета специфической структуры у матрицы в левой части. Например, если она эрмитова, то нужно факторизацию Холецкого использовать — более вычислительно эффективнее и стабильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.