Добавил:
ddaren_223
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:коды / 10
.py import numpy as np
def grad_decay(f, x, eps=0.01, lam=1, d=0.1):
g = 1
while np.linalg.norm(g) > eps:
g = grad(f, x)
xn = x - lam * g
if f(x) > f(xn):
x = xn
else:
lam *= d
return x, f(x)
def grad(f, x, d=1e-5):
n = len(x)
e = np.eye(n) * d
g = (f(x-e) - f(x+e)) / (-2*d)
return g
def f(x): return (x[0]-1)**2+(x[1]-1)-x[0]
x = [3,
3]
x, y = grad_decay(f, x)
print(x, y, sep="\n")
def grad_decay(f, x, eps=0.01, lam=1, d=0.1):
g = 1
while np.linalg.norm(g) > eps:
g = grad(f, x)
xn = x - lam * g
if f(x) > f(xn):
x = xn
else:
lam *= d
return x, f(x)
def grad(f, x, d=1e-5):
n = len(x)
e = np.eye(n) * d
g = (f(x-e) - f(x+e)) / (-2*d)
return g
def f(x): return (x[0]-1)**2+(x[1]-1)-x[0]
x = [3,
3]
x, y = grad_decay(f, x)
print(x, y, sep="\n")