示例#1
0
def main():
    g = Graph()

    v1 = Matrix([[3, 0]]).T
    v2 = Matrix([[1, 2]]).T
    g.add_vector(v1, color='tab:green')
    g.add_vector(v2, color='tab:red')

    p1 = v1.copy()
    p2 = orthogonal(p1, v2)
    pprint([p1, p2])
    g.add_vector(p1, color='tab:blue')  # same as v1 (green) so it hides it
    g.add_vector(p2, color='tab:orange')

    g.show()
示例#2
0
def main():
    g = Graph()

    v1 = Matrix([[2, 1]]).T
    v2 = Matrix([[1, 1]]).T
    g.add_vector(v1)
    g.add_vector(v2)

    p1 = v1.copy()
    p2 = orthogonal(p1, v2)
    g.add_vector(p1, color='tab:blue')
    g.add_vector(p2, color='tab:blue')

    n1 = normalize(p1)
    n2 = normalize(p2)
    g.add_vector(n1, color='tab:green')
    g.add_vector(n2, color='tab:green')

    g.show()
示例#3
0
import numpy as np
from util.graph import Graph

u = np.array([2, -1])

g = Graph()
g.add_vector(u)
g.add_vector(-u)
g.add_vector(2 * u)
g.add_vector(3 * u)
g.add_vector(-2 * u)
g.show()
示例#4
0
from sympy import *
from util.graph import Graph

g = Graph()

print('a')
u = Matrix([[1, 1]]).T
v = Matrix([[-1, 1]]).T
pprint(u.T * v)
g.add_vector(u)
g.add_vector(v)

print('b')
u = Matrix([[-2, -3]]).T
v = Matrix([[3, -2]]).T
pprint(u.T * v)
g.add_vector(u, color='tab:blue')
g.add_vector(v, color='tab:blue')

print('c')
u = Matrix([[-4, 5]]).T
v = Matrix([[5, 4]]).T
pprint(u.T * v)
g.add_vector(u, color='tab:green')
g.add_vector(v, color='tab:green')

print('d')
u = Matrix([[2, 7]]).T
v = Matrix([[-7, 2]]).T
pprint(u.T * v)
g.add_vector(u, color='tab:orange')
示例#5
0
import numpy as np
from util.graph import Graph

A = np.array([[2, 2, 0], [0, 3, 0]])
print(A)

g = Graph()

for v in A.T:
    g.add_vector(v)

A *= 2
print(A)

for v in A.T:
    g.add_vector(v, color='tab:blue')

g.show()
示例#6
0
import numpy as np
from util.graph import Graph

u = np.array([7, -2])
v = np.array([-5, 3])

print('a', np.linalg.norm(u + v))
print('b', np.linalg.norm(u - v))

g = Graph()
g.add_vector(u, color='r')
g.add_vector(v, color='g')
g.add_vector(u + v, color='b')
g.add_vector(u - v, color='y')
g.show()
示例#7
0
x, y = symbols('x y')
eq1 = Eq(2 * x - y, 0)
eq2 = Eq(-x + 2 * y, 3)
pprint(eq1)
pprint(eq2)
result = linsolve([eq1, eq2], [x, y])
print('x, y:', pretty(result))

# row "picture"
# See an intersection at [1, 2]
g_row = plot(solve(eq1, y)[0],
             show=False,
             line_color='tab:blue',
             xlim=[-5, 5],
             ylim=[-5, 5])
g_row.append(plot(solve(eq2, y)[0], show=False, line_color='tab:blue')[0])
g_row.show()

# col "picture"
g_col = Graph()
M, b = linear_eq_to_matrix([eq1, eq2], x, y)
# Show the columns vectors in green
u = np.array(M.col(0)).T[0]
v = np.array(M.col(1)).T[0]
g_col.add_vector(u, color='tab:green')
g_col.add_vector(v, color='tab:green')
# Show [0, 3] in orange (2x the second column, added to the first)
w = 2 * v
g_col.add_vector(w, start=u, color='tab:orange')
g_col.show()
import numpy as np
from util.graph import Graph
from sympy import *

u = np.array([-3, 1])
v = np.array([1, -1 / 3])
# Solve Ax=0 where A = (u v)
A = np.array([u, v, [0, 0]]).T
A, _ = Matrix(A).rref()
A = np.array(A, dtype='float')
print(A)

k, c = symbols('k c')
e = k - (1 / 3) * c
print(solveset(e, c))
# FiniteSet(3.0*k)

# Show that any value of 1 results in ku + cv = the 0 vector
k = 1
c = 3.0 * k
print(k * u + c * v)  # the 0 vector

g = Graph()
g.add_vector(u, color='tab:blue')
g.add_vector(v, color='tab:green')
g.show()
示例#9
0
from sympy import *
from util.graph import Graph

g = Graph()

P = Matrix([[0, 0]]).T
Q = Matrix([[2, 0]]).T
R = Matrix([[0, 3]]).T
g.add_vector(P, color='tab:blue')
g.add_vector(Q, color='tab:blue')
g.add_vector(R, color='tab:blue')

A = Matrix([[P, Q, R]])
B = Matrix([[2, 0], [3, 4]])
BA = B * A

g.add_vector(BA.col(0), color='tab:green')
g.add_vector(BA.col(1), color='tab:green')
g.add_vector(BA.col(2), color='tab:green')

print('determinant of B:', B.det())

g.show()
from sympy import *
from util.graph import Graph

u = Matrix([1, 2])
v = Matrix([3, 4])

i = u.T * v
print('(i)', pretty(i))

ii = u.norm() * v.norm()
print('(ii)', ii)

iii = u.norm() + v.norm()
print('(iii)', iii)

iv = (u + v).norm()
print('(iv)', iv)

g = Graph()
g.add_vector(u)
g.add_vector(v)
g.add_vector(u + v, color="tab:blue")
g.show()
import numpy as np
from util.graph import Graph

u = np.array([3, -1])
v = np.array([-2, 3])
u_plus_v = u + v
print(u_plus_v)

g = Graph()
g.add_vector(u)
g.add_vector(v)
g.add_vector(u_plus_v)
g.show()
示例#12
0
from sympy import *
from util.graph import Graph

g = Graph()

x = Matrix([1, 2])
g.add_vector(x)

A = Matrix([[2, 0], [0, 2]])
b = A * x
g.add_vector(b, color='tab:blue')

A = Matrix([[-1, 0], [0, -1]])
b = A * x
g.add_vector(b, color='tab:green')

g.show()
示例#13
0
import numpy as np
from util.graph import Graph

g = Graph()

u = np.array([-1, 1])
g.add_vector(u, 'tab:blue')

v = np.array([3, -1])
g.add_vector(v, 'tab:green')

m = np.array([u, v])
print(m)

left = np.array([1, None])

left[1] = 1
w = np.dot(left, m)
print('a', w)
g.add_vector(w)

left[1] = -1
w = np.dot(left, m)
print('b', w)
g.add_vector(w)

left[1] = 1 / 2
w = np.dot(left, m)
print('c', w)
g.add_vector(w)
from sympy import *
from util.graph import Graph

T = Matrix([[1, -1], [1, 1]])
S = Matrix([[2, 3], [1, -5]])

g = Graph()

v = Matrix([[2, 3]]).T
g.add_vector(v)

result = S * T * v
pprint(result)
g.add_vector(result)

result = T * S * v
pprint(result)
g.add_vector(result)

# 38, shows they are the same
ST = S * T
pprint(ST * v)
TS = T * S
pprint(TS * v)

g.show()
示例#15
0
import numpy as np
from util.graph import Graph

v = np.array([3, 1])

g = Graph()
g.add_vector(0.5 * v)
g.add_vector(2 * v)
g.add_vector(3 * v)
g.add_vector(-v)
g.show()
m, _ = m.rref()
k = m.row(0)[2]
c = m.row(1)[2]
print('k and c, respectively:')
pprint([k, c])

print('ii')
u = Matrix([1, 2]).T  # first column of the original matrix
v = Matrix([-1, 1]).T  # second column of the original matrix
# We want a vector [3 2] in terms of u and v, so we use k and c
v1 = k.subs([(a, 3), (b, 2)]) * u
v2 = c.subs([(a, 3), (b, 2)]) * v

v1 = np.array(v1, dtype=float)[0]
v2 = np.array(v2, dtype=float)[0]
vv = v1 + v2
print('v1', v1)
print('v2', v2)
print('vv', vv)

u = np.array(u, dtype=float).T
v = np.array(v, dtype=float).T

g = Graph()
g.add_vector(v1, color='tab:blue')
g.add_vector(v2, color='tab:green')
g.add_vector(vv, color='tab:red')
g.add_vector(u, color='tab:orange')
g.add_vector(v, color='tab:olive')
g.show()
示例#17
0
import numpy as np
from util.graph import Graph
from math import acos, cos, sin, pi, degrees

print('b')
u = np.array([cos(pi / 4), sin(pi / 4)])
print(u)

print('c')
v = np.array([cos(pi / 4), -sin(pi / 4)])

print('d')
n = u @ v
d = np.linalg.norm(u) * np.linalg.norm(v)
angle_cos = n / d
angle = acos(angle_cos)
print(degrees(angle))

g = Graph()
g.add_vector(u, color='g')
g.add_vector(v, color='b')
g.show()
示例#18
0
import numpy as np
from util.graph import Graph

u = np.array([-3, 2])
v = np.array([-2, -3])

g = Graph()
g.add_vector(u)
g.add_vector(v)
g.show()
import numpy as np
from util.graph import Graph

u = np.array([1, 5])
v = np.array([4, 1])

print('i')
print(np.linalg.norm(u @ v))

print('ii')
print(np.linalg.norm(u) * np.linalg.norm(v))

print('iii')
print(np.linalg.norm(u) + np.linalg.norm(v))

print('iv')
print(np.linalg.norm(u + v))

g = Graph()
g.add_vector(u)
g.add_vector(v)
g.add_vector(u + v, color='tab:blue')
g.add_vector(u, v, color='tab:green')
g.show()
import numpy as np
from util.graph import Graph
from sympy import Matrix

u = np.array([-1, 1])
v = np.array([2, 3])
# Solve Ax=0 where A = (u v)
A = np.array([u, v, [0, 0]]).T
A, _ = Matrix(A).rref()
A = np.array(A)
print(A)
# u and v are linearly independent because scalars k and c = zero

g = Graph()
g.add_vector(u, color='b')
g.add_vector(v, color='g')
g.show()
示例#21
0
import numpy as np
from util.graph import Graph

u = np.array([1, -1])
v = np.array([2, 1])

print('e', np.dot(u, v))
print('f', np.dot(v, u))
print('g', np.dot(u, u))
print('h', np.dot(v, v))

g = Graph()
g.add_vector(u)
g.add_vector(v)
g.add_vector(u + v)
g.add_vector(u - v)
g.show()