Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

коды / 10

.py
Скачиваний:
12
Добавлен:
20.06.2023
Размер:
505 б
Скачать
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")
Соседние файлы в папке коды