Я заинтересован в вычислении решения большой системы ОДУ, используя метод Крылова, как в [1]. Такой метод включает функции, связанные с экспонентой (так называемые-функции). По сути, он состоит из вычисления действия матричной функции путем построения подпространства Крылова с использованием итерации Арнольди и проецирования функции на это подпространство. Это уменьшает проблему для вычисления экспоненты намного меньшей матрицы Гессенберга.
Мне известно, что существует несколько алгоритмов для вычисления экспоненты (см. [2] [3] и ссылки в них). Интересно, существует ли специальный алгоритм для вычисления экспоненты, который может использовать тот факт, что матрица Гессенберга?
[1] Сидже, РБ (1998). Экспокит: программный комплекс для расчета показателей матрицы. ACM транзакции по математическому программному обеспечению (TOMS), 24 (1), 130-156.
[2] Moler, C. & Van Loan, C. (1978). Девятнадцать сомнительных способов вычисления экспоненты матрицы. Обзор SIAM, 20 (4), 801-836.
[3] Moler, C. & Van Loan, C. (2003). Девятнадцать сомнительных способов вычислить экспоненту матрицы двадцать пять лет спустя. Обзор SIAM, 45 (1), 3-49.
источник
Ответы:
Поскольку expokit, похоже, использует метод подпространств Крылова, обычно (по крайней мере, есть надежда, что) верхние матрицы Гессенберга имеют малую размерность, скажем,м ∼ 100 , Для матриц этих размеров не должно быть каких-либо существенных различий во времени вычислений при использовании любого метода для экспоненциального вычисления с плотной матрицей. Например, expm в MATLAB, похоже, использует метод масштабирования и возведения в квадрат с приближением Паде вблизи нуля.
Если размерность подпространства Крылова велика, вы можете подумать о предварительном кондиционировании http://link.springer.com/article/10.1023%2FA%3A1023219016301 или перезапуске метода подпространств Крылова http: //www.mathe.tu-freiberg .de / ~ Эрнст / PubArchive / eiermannErnstKrylovExp.pdf
источник