2013-05-28 2 views
1

Есть ли способ вычислить матричную экспоненту матрицы в MKL? Я посмотрел справочное руководство, но я смог найти только v?Exp(), который предназначен для нахождения экспоненты векторных элементов.Найти матричную экспоненту матрицы в MKL

(я в основном ищу expm MATLAB() эквивалент)

+0

Интеллектуальное вычисление показателя матрицы не является чисто численной проблемой. Вероятно, вам стоит сначала подумать, может ли ваша матрица быть представлена ​​в диагональной форме, если нет, то ли ее собственные значения являются реальными, можете ли вы рассчитать сложные собственные значения, независимо от того, является ли это нильпотентным и т. Д. Если вы ничего не знаете о свойствах вашей матрицу, вы можете вернуться к вычислению степенной серии, но я боюсь, что этот прямой метод потребует большой вычислительной мощности. – noxmetus

ответ

3

Может быть сделано с помощью «Scaling и ФОРМАТНО» метода.

Внедрено решение как функция here.

+1

Я ищу, чтобы написать аналогичную программу в python, которая будет работать на любой размер матрицы. Прежде чем я это сделаю, мне было интересно, какого рода выигрыш в производительности у вас есть, и если у вас есть какие-либо советы по его абстрагированию. – brebs

+0

Мы реализовали алгоритм обработки в VNL и MATLAB, и мы увидели ускорение 4.56x от VNL и примерно 2-3-кратное ускорение по сравнению с MATLAB. Я не совсем уверен, что вы подразумеваете под абстрагированием, но я разместил часть статьи, описывающую метод экспоненциальной матрицы здесь: https://github.com/poliu2s/MKL/blob/master/matrix_exponential_reference.pdf – poliu2s

+0

Это здорово услышать ! Исчерпывая это, я имел в виду сделать его не жестко запрограммированным для работы на матрицах 4x4 и вместо этого работать с любой размерной матрицей, которая вводится. – brebs

Смежные вопросы