# for QR codes use inline
# %matplotlib inline
# qr_setting = 'url'
# qrviz_setting = 'show'
#
# for lecture use notebook
%matplotlib inline
qr_setting = None
#
%config InlineBackend.figure_format='retina'
# import libraries
import numpy as np
import matplotlib as mp
import pandas as pd
import matplotlib.pyplot as plt
import laUtilities as ut
import slideUtilities as sl
import demoUtilities as dm
import pandas as pd
from importlib import reload
from datetime import datetime
from IPython.display import Image
from IPython.display import display_html
from IPython.display import display
from IPython.display import Math
from IPython.display import Latex
from IPython.display import HTML;
ax = ut.plotSetup3d(xmin = -10, xmax = 10, ymin = -10, ymax = 10, zmin = -10, zmax = 10)
a1 = [1.0, -4.0, -3.0]
a2 = [3.0, 2.0, -2.0]
a3 = [4.0, -6.0, -7.0]
ax.text(a1[0], a1[1], a1[2], r'$\bf a_1$', size=20)
ax.text(a2[0], a2[1], a2[2], r'$\bf a_2$', size=20)
ax.text(a3[0], a3[1], a3[2], r'$\bf a_3$', size=20)
ax.text(0.1, 0.1, -3, r'$\bf 0$', size=12)
ut.plotSpan3d(ax, a1, a2,'Green')
ut.plotPoint3d(ax, a1[0], a1[1], a1[2], 'r')
ut.plotPoint3d(ax, a2[0], a2[1], a2[2], 'r')
ut.plotPoint3d(ax, a3[0], a3[1], a3[2],'r')
ut.plotPoint3d(ax, 0, 0, 0, 'b')
ax.set_title('Span of the columns of A');
ax = ut.plotSetup3d(xmin = -10, xmax = 10, ymin = -10, ymax = 10, zmin = -10, zmax = 10)
a1 = [1.0, -4.0, -3.0]
a2 = [3.0, 2.0, -2.0]
a3 = [4.0, -6.0, -7.0]
ax.text(a1[0]+1, a1[1]+1, a1[2]+1, r'$\bf x$', size=20)
ut.plotPoint3d(ax, a1[0], a1[1], a1[2],'r')
plt.savefig('images/Fig07-1-a.png')
ax = ut.plotSetup(xmin = -10, xmax = 10, ymin = -10, ymax = 10)
ut.centerAxes(ax)
a1 = [-5.0, 2.0]
ax.text(a1[0]+.5, a1[1]+.5, r'$\bf b$', size=20)
ut.plotPoint(ax, a1[0], a1[1], 'r')
plt.savefig('images/Fig07-1-b.png')
a = list(range(21))
plt.hlines(1,0,20) # Draw a horizontal line
plt.xlim(0,21)
plt.ylim(0.5,1.5)
y = np.ones(np.shape(a)) # Make all y values the same
plt.plot(a, y, '|', ms = 10) # Plot a line at each location specified in a
plt.plot(14.5, 1, 'ro', ms = 8)
plt.text(14, .9, r'$\bf x$', size = 20)
plt.axis('off')
plt.show()
plt.savefig('images/Fig07-2-a.png')
<Figure size 432x288 with 0 Axes>
ax = ut.plotSetup3d(xmin = -10, xmax = 10, ymin = -10, ymax = 10, zmin = -10, zmax = 10)
a1 = [1.0, -4.0, -3.0]
a2 = [3.0, 2.0, -2.0]
a3 = [4.0, -6.0, -7.0]
ax.text(a2[0]+1, a2[1]+1, a2[2]+1, r'$\bf b$', size=20)
ut.plotPoint3d(ax, a2[0], a2[1], a2[2],'r')
plt.savefig('images/Fig07-2-b.png')
ax = ut.plotSetup(xmin = -10, xmax = 10, ymin = -10, ymax = 10)
ut.centerAxes(ax)
a0 = [-6, 6]
a1 = [5.0, 2.0]
ax.text(a1[0]+.5, a1[1]+.5, r'$\bf b$', size=20)
ut.plotPoint(ax, a1[0], a1[1], 'r')
ax.text(a0[0]+.5, a0[1]+.5, r'$\bf x$', size=20)
ut.plotPoint(ax, a0[0], a0[1], 'r')
plt.savefig('images/Fig07-3-a.png')
ax = ut.plotSetup(xmin = -10, xmax = 10, ymin = -10, ymax = 10)
ut.centerAxes(ax)
a1 = [2.0, 8.0]
ax.text(a1[0]+.5, a1[1]+.5, r'$\bf x$', size=20)
ut.plotPoint(ax, a1[0], a1[1], 'r')
plt.savefig('images/Fig07-4-a.png')
ax = ut.plotSetup3d(xmin = -10, xmax = 10, ymin = -10, ymax = 10, zmin = -10, zmax = 10)
a1 = [1.0, -4.0, -3.0]
a2 = [3.0, 2.0, -2.0]
a3 = [4.0, -6.0, -7.0]
ax.text(a1[0], a1[1], a1[2], r'$\bf T(x)$', size=20)
ut.plotSpan3d(ax, a1, a2,'Green')
ut.plotPoint3d(ax, a1[0], a1[1], a1[2], 'r')
plt.savefig('images/Fig07-4-b.png')
ax = ut.plotSetup(xmin = -10, xmax = 10, ymin = -10, ymax = 10)
ut.centerAxes(ax)
a0 = [-6, 6]
a1 = [5.0, 2.0]
ax.text(a1[0]+.5, a1[1]+.5, r'$\bf T(x)$', size=20)
ut.plotPoint(ax, a1[0], a1[1], 'r')
ax.text(a0[0]+.5, a0[1]+.5, r'$\bf x$', size=20)
ut.plotPoint(ax, a0[0], a0[1], 'r')
plt.savefig('images/Fig08-3-a.png')
ax = ut.plotSetup(xmin = -10, xmax = 10, ymin = -10, ymax = 10)
ut.centerAxes(ax)
a0 = [-6, 6]
a1 = [-5.0, 2.0]
ax.text(a1[0]+.5, a1[1]+.5, r'$A\bf x$', size=20)
ut.plotPoint(ax, a1[0], a1[1], 'r')
plt.savefig('images/Fig10-1-b.png')
ax = ut.plotSetup(xmin = -5, xmax = 5, ymin = -5, ymax = 5)
ut.centerAxes(ax)
x = [np.sqrt(2), 3]
length = np.linalg.norm(x)
ax.text(x[0]/2+.5, x[1]/2, r'$\Vert{\bf x}\Vert = \sqrt{11}$', size=20)
ut.plotVec(ax, x, 'r')
plt.plot([0, x[0]], [0, x[1]], 'r-', lw=2)
plt.savefig('images/Fig21-1-a.png')
ax = ut.plotSetup3d(xmin = -1, xmax = 4, ymin = -2, ymax = 4, zmin = -3, zmax = 3)
prex = np.array([np.sqrt(2), 3])
U = np.array([[1/np.sqrt(2), 2/3],
[1/np.sqrt(2), -2/3],
[0, 1/3]])
x = U @ x
ax.text(x[0]/2, x[1]/2, x[2]/2+.3, r'$\Vert{U{\bf x}}\Vert= \sqrt{11}$', size=16)
ut.plotPoint3d(ax, x[0], x[1], x[2],'r')
plt.plot([0, x[0]], [0, x[1]], 'r-', zs = [0, x[2]], lw=2)
ut.plotPoint3d(ax, 0, 0, 0,'k')
ax.text(0-.4, 0-.4, 0, r'$\bf 0$', size = 16)
plt.savefig('images/Fig21-1-b.png')
ax = ut.plotSetup(xmin = -5, xmax = 5, ymin = -5, ymax = 5)
ut.centerAxes(ax)
x = np.array([np.sqrt(2), 3])
y = [3, -np.sqrt(2)]
ut.plotVec(ax, x, 'r')
plt.plot([0, x[0]], [0, x[1]], 'r-', lw=2)
ax.set_aspect('equal')
ut.plotVec(ax, y, 'b')
plt.plot([0, y[0]], [0, y[1]], 'b-', lw=2)
perpline1, perpline2 = ut.perp_sym(np.array([0, 0]), x, y, 0.75)
plt.plot(perpline1[0], perpline1[1], 'k', lw = 1)
plt.plot(perpline2[0], perpline2[1], 'k', lw = 1)
plt.savefig('images/Fig21-2-a.png')
ax = ut.plotSetup3d(xmin = -1, xmax = 4, ymin = -2, ymax = 4, zmin = -3, zmax = 3)
x = np.array([np.sqrt(2), 3])
y = [3, -np.sqrt(2)]
U = np.array([[1/np.sqrt(2), 2/3],
[1/np.sqrt(2), -2/3],
[0, 1/3]])
Ux = U @ x
Uy = U @ y
ut.plotPoint3d(ax, Ux[0], Ux[1], Ux[2],'r')
plt.plot([0, Ux[0]], [0, Ux[1]], 'r-', zs = [0, Ux[2]], lw=2)
ut.plotPoint3d(ax, Uy[0], Uy[1], Uy[2],'b')
plt.plot([0, Uy[0]], [0, Uy[1]], 'b-', zs = [0, Uy[2]], lw=2)
ut.plotPoint3d(ax, 0, 0, 0,'k')
ax.text(0-.4, 0-.4, 0, r'$\bf 0$', size = 16)
ax.view_init(azim=300, elev = 70)
perpline1, perpline2 = ut.perp_sym(np.array([0,0,0]), Ux, Uy, 1)
ax.plot(perpline1[0], perpline1[1], '-', zs = perpline1[2], color = 'k')
ax.plot(perpline2[0], perpline2[1], '-', zs = perpline2[2], color = 'k')
plt.savefig('images/Fig21-2-b.png')