Ok, donc je fais la méthode power en python.Comment éviter une division apparemment inévitable par zéro
Fondamentalement, l'équation tourne autour de la multiplication d'une matrice par un vecteur A (y) comme suit:
for i in range(0, 100):
y = mult(matrix,y)
y = scalarMult(y, 1.0/y[0][0])
Ensuite, on multiplie le vecteur y par 1/(le premier élément en y). Maintenant, si la matrice est clairsemée ou a un zéro juste au bon endroit, vous obtiendrez un zéro pour le premier élément de a. Aucune de mes compétences googling n'a donné lieu à une modification de la méthode de puissance pour éviter cela.
Pour ceux qui sont intéressés, j'essaie de résoudre les valeurs propres d'une matrice; et mon code fonctionne tant qu'il n'y a pas trop de zéros. Au lieu de diviser par le premier élément du vecteur, vous pouvez diviser par l'une de ses normes au lieu de diviser par
Si vous pouvez utiliser une bibliothèque tierce, essayez des solutions existantes telles que [numpy.linalg.eig] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.eig.html# numpy.linalg.eig) à la place. – kennytm
Sur une note: Connaissez-vous des paquets comme Numpy et Scipy? Dans votre cas, numpy.linalg.eig pourrait vous intéresser. –