Trong NumPy, tôi đang cố gắng sử dụng linalg
để tính toán nghịch đảo ma trận ở mỗi bước của một chương trình Newton-Raphson (kích thước vấn đề là nhỏ cố ý để chúng tôi có thể đảo ngược ma trận Hessian được tính toán phân tích). Tuy nhiên, sau khi tôi tiến xa về phía sự hội tụ, Hessian trở nên gần kỳ dị.Làm thế nào để thử, ngoại trừ một hoạt động ma trận bất hợp pháp do số ít trong NumPy
Có phương pháp nào trong NumPy cho phép tôi kiểm tra xem liệu ma trận có được coi là số ít hay không (yếu tố tính toán không đủ mạnh)? Lý tưởng nhất, nó sẽ là tốt đẹp nếu có một cách để sử dụng một khối try
except
để bắt lỗi mảng đơn số của NumPy.
Tôi làm như thế nào? Các lỗi NumPy trao tại nhà ga là:
raise LinAlgError, 'Singular matrix'
numpy.linalg.linalg.LinAlgError: Singular matrix
Cảm ơn. Đó là một trong những khoảnh khắc "dăm" đầu tát; Tôi đã không nhận ra chúng tôi có thể trực tiếp sử dụng các lỗi NumPy trong một tuyên bố 'trừ'. – ely
Ngoài ra, có cách nào để làm điều này cụ thể cho 'ma trận Singular' và không chỉ bất kỳ trường hợp của LinAlgError? – ely
Vâng, bạn có thể tăng lại ngoại lệ bị bắt nếu đó không phải là thông báo đó .. xem chỉnh sửa mới nhất cho câu trả lời của tôi. Đây là một cách để làm điều đó, tôi không chắc chắn nếu có một cách tốt hơn. – wim