MATLAB expm и logm с возможными значениями 0 / Inf - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть матрица с возможными нулевыми собственными значениями. У меня есть операция, где я беру журнал этой матрицы, применяю некоторые функции и затем снова беру экспоненту. В идеале я хотел бы, чтобы MATLAB узнал, что если я получу собственное значение -Inf, когда беру журнал, то, возведя его в степень, он снова получит 0. Тем не менее, это не работает.

Например, следующий код

rho = eye(4);
rho(4,4) = 0; %This gives the matrix Diag( 1, 1, 1, 0)
A = logm(rho); %This gives the matrix Diag (0, 0, 0, -Inf)
B = expm(A); %This gives a matrix of all NaN

приводит к матрице из NaN, но я хочу, чтобы в итоге получилось исходное значение rho, которое имеет все единицы и один ноль на диагонали. Как я могу это исправить?

...