Существует ли в текущий момент какой-либо пакет линейной алгебры, который поддерживает как автоматическое дифференцирование, так и симметричные матрицы?
Часто важно, чтобы во время последовательности вычислений некоторая матрица оставалась симметричной. Одно из возможных решений - применить проекцию к симметричной части A <- (A + transpose(A))/2
после каждого вычисления. По очевидным причинам это в лучшем случае неоптимально, а в худшем случае запредельно медленно.
Я ищу пакет линейной алгебры с , гарантирующим , что некоторые операции с симметричными матрицами дают симметричные матрицы. Например:
A + B
, AB+BA
, A^n
, A'
, c*A
, VAV'
, VV'
, V'V
A^-1
, exp(A)
, A∘B
, A ⊗ B
,
Должны все снова быть симметричными, учитывая A
, B
симметричные, V
произвольные, c
скалярные.