import math if __name__ == "__main__": points = [[0, 0], [0, 5], [3, 5], [3, 4], [1, 4], [1, 3], [2, 3], [2, 2], [1, 2], [1, 0]] x = [point[0] for point in points] y = [point[1] for point in points] plt.figure(figsize=(5, 5)) plt.xlim(-10, 10) plt.ylim(-10, 10) plt.plot(x, y) # plt.show() P = Matrix(points) # T = Matrix([[2, 0], [0, 1.5]]) # T = Matrix([[1, 0], [0, -1]]) # T = Matrix([[-1, 0], [0, 1]]) # T = Matrix([[-1, 0], [0, -1]]) # T = Matrix([[1, 0.5], [0, 1]]) # T = Matrix([[1, 0], [0.5, 1]]) # theta = math.pi / 3 # T = Matrix([[math.cos(theta), math.sin(theta)], [-math.sin(theta), math.cos(theta)]]) # 逆时针旋转90度 # theta = math.pi / -2 # T = Matrix([[math.cos(theta), math.sin(theta)], [-math.sin(theta), math.cos(theta)]])
import math if __name__ == "__main__": points = [[0, 0], [0, 5], [3, 5], [3, 4], [1, 4], [1, 3], [2, 3], [2, 2], [1, 2], [1, 0]] x = [point[0] for point in points] y = [point[1] for point in points] plt.figure(figsize=(5, 5)) plt.xlim(-10, 10) plt.ylim(-10, 10) plt.plot(x, y) # plt.show() P = Matrix(points) # T = Matrix([[2, 0], [0, 1.5]]) # T = Matrix([[1, 0], [0, -1]]) # T = Matrix([[-1, 0], [0, 1]]) # T = Matrix([[-1, 0], [0, -1]]) # T = Matrix([[1, 0.5], [0, 1]]) # T = Matrix([[1, 0], [0.5, 1]]) theta = math.pi / 3 T = Matrix([[math.cos(theta), math.sin(theta)], [-math.sin(theta), math.cos(theta)]]) P2 = T.dot(P.T()) plt.plot([P2.col_vector(i)[0] for i in range(P2.col_num())], [P2.col_vector(i)[1] for i in range(P2.col_num())])
from LA.Matrix import Matrix if __name__ == "__main__": matrix = Matrix([[1, 2], [3, 4]]) print(matrix) print("matrix.shape = {}".format(matrix.shape())) print("matrix.size = {}".format(matrix.size())) print("len(matrix) = {}".format(len(matrix))) print("matrix[0][0] = {}".format(matrix[0, 0]))
from LA.Matrix import Matrix if __name__ == "__main__": matrix = Matrix([[1, 2], [3, 4]]) print(matrix) print("matrix.shape = {}".format(matrix.shape())) print("matrix.size = {}".format(matrix.size())) print("len(matrix) = {}".format(len(matrix))) print("matrix[0][0] = {}".format(matrix[0, 0])) matrix2 = Matrix([[5, 6], [7, 8]]) print(matrix2) print("add: {}".format(matrix + matrix2)) print("subtract: {}".format(matrix - matrix2)) print("scalar-mul: {}".format(2 * matrix)) print("scalar-mul: {}".format(matrix * 2)) print("zero_2_3: {}".format(Matrix.zero(2, 3)))
from LA.Matrix import Matrix from LA.Vector import Vector from LA.LinearSystem import LinearSystem from LA.LinearSystem import inv if __name__ == "__main__": A = Matrix([[1, 2, 4], [3, 7, 2], [2, 3, 3]]) b = Vector([7, -11, 1]) ls = LinearSystem(A, b) ls.gauss_jordan_elimination() ls.fancy_print() print() # [-1, -2, 3] A2 = Matrix([[1, -3, 5], [2, -1, -3], [3, 1, 4]]) b2 = Vector([-9, 19, -13]) ls2 = LinearSystem(A2, b2) ls2.gauss_jordan_elimination() ls2.fancy_print() print() # [2, -3, -4] A3 = Matrix([[1, 2, -2], [2, -3, 1], [3, -1, 3]]) b3 = Vector([6, -10, -16]) ls3 = LinearSystem(A3, b3) ls3.gauss_jordan_elimination() ls3.fancy_print() print() # [-2, 1, -3]
from LA.Vector import Vector from LA.Matrix import Matrix if __name__ == "__main__": matrix = Matrix([[1, 2], [3, 4]]) print(matrix) print("matrix.shape = {}".format(matrix.shape())) print("matrix.size = {}".format(matrix.size())) print("len(matrix) = {}".format(len(matrix))) print("matrix[0][0] = {}".format(matrix[0, 0])) matrix2 = Matrix([[5, 6], [7, 8]]) print(matrix2) print("add: {}".format(matrix + matrix2)) print("subtract: {}".format(matrix - matrix2)) print("scalar-mul: {}".format(2 * matrix)) print("scalar-mul: {}".format(matrix * 2)) print("zero_2_3: {}".format(Matrix.zero(2, 3))) T = Matrix([[1.5, 0], [0, 2]]) p = Vector([5, 3]) print("T.dot(p) = {}".format(T.dot(p))) P = Matrix([[0, 4, 5], [0, 0, 3]]) print("T.dot(P) = {}".format(T.dot(P))) print("A.dot(B) = {}".format(matrix.dot(matrix2))) print("B.dot(A) = {}".format(matrix2.dot(matrix))) print("P.T = {}".format(P.T()))
from LA.Matrix import Matrix from LA.Vector import Vector from LA.LinearSystem import LinearSystem if __name__ == "__main__": A = Matrix([[1, 2, 4], [3, 7, 2], [2, 3, 3]]) b = Vector([7, -11, 1]) ls = LinearSystem(A, b) ls.gauss_jordan_elimination() ls.fancy_print() print() A2 = Matrix([[1, -3, 5], [2, -1, -3], [3, 1, 4]]) b2 = Vector([-9, 19, -13]) ls2 = LinearSystem(A2, b2) ls2.gauss_jordan_elimination() ls2.fancy_print() print() A3 = Matrix([[1, 2, -2], [2, -3, 1], [3, -1, 3]]) b3 = Vector([6, -10, -16]) ls3 = LinearSystem(A3, b3) ls3.gauss_jordan_elimination() ls3.fancy_print() print() A4 = Matrix([[3, 1, -2], [5, -3, 10], [7, 4, 16]]) b4 = Vector([4, 32, 13]) ls4 = LinearSystem(A4, b4)
from LA.Matrix import Matrix from LA.GramSchmidtProcess import qr if __name__ == "__main__": A1 = Matrix([[1, 1, 2], [1, 1, 0], [1, 0, 0]]) Q1, R1 = qr(A1) print(Q1) print(R1) print(Q1.dot(R1)) print() A2 = Matrix([[2, -1, -1], [2, 0, 2], [2, -1, 3]]) Q2, R2 = qr(A2) print(Q2) print(R2) print(Q2.dot(R2))
from LA.Matrix import Matrix from LA.Vector import Vector if __name__ == "__main__": matrix = Matrix([[1, 2], [3, 4]]) matrix2 = Matrix([[5, 6], [7, 8]]) print(matrix) print("matrix.shape = {}".format(matrix.shape())) print("matrix.row_num = {}".format(matrix.row_num())) print("matrix.col_num = {}".format(matrix.col_num())) print("matrix.size = {}".format(matrix.size())) print("matrix.length = {}".format(len(matrix))) print("matrix[0][0] = {}".format(matrix[0, 0])) print("matrix.row_vector = {}".format(matrix.row_vector(0))) print("matrix.col_vector = {}".format(matrix.col_vector(0))) print("add: {}".format(matrix + matrix2)) print("sub: {}".format(matrix - matrix2)) print("matrix * 3 = {}".format(matrix * 3)) print("3 * matrix = {}".format(matrix * 3)) print("3 * matrix = {}".format(matrix * 3)) print("zero_2_3 = {}".format(Matrix.zero(2, 3))) print("matrix.dot((1, 2)) = {}".format(matrix.dot(Vector([1, 2])))) print("matrix1.dot(matrix2) = {}".format(matrix.dot(matrix2))) P = Matrix([[1, 2, 3], [4, 5, 6]]) print("P.T() = {}".format(P.T()))
from LA.Matrix import Matrix from LA.LU import lu if __name__ == "__main__": A1 = Matrix([[1, 2, 3], [4, 5, 6], [3, -3, 5]]) L1, U1 = lu(A1) print(L1) print(U1) print(L1.dot(U1)) print() A2 = Matrix([[1, 4, 5, 3], [5, 22, 27, 11], [6, 19, 27, 31], [5, 28, 35, -8]]) L2, U2 = lu(A2) print(L2) print(U2) print(L2.dot(U2)) print() A3 = Matrix([[1, 2, 3], [3, 7, 14], [4, 13, 38]]) L3, U3 = lu(A3) print(L3) print(U3) print(L3.dot(U3)) print()