File:Coordinate descent.svg

Материал из Викисклада, хранилища свободных медиафайлов
Перейти к навигации Перейти к поиску

Исходный файл(SVG-файл, номинально 900 × 900 пкс, размер файла: 56 КБ)

Краткие подписи

Краткие подписи

Добавьте однострочное описание того, что собой представляет этот файл

Краткое описание

[править]
Описание
English: Coordinate descent with cyclic iteration of the coordinates. In each iteration a line search is done to find the step.
Дата
Источник Собственная работа
Автор Nicoguaro
SVG‑разработка
InfoField
 
Исходный код этого SVG-файла корректен.
 
Это plot было создано с помощью Matplotlib
 
The file size of this SVG plot may be irrationally large because its text has been converted to paths inhibiting translations.
Исходный код
InfoField

Python code

from __future__ import division
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import line_search
from matplotlib import rcParams

rcParams['font.family'] = 'serif'
rcParams['font.size'] = 16


def fun(x, y):
    return 5*x**2 - 6*x*y + 5*y**2


def f(x):
    x1 = x[0]
    x2 = x[1]
    return fun(x1, x2)


def g(x):
    x1 = x[0]
    x2 = x[1]
    g1 = 10*x1 - 6*x2
    g2 = -6*x1 + 10*x2
    return [g1, g2]


X, Y = np.mgrid[-1.5:1.5:101j, -1.5:1.5:101j]
Z = fun(X, Y)
levels = np.linspace(0.5, 5, 6)
plt.figure(figsize=(10, 10))
CS = plt.contour(X, Y, Z, levels=levels, colors='k')
plt.clabel(CS)
xk = np.array([-0.5, -1])
pk = np.array([0., 1.])
for k in range(10):
    res = line_search(f, g, xk, pk)
    alpha = res[0]
    xnew = xk + 0.6*alpha*pk
    pk = pk[::-1]
    plt.arrow(xk[0], xk[1], xnew[0] - xk[0], xnew[1] - xk[1],
              fc='r', ec='r',
              length_includes_head=True)
    xk = xnew

plt.axis('image')
plt.xlabel(r'$x$', size=18)
plt.ylabel(r'$y$', size=18)
plt.title(r'$f(x,y) = 5x^2 - 6xy + 5y^2$')
plt.savefig('coordinate descent.svg')
plt.show()

Лицензирование

[править]
Я, владелец авторских прав на это произведение, добровольно публикую его на условиях следующей лицензии:
w:ru:Creative Commons
атрибуция
Этот файл доступен по лицензии Creative Commons Attribution 4.0 International
Вы можете свободно:
  • делиться произведением – копировать, распространять и передавать данное произведение
  • создавать производные – переделывать данное произведение
При соблюдении следующих условий:
  • атрибуция – Вы должны указать авторство, предоставить ссылку на лицензию и указать, внёс ли автор какие-либо изменения. Это можно сделать любым разумным способом, но не создавая впечатление, что лицензиат поддерживает вас или использование вами данного произведения.

История файла

Нажмите на дату/время, чтобы увидеть версию файла от того времени.

Дата/времяМиниатюраРазмерыУчастникПримечание
текущий00:10, 10 января 2016Миниатюра для версии от 00:10, 10 января 2016900 × 900 (56 КБ)Nicoguaro (обсуждение | вклад)Add labels to the contours.
23:19, 9 января 2016Миниатюра для версии от 23:19, 9 января 2016900 × 900 (50 КБ)Nicoguaro (обсуждение | вклад)User created page with UploadWizard

Следующая страница использует этот файл:

Глобальное использование файла

Данный файл используется в следующих вики:

Метаданные