Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- from numpy import linalg as LA
- import random
- INF = 1e9 + 7
- eps = 1e-6
- eps2 = 1e-4
- 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]
- A = np.array([[4, 1, 1], [1, 8, -1], [1, -1, 10]])
- b = np.array([1, -2, 3])
- for i in range(1):
- X_start = np.array([1, 1, 1])
- X_prev = X_start
- while True:
- q = A.dot(X_prev) + b
- qt = q.T
- u = -1 * (qt.dot(q)) / (qt.dot(A.dot(q)))
- X_next = X_prev + u * q
- #print(X_next)
- if LA.norm(X_next - X_prev) < eps:
- print(X_next, '\n')
- break
- X_prev = X_next
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement