У меня есть матрица с возможными нулевыми собственными значениями. У меня есть операция, где я беру журнал этой матрицы, применяю некоторые функции и затем снова беру экспоненту. В идеале я хотел бы, чтобы 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, которое имеет все единицы и один ноль на диагонали. Как я могу это исправить?