Итак, я делаю метод мощности в python.Как избежать кажущегося неизбежного деления на ноль
В принципе, уравнение вращается вокруг умножения матрицы А на вектор (у), как это:
for i in range(0, 100):
y = mult(matrix,y)
y = scalarMult(y, 1.0/y[0][0])
Затем нужно умножить вектор у на 1/(первый элемент в г). Теперь, если матрица разрежена или имеет нуль в нужном месте, вы получите нуль для первого элемента в a. Ни одно из моих навыков работы с поисковыми системами не привело к модификации метода мощности, чтобы избежать этого.
Для заинтересованных, я пытаюсь решить для собственных значений матрицы; и мой код работает до тех пор, пока не осталось слишком много нулей.
Если вы можете использовать стороннюю библиотеку, попробуйте существующие решения, такие как [numpy.linalg.eig] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.eig.html# numpy.linalg.eig). – kennytm
На стороне: Вы знаете о пакетах, таких как numpy и scipy? В вашем случае может представлять интерес numpy.linalg.eig. –