Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import random
- from scipy import linalg
- n = 4
- A = np.array([[3,2,9,5],
- [3,1,3,11],
- [3,7,4,8],
- [5,2,4,9]])
- x1 = np.zeros(n)
- x2 = np.zeros(n)
- l1 = np.zeros(n)
- l2 = np.zeros(n)
- y = np.zeros(n)
- def otn(y, x):
- result = np.zeros(x.size)
- for i in range(x.size):
- if x[i] != 0:
- result[i] = y[i]/x[i]
- return result
- def usl(y, x):
- eps = 0.00001
- result = False
- for i in range(x.size):
- if abs(y[i]-x[i])<=eps:
- result = True
- return result
- for i in range(n):
- y[i] = 1
- l2[i] = 1
- k = 1
- x2 = y/np.linalg.norm(y)
- while True:
- x1 = x2
- l1 = l2
- y = A.dot(x1)
- x2 = y/np.linalg.norm(y)
- l2 = otn(y, x1)
- k += 1
- if usl(l1,l2):
- break
- print("k =",k)
- s= 0
- for i in range(n):
- s += l2[i]
- L = s / n
- print(L)
- print(linalg.eigvals(A))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement