Size: a a a

2020 December 16

S

Stas in pro.cxx
Это суп что ли?
@supapro
источник

IZ

Ilia Zviagin in pro.cxx
Stas
Это суп что ли?
@supapro
Нет, и поэтому удалено. Ибо кросспостинг был
источник

D

Dmitriy in pro.cxx
Прелестный codestyle
источник

AS

Anatoly Shirokov in pro.cxx
обшибся чатом
источник

AT

Anatoly Tomilov in pro.cxx
Joshua Jakowlew
Подскажите, кто с CUDA работал, как можно считать обратную матрицу средствами cuBLAS? Матрицы очень большие, в районе 1000х1000 - 25000-25000
Для такого размера будет плохая обусловленность. Вряд ли получится обратить столь большую матрицу
источник

AT

Anatoly Tomilov in pro.cxx
Нужно что-то вместо float или даже double. Например типы, основанные на mpfr или gmp.
источник

BU

Boris Usievich in pro.cxx
Anatoly Tomilov
Для такого размера будет плохая обусловленность. Вряд ли получится обратить столь большую матрицу
С чего бы это? обусловленность зависит от того, что там в этой матрице, а не от размера.
источник

AT

Anatoly Tomilov in pro.cxx
Boris Usievich
С чего бы это? обусловленность зависит от того, что там в этой матрице, а не от размера.
Для детерминанта будет плохой. Из одного из определений следует.
источник

AT

Anatoly Tomilov in pro.cxx
Его вычисление - часть обращения
источник

BU

Boris Usievich in pro.cxx
Anatoly Tomilov
Для детерминанта будет плохой. Из одного из определений следует.
Hint: диагональная матрица с ненулевыми элементами на диагонали прекрасно обращается при любом размере аналитически :) И насколько мне известно, нормальные методы обращения матрицы не считают детерминант
источник

AT

Anatoly Tomilov in pro.cxx
Boris Usievich
Hint: диагональная матрица с ненулевыми элементами на диагонали прекрасно обращается при любом размере аналитически :) И насколько мне известно, нормальные методы обращения матрицы не считают детерминант
Может быть я неправ
источник

JJ

Joshua Jakowlew in pro.cxx
Anatoly Tomilov
Его вычисление - часть обращения
Поясните, зачем вычислять детерминант для поиска обратной? Это же сильно неэффективно для больших матриц
источник

AT

Anatoly Tomilov in pro.cxx
Joshua Jakowlew
Поясните, зачем вычислять детерминант для поиска обратной? Это же сильно неэффективно для больших матриц
1. Есть один из способов через алгебраические дополнения — он на ум пришёл.
2. Для каждого элемента обратной матрицы будут в точности одинаковые выражения, каким бы способом мы не вычисляли. Детерминант - в знаменателе.
Сумма больших количеств произведений больших количеств скаляров — это проблема для floating point в общем случае.
источник

AT

Anatoly Tomilov in pro.cxx
метод Жордана-Гаусса с pivot или LUP разложение — наверное снижают значимость проблемы
источник

JJ

Joshua Jakowlew in pro.cxx
Подождите. Мы же можем вычислять вообще без детерминанта. Дописываем справа к исходной матрице единичную того же порядка, и элементарными преобразованиями получаем в исходной матрице единичную, тогда в правой матрице получится обратная
источник

JJ

Joshua Jakowlew in pro.cxx
Да-да, я про Гаусса-Жордана и говорю
источник

AT

Anatoly Tomilov in pro.cxx
Joshua Jakowlew
Подождите. Мы же можем вычислять вообще без детерминанта. Дописываем справа к исходной матрице единичную того же порядка, и элементарными преобразованиями получаем в исходной матрице единичную, тогда в правой матрице получится обратная
см. п. 2
источник

JJ

Joshua Jakowlew in pro.cxx
Ага, понял. Надо это дело протестировать, конечно, может быть и нормально по погрешности будет на немного меньших матрицах. Спасибо.
источник

AT

Anatoly Tomilov in pro.cxx
проверка в любом случае простая, если не получилась единичная матрица после умножения, то увы. Никак во float с нативными операциями не решить
источник

m

magras in pro.cxx
Anatoly Tomilov
проверка в любом случае простая, если не получилась единичная матрица после умножения, то увы. Никак во float с нативными операциями не решить
Я не знаю конкретно про обращение матриц, но вообще есть алгоритмы нацеленные на уменьшение погрешности округления.
https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
источник