W NumPy, próbuję użyć linalg
do obliczenia odwrotności macierzy na każdym kroku schematu Newtona-Raphsona (rozmiar problemu jest celowo mały, abyśmy może odwrócić analitycznie obliczone macierze Hesjan). Jednakże, gdy jestem już daleko w kierunku zbieżności, Hesjan zbliża się do pojedynczej.Jak wypróbować - z wyjątkiem nielegalnej operacji macierzy ze względu na osobliwość w NumPy
Czy istnieje jakakolwiek metoda w NumPy, która pozwala mi sprawdzić, czy macierz jest uważana za pojedynczą (wyznacznik obliczeniowy nie jest wystarczająco solidny)? Najlepiej byłoby, gdyby był sposób użycia bloku try
except
do przechwycenia błędu liczby pojedynczej tablicy NumPy.
Jak to zrobić? Błąd NumPy podane w terminalu to:
raise LinAlgError, 'Singular matrix'
numpy.linalg.linalg.LinAlgError: Singular matrix
Dzięki. To jeden z tych momentów "d'oh"; Nie zdawałem sobie sprawy, że możemy bezpośrednio użyć błędów NumPy w instrukcji 'except'. – ely
Czy istnieje również sposób na uczynienie tego specyficznego dla "macierzy osobliwej", a nie tylko na dowolnym wystąpieniu LinAlgError? – ely
Cóż, możesz ponownie wznieść wychwycony wyjątek, jeśli to nie jest ta wiadomość. Zobacz ostatnią zmianę w mojej odpowiedzi. Jest to jeden sposób, aby to zrobić, nie jestem pewien, czy istnieje lepszy sposób. – wim