Вычислите величину (длину) вектора:
Https://youtu.be/6GoMXuE1FOw
# import Numpy
import numpy as np
v = np.array([1, 3, 4, 2])
# Calculate the length manually
norm = 0
for i in v:
norm += i ** 2
norm **= 0.5
# Calculate the length using a numpy method
numpy = np.linalg.norm(v)
print(norm) # print long hand
print(numpy) # print numpy
Вычислите скалярное произведение двух векторов:
Https://youtu.be/ui-Pc7-wFko
# import Numpy
import numpy as np
u = np.array([-5, 3, 2, 8])
v = np.array([1, 2, -1, 0])
# Calculate the dot product manually
def dot_product(u, v):
dot_product = 0
for i, j in zip(u, v):
dot_product += i * j
return dot_product
dot_product = dot_product(u, v)
# Calculate the dot product using a numpy method
dot_product = np.dot(u, v)
dot_product # print the result
Вычислите скалярную проекцию двух векторов:
Https://youtu.be/WDdR5s0C4cY
# import Numpy
import numpy as np
u = np.array([10, 5, -6])
v = np.array([3, -4, 0])
# Calculate the scalar projection
def scalar_projection(u, v):
return np.dot(u, v) / np.linalg.norm(v)
scalar_projection(u, v) # print the result
Рассчитайте проекцию вектора двух векторов:
Https://youtu.be/gXn2wmZkpLI
u = np.array([10, 5, -6])
v = np.array([3, -4, 0])
# Calculate the vector projection manually
def projection_product(u, v):
# scalar projection of u onto v
projection = scalar_projection(u, v)
# unit vector in the direction of v
unit_vec_v = v / np.linalg.norm(v)
# return the projection product
return projection * unit_vec_v
projection_product(u, v) # print the result
Измените базис, когда новые базисные векторы ортогональны:
Https://youtu.be/7BFx8pt2aTQ
v = np.array([-4, -3, 8])
# new basis vectors
b_1 = np.array([1, 2, 3])
b_2 = np.array([-2, 1, 0])
b_3 = np.array([-3, -6, 5])
def change_basis(v, *args):
v_in_b = np.zeros(len(args))
for i, arg in enumerate(args):
v_in_b[i] = scalar_projection(v, arg) / np.linalg.norm(arg)
return v_in_b
change_basis(v, b_1, b_2, b_3) # print the result