Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.64 KB | None | 0 0
  1. # Степенной метод
  2. def calculate(matrix):
  3.     n = matrix.shape[0]  # размер матрицы
  4.  
  5.     # начальный вектор u_0
  6.     u = np.ones([n, 1])
  7.     print("start vector: {}".format(str(u.T)))
  8.  
  9.     # предыдущее и текущее собственное значение
  10.     prev_h, h = 0, 0
  11.  
  12.     # количество итераций
  13.     iterations = 0
  14.  
  15.     while True:
  16.         v = matrix @ u
  17.         prev_h, h = h, (v / u).max()
  18.         u = v / abs(max(v))
  19.         iterations += 1
  20.         if abs(h - prev_h) < 10 ** (-ACCURACY):
  21.             pretty_print(h, u, iterations)
  22.             return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement