向量的缩放

基本概念

向量的缩放,有的时候也称之为 向量的数乘.

就是用 一个数字去乘以一个向量

数乘的结果还是一个向量

代数表示

例如我们表示一个 向量的缩放,我们可以:

3 \cdot \vec {a}

Note

以上3是一个数字,代表向量需要缩放的倍数。

\vec {a}是一个向量,当然向量有大小和方向。

几何意义

例如以下是\vec {a}向量:

那么3 \cdot \vec {a} 为:

计算结果为:

特点是:

  • 向量的长度按照一定比例缩放

  • 方向和原来方向平行(同向或方向)

坐标计算

向量\vec {a}如下:

\vec {a} = (3, 4)

现在希望计算2 \cdot \vec {a} 。

我们计算过程如下:

2 \cdot \vec {a} = 2 \cdot (3, 4)
2 \cdot \vec {a} = (2 \cdot 3, 2 \cdot 4)
2 \cdot \vec {a} = (6, 8)

公理总结2D

已知一个向量\vec {v},它的坐标表示为 (x, y) .现在需要将它缩放λ倍.

计算缩放后的坐标结果:

λ \cdot \vec {v} = (λ \cdot x, λ \cdot y)

公理总结3D

已知一个向量\vec {v},它的坐标表示为 (x, y, z) .现在需要将它缩放λ倍.

计算缩放后的坐标结果:

λ \cdot \vec {v} = (λ \cdot x, λ \cdot y, λ \cdot z)

单位向量

单位向量表示

  • x轴的单位向量表示(1, 0, 0)
  • y轴的单位向量表示(0, 1, 0)
  • z轴的单位向量表示(0, 0, 1)

缩放的意义

例如,向量\vec {a}如下:

\vec {a} = (3, 4)

由向量的加法我们可以知道,任何一个向量都可以拆分成多个向量的和。

那么在这里我们将\vec{a}拆分为两个向量的和:

\vec {a} = \vec {b} + \vec {c}

向量是有方向有大小的,此时,我赋予\vec{b}\vec{c}特殊的方向,他们的值自然就是 固定的。

\vec {b} = (3, 0)
\vec {c} = (0,4)

正好这两个向量是垂直的,一个是沿着x轴,一个沿着y轴。

我们按照缩放的原则,将\vec {b}\vec {c}进行缩放:

\vec {b} = 3 \times (1, 0)
\vec {c} = 4 \times (0, 1)

其中,(1,0)可以表示为x轴方向的单位向量\vec {i}

其中,(0,1)可以表示为y轴方向的单位向量\vec {j}

那么:

\vec {b} = 3 \cdot \vec {i}
\vec {c} = 4 \cdot \vec {j}

则:

\vec {a} = 3 \cdot \vec {i} + 4 \cdot \vec {j}

向量a的值我(3, 4),我们最终用上面推导来描述向量a有什么好处呢?

\vec{a}的值(3,4)是一个向量的描述,而 3 \cdot \vec {i}将向量拆成了数和单位向量,在后面运算过程中,都会是一些数的运算,而不是向量的整体运算。还有就是,将一个向量差分为垂直的两个向量,在以后运算过程中,单位向量都会抵消,最终变为数的运算,简化了运算逻辑。

代码描述缩放

二维

import numpy as np
from math import pow, sqrt

a = np.array([3, 6])

# 单位向量
# 2d
# x
x = np.array([1, 0])
# y
y = np.array([0, 1])

a = 3 * x + 6 * y

Note

# 向量 ->加法拆解为 2个向量的和, 拆出的向量是两两垂直
b = np.array([3, 0])
c = np.array([0, 6])
a = b + c
# 多个向量-> 拆解为 数* 单位向量
b = 3 * np.array([1, 0])
c = 6 * np.array([0, 1])

三维

import numpy as np
from math import pow, sqrt

# 3d
# x
x = np.array([1, 0, 0])
# y
y = np.array([0, 1, 0])
# z
z = np.array([0, 0, 1])

a = np.array([3, 6, 4])
a = 3 * x + 6 * y + 4 * z