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()
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()
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()
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()