Например, у меня есть эрмитову матрицы, А и я диагонализирующие это с матрицей B как:создать модуль в питоне диагонализации матрицы
A11= -0.0034
A12= -0.007 -1j*0.0098
A13= -0.0112 - 1j*0.0712
A21= A12.conjugate()
A22= 0.2162
A23= 1.062 - 1j*0.0584
A31= A13.conjugate()
A32= A23.conjugate()
A33= 2.462
A= matrix([[A11,A12,A13],[A21,A22,A23],[A31,A32,A33]])
eigenvalues_of_A, eigenvectors_of_A = numpy.linalg.eig(A);
B = eigenvectors_of_A[:,abs(eigenvalues_of_A).argsort()]
diagonal_matrix= B.I * A * B
Который прямо вперед.
Я хочу создать модуль. Допустим, у меня будет вход 100 различных эрмитовы матрицы и импорта модульв существующем питона сценарии для вычисления 100 различных матриц В (для каждого из различных входов).
EDIT (сделать мой вопрос более общий)
Причина: Причиной создания модуляявляется использование его в более общей цели. Под общим я имею в виду, скажем, в одном скрипте python, у меня разные типы матриц (например, эрмитова матрица, вещественная матрица, общая сложная матрица); теперь диагонализация различных типов матриц различна. поэтому я хочу создать модуль (который содержит различные процедуры диагонализации в зависимости от типа матрицы) и называть его всякий раз, когда мне нужно диагонализировать любую матрицу.
Исповедь: я понятия не имею, как создать модуль.
Честный вопрос: Что такое реализовать? – Greg
мой плохой, я думаю, что соответствующее слово будет «модулем» вместо «реализовать». Я отредактирую свой вопрос/заголовок. – string