Каков наилучший способ вычисления суммы матриц, таких как A^i + A^(i + 1) + A^i + 2 ........ A^n для очень больших n ?Матричная сумма мощности
Я думал два возможных способов:
1) С помощью логарифмической матрицы (LME возведение в степень) для^I, а затем рассчитать последующие матрицы путем умножения А.
Проблема: На самом деле не использует алгоритм LME, поскольку я использую его только для самой низкой мощности!
2) Используйте LME для нахождения A^n и запомните промежуточные вычисления.
Задача: Слишком много места для больших n.
Есть ли третий способ?
Вычисление обратного порядка O (m^2.4), где m - размер матрицы. Стоимость умножения - O (m^2.4) тоже, и вы делаете больше умножения, чем я. Единственное преимущество этого подхода заключается в том, что он работает, даже если вы не можете инвертировать I-A, но я уверен, что сначала стоит проверить, можете ли вы его инвертировать, и если это так, используйте мое решение. – Save
@Save - поиск инверсии также значительно сложнее для правильной реализации. Даже проверка того, существует ли она, требует вычисления определителя, что не является тривиальной проблемой. – IVlad
Существует множество библиотек для вас. И тривиальная реализация как умножения, так и инверсии стоит O (n^3), и это довольно легко сделать (гауссово исключение), поэтому я снова предлагаю сначала проверить и затем решить этот метод. – Save