2015-06-23 2 views
0

Стан обеспечивает функциюКак получить собственные векторы несимметричной матрицы в Стэн?

vector eigenvalues_sym(matrix A) 
matrix eigenvectors_sym(matrix A) 

для получения собственных значений и собственных векторов симметричной матрицы А, но что, если ваша матрица несимметрична? Можете ли вы получить собственные значения и собственные векторы? Кроме того, есть ли способ проверить, получаю ли я правильные собственные векторы? Как проверить части программы Stan?

ответ

1

Stan предоставляет только симметричный корпус, потому что мы не можем гарантировать, что ответ не является сложным в противном случае.

Хотя можно было бы кодировать комплексы как пары реальных и начать реализовывать некоторые из них в Стэне, это было бы огромной болью. Боюсь, мы предоставляем только симметричный случай, потому что мы не можем гарантировать, что ответ реальный, и мы не поддерживаем его. Все остальное должно быть реализовано с нуля на C++ или в Stan и включено.

Бен Гудрич предложил обходное решение в C++, которое требует перекомпиляции Stan из источника для несимметричных матриц, известных для создания реальных eigendecompositions, но вряд ли это решение на языке, а не то, что мы действительно рекомендуем людям, потому что это понадобится для обновления с каждым обновлением Стэна.

+0

Привет, Боб, вы можете взглянуть на мой вопрос здесь: https: //stackoverflow.com/questions/45988471/stan-results-not-matching – user3022875

+0

Это похоже на тему для этого, и я не знаю, будет ли StackOverflow просто измените его, но я ничего не знаю о переосмыслении пакета. Ричард предлагает поднимать вещи как проблемы своего репо GitHub. –