y = f(x) - d * x
    return lambda t: d * t + y


if __name__ == '__main__':
    x0 = l.np.arange(-2, 2.5, 0.25)
    x1 = l.np.arange(-2, 2.5, 0.25)
    X, Y = l.np.meshgrid(x0, x1)

    X = X.flatten()
    Y = Y.flatten()

    grad = numerical_gradient(function_2, l.np.array([X, Y]))

    l.plt.figure()
    l.plt.quiver(X,
                 Y,
                 -grad[0],
                 -grad[1],
                 angles="xy",
                 color="#666666",
                 label="something")  #,headwidth=10,scale=40,color="#444444")
    l.plt.xlim([-2, 2])
    l.plt.ylim([-2, 2])
    l.plt.xlabel('x0')
    l.plt.ylabel('x1')
    l.plt.grid()
    l.plt.legend()
    l.plt.draw()
    l.plt_show_alt(l.plt)
    y = f(x) - d * x
    return lambda t: d * t + y


if __name__ == '__main__':
    x0 = l.np.arange(-2, 2.5, 0.25)
    x1 = l.np.arange(-2, 2.5, 0.25)
    X, Y = l.np.meshgrid(x0, x1)

    X = X.flatten()
    Y = Y.flatten()

    grad = numerical_gradient(function_2, l.np.array([X, Y]))

    l.plt.figure()
    l.plt.quiver(X,
                 Y,
                 -grad[0],
                 -grad[1],
                 angles="xy",
                 color="#666666",
                 label="...")  #,headwidth=10,scale=40,color="#444444")
    l.plt.xlim([-2, 2])
    l.plt.ylim([-2, 2])
    l.plt.xlabel('x0')
    l.plt.ylabel('x1')
    l.plt.grid()
    l.plt.legend()
    l.plt.draw()
    l.plt_show_alt(l.plt, "4.4")
Beispiel #3
0
from mpl_toolkits.mplot3d import Axes3D
import sys, os
from common import lib as l
from common import mnist as m


def function_2(x):
    return x[0]**2 + x[1]**2


x1 = l.np.arange(-3.0, 3.0, 0.1)
x2 = l.np.arange(-3.0, 3.0, 0.1)
X1, X2 = l.np.meshgrid(x1, x2)
y = function_2(l.np.array([X1, X2]))

l.plt.xlabel("x1")
l.plt.xlabel("x2")
l.plt.ylabel("f(x)")

fig = l.plt.figure()
ax = Axes3D(fig)
ax.plot_wireframe(X1, X2, y)

l.plt_show_alt(l.plt, "4.3.3")
    d = numerical_diff(f, x)
    print(d)
    y = f(x) - d*x
    return lambda t: d*t + y

x = l.np.arange(0.0, 20.0, 0.1)
y = function_1(x)

l.plt.xlabel("x")
l.plt.ylabel("f(x)")

tf = tangent_line(function_1, 5)
y2 = tf(x)

tf = tangent_line(function_1, 10)
y3 = tf(x)

l.plt.xlim(0, 20)
l.plt.ylim(0, 6)

l.plt.plot(x, y)
l.plt.plot(x, y2)
l.plt.plot(x, y3)

l.plt.plot([0, 5], [function_1(5), function_1(5)], ':', lw=1)
l.plt.plot([5, 5], [function_1(5), 0], ':', lw=1)

l.plt.plot([0, 10], [function_1(10), function_1(10)], ':', lw=1)
l.plt.plot([10, 10], [function_1(10), 0], ':', lw=1)
l.plt_show_alt(l.plt, "4.3.2")