Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.70 KB | None | 0 0
  1. import numpy as np
  2. from numpy import linalg as LA
  3. import random
  4.  
  5. INF = 1e9 + 7
  6. eps = 1e-6
  7. eps2 = 1e-4
  8.  
  9.  
  10. func = lambda x: 2 * x[0] ** 2 + (3 + 0.1*10) * x[1]**2 + (4 * 0.1 * 10) * x[2]**2 + x[0] * x[1] - x[1]*x[2] + x[0] * x[2] + x[0] - 2 * x[1] + 3 * x[2]
  11. A = np.array([[4, 1, 1], [1, 8, -1], [1, -1, 10]])
  12. b = np.array([1, -2, 3])
  13.  
  14.  
  15. for i in range(1):
  16.     X_start = np.array([1, 1, 1])
  17.     X_prev = X_start
  18.     while True:
  19.         q = A.dot(X_prev) + b
  20.         qt = q.T
  21.         u = -1 * (qt.dot(q)) / (qt.dot(A.dot(q)))
  22.         X_next = X_prev + u * q
  23.         #print(X_next)
  24.         if LA.norm(X_next - X_prev) < eps:
  25.             print(X_next, '\n')
  26.             break
  27.         X_prev = X_next
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement