Как проверить инвертор матрицы ноутбука
Обновлено: 21.11.2024
Каковы максимальные размеры матрицы, для которой можно вычислить обратную? Я имею в виду на обычной платформе ПК. Не с MATLAB. Просто самодельный алгоритм, созданный на каком-то языке программирования.
купари
Ночная ночь
Думаю, все зависит от того, о каком типе матрицы вы говорите и как ее хранить. По сути, вашими ограничениями будут доступная оперативная память и/или доступное место на жестком диске: D
Цотне
Думаю, все зависит от того, о каком типе матрицы вы говорите и как ее хранить. По сути, вашими ограничениями будут доступная оперативная память и/или доступное место на жестком диске
Обычная двумерная матрица на платформе с нормальными свойствами, а не суперкомпьютеры. Здесь я ориентируюсь на скорость. Сможете ли вы вычислить обратную матрицу 1000 x 1000 за 15 секунд?
купари
Ночная ночь
Лично я не пробовал, поэтому не знаю. Но 15 секунд для общей матрицы кажутся очень быстрыми.
Зачем вы инвертируете матрицы? Люди склонны уклоняться от этого.
Цотне
Лично я не пробовал, поэтому не знаю. Но 15 секунд для общей матрицы кажутся очень быстрыми.
Зачем вы инвертируете матрицы? Люди склонны уклоняться от этого.
Дилан
Дэниел Даффи
Автор C++, тренер
Инверсия матриц вышла из моды в XIX веке. Я думаю, что вы хотите решить
или я что-то упустил?
Цотне
Инверсия матриц вышла из моды в XIX веке. Я думаю, что вы хотите решить
или я что-то упустил?
Дэниел Даффи
Автор C++, тренер
На самом деле, я думал об этом немного больше. В некоторых случаях полезно предварительно вычислить обратное значение, чтобы избежать решения одной и той же системы на каждой итерации.
Но опасность заключается в обратном (A) является плотной матрицей, даже если A является разреженной.
Существует много методов вычисления обратного(A), но я не могу комментировать, так как не исследовал их.
Цотне
Преобразование матрицы в ступенчатую форму
Спасибо, мистер Даниэль, за ответы. Я определил алгоритм преобразования данной матрицы в строчно-эшелонный вид. Я работал над ним с момента последнего поста, поэтому он довольно быстро сделан. Он работает, я проверял несколько раз, но есть некоторые трудности при увеличении размеров. (Но пока не обращайте внимания на детали, я сделал это в короткие сроки, так что я все исправлю). Вас, конечно, не просят рассматривать этот код в деталях, так как довольно сложно уловить каждую деталь. Я просто показываю трудности, связанные с моим последним вопросом.
Это похоже на рисование графика и проверку объектов (или зависимостей объектов), если они укоренены, пока должна выполняться сборка мусора. Аналогичным образом, мне интересно, можем ли мы «рутировать»
ресурсы и удалять ненужные, что может увеличить время обработки. Спасибо
винцегата
Единственная вещь, которую профессор численного анализа вбил мне в голову, это то, что вы никогда не используете обратную матрицу для решения систем уравнений, потому что это требует больших вычислительных ресурсов. Исключение Гаусса-Жордана примерно в 3 раза медленнее, чем LU для решения систем уравнений. Я не знаю других алгоритмов обращения матрицы.
Ваши 2-й и 3-й абзацы не имеют смысла. Вы хотите ускорить компиляцию или выполнение? Ваше время компиляции должно быть в порядке, чтобы ускорить выполнение, вы можете попробовать распараллелить свой код.
Цотне
Единственная вещь, которую профессор численного анализа вбил мне в голову, это то, что вы никогда не используете обратную матрицу для решения систем уравнений, потому что это требует больших вычислительных ресурсов. Исключение Гаусса-Жордана примерно в 3 раза медленнее, чем LU для решения систем уравнений. Я не знаю других алгоритмов обращения матрицы.
Спасибо, Винцегата, за ответ. Мне не нужно решать систему с помощью алгоритма Гаусса-Джордана. Обычный алгоритм Гаусса решает систему линейных уравнений, если это необходимо, но сейчас я не сосредотачиваюсь на самом алгоритме. Я реализовал это просто ради интереса. Суть этого потока заключалась в том, как уменьшить время выполнения. В предыдущих постах я говорил, что увеличение количества измерений в квадратной матрице катастрофически увеличивает время выполнения. Обратная матрица — это только пример. Как правило, многие потоковые коды имеют аналогичные проблемы. Я могу придумать множество способов математического решения задачи. Алгоритмы решения системы уравнений (независимо от того, линейные они или нелинейные) не являются для меня чем-то новым. Но любое предложение со стороны программирования, как уменьшить время выполнения, будет новым. Например, рассмотрим простой мир, в котором Гаусс еще не родился, и единственный способ решить систему — обратиться к матрице. Что теперь?Если у нас нет математических инструментов, можем ли мы сделать что-нибудь с программным маневром, чтобы вычислить такую матрицу. Еще раз спасибо
где — единичная матрица. Курант и Гильберт (1989, стр. 10) используют это обозначение для обозначения обратной матрицы.
Квадратная матрица имеет обратную тогда и только тогда, когда определитель (Lipschutz 1991, стр. 45). Так называемая теорема об обратимой матрице является основным результатом линейной алгебры, который связывает существование обратной матрицы с рядом других эквивалентных свойств. Матрица, имеющая обратную, называется невырожденной или обратимой.
Матрица, обратная квадратной матрице, может быть получена в языке Wolfram Language с помощью функции Inverse[m].
обратная матрица
обратная матрица
Общую матрицу можно инвертировать с помощью таких методов, как исключение Гаусса-Жордана, исключение Гаусса или LU-разложение.
Обратное произведение матриц и может быть выражено через и . Пусть
См. также
Части этой записи предоставлены Кристофером Стовером
Исследуйте с Wolfram|Alpha
Что еще можно попробовать:
Ссылки
Эйрес, Ф. мл. Очерк теории и проблем матриц Шаума. Нью-Йорк: Шаум, с. 11, 1962. Бен-Исраэль, А. и Гревилл, Т.Н.Э. Обобщенные обратные уравнения: теория и приложения. Нью-Йорк: Wiley, 1977. Физика, Том. 1. Нью-Йорк: Wiley, 1989. Джодар, Л.; Закон, А.Г.; Резазаде, А .; Уотсон, Дж. Х.; и Ву, Г. «Вычисления Мура-Пенроуза и других обобщенных инверсий». Конгресс. Numer. 80, 57-64, 1991. Липшуц, С. "Обратимые матрицы". Очерк теории и проблем линейной алгебры Шаума, 2-е изд. Нью-Йорк: McGraw-Hill, стр. 44–45, 1991. Нэш, Дж. К. Компактные численные методы для компьютеров: линейная алгебра и Минимизация функций, 2-е изд. Бристоль, Англия: Адам Хилгер, стр. 24-26, 1990. Press, WH; Фланнери, BP; Теукольский С.А.; и Феттерлинг, В. Т. «Является ли инверсия матрицы процессом?» §2.11 в Численные рецепты на FORTRAN: Искусство научных вычислений, 2-е изд. Кембридж, Англия: Издательство Кембриджского университета, стр. 95-98, 1992. Россер, Дж. Б. "Метод вычисления точных инверсий". матриц с целыми коэффициентами». <Я> Дж. Рез. Нац. Бур. Раздел стандартов. Б. 49, 349-358, 1952.
Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Еще. Меньше
Функция MINVERSE возвращает обратную матрицу для матрицы, хранящейся в массиве.
Примечание. Если у вас установлена текущая версия Microsoft 365, вы можете просто ввести формулу в верхнюю левую ячейку выходного диапазона, а затем нажать клавишу ВВОД, чтобы подтвердить формулу как формулу динамического массива. В противном случае формулу необходимо ввести как устаревшую формулу массива, сначала выбрав выходной диапазон, введя формулу в верхнюю левую ячейку выходного диапазона, а затем нажав CTRL+SHIFT+ENTER для подтверждения. Excel вставляет фигурные скобки в начале и в конце формулы. Дополнительные сведения о формулах массивов см. в разделе Рекомендации и примеры формул массивов.
Синтаксис
МИНВЕРС(массив)
Синтаксис функции MINVERSE имеет следующие аргументы:
Обязательный массив. Числовой массив с равным количеством строк и столбцов.
Примечания
Массив можно указать как диапазон ячеек, например A1:C3; как константа массива, например ; или как имя для любого из них.
Обратные матрицы, как и определители, обычно используются для решения систем математических уравнений с несколькими переменными. Произведением матрицы и ее обратной является единичная матрица — квадратный массив, в котором диагональные значения равны 1, а все остальные значения равны 0.
В качестве примера расчета матрицы с двумя строками и двумя столбцами предположим, что диапазон A1:B2 содержит буквы a, b, c и d, которые представляют любые четыре числа. В следующей таблице показана обратная матрица A1:B2.
MINVERSE рассчитывается с точностью примерно до 16 цифр, что может привести к небольшой числовой ошибке, если отмена не завершена.
Примеры
Вы должны ввести приведенные выше формулы как формулы массива, чтобы они работали правильно. После ввода формулы нажмите клавишу ВВОД, если у вас есть действующая подписка на Microsoft 365; в противном случае нажмите Ctrl+Shift+Enter. Если формула не введена как формула массива, возвращается один результат.
Нужна дополнительная помощь?
Вы всегда можете обратиться к эксперту в техническом сообществе Excel или получить поддержку в сообществе ответов.
Все предполагают, что компьютеры бесконечно быстры, бесконечно мощны и что всегда есть приемы, которые можно использовать для ускорения любых вычислений.
Компьютеры настолько быстры, насколько они быстры. Вычисление обратной матрицы (то, что вам почти никогда не нужно делать в любом случае, ЕСЛИ вы знаете, что делаете) — это вычисление, которое требует известного количества сложений, умножений и т. д. Ваш компьютер может выполнять эти операции с максимальной скоростью. может.
В любом случае, если этого недостаточно, вы можете получить более быстрый компьютер. Это лучший способ решить вашу проблему. Как видите, мой компьютер решил задачу примерно в 3 раза быстрее, чем компьютер Яна.
Далее вы МОЖЕТЕ иметь возможность делать что-то с разреженными матрицами, ЕСЛИ вы знаете, что делаете, поскольку вам не нужно будет вычислять прямое обратное, И ЕСЛИ ваша матрица действительно является разреженной матрицей. Многие люди думают, что их матрицы разрежены, когда они даже близко не разрежены. Обратная разреженная матрица, как правило, не будет разреженной, поэтому на самом деле ее вычисление может быть медленнее. Поэтому вам нужно будет переформулировать задачу, чтобы избежать вычисления обратной задачи.
Конечно, если вы сможете переформулировать задачу, то некоторые вещи могут привести к ускорению без особых усилий. Например, альтернативой вычислению обратного является
Другие идеи могут состоять в том, чтобы попытаться перенести проблему на ваш графический процессор. Но для этого вам потребуется набор инструментов для параллельных вычислений И научиться эффективно их использовать, и даже в этом случае я понятия не имею, увидите ли вы какую-либо реальную выгоду.
Поэтому лучший способ увидеть увеличение скорости – это приобрести более быстрый компьютер. Или выпейте чашечку кофе и почитайте хорошую книгу, пока ждете. Если вам нужен лучший ответ, было бы полезно, если бы мы знали больше о матрицах, которые вы пытаетесь инвертировать, и, в частности, о том, что вы делаете с этой инверсией.
Читайте также: