一.向量
向量要求具有两个条件:
- 长度(大小)
- 方向
二维:
三维:
计算机中,向量可看做列表:
图中第一个列表有两行 我们说它是二维向量,第二个列表有四行,我们说他是四维向量
向量的运算
向量加法:@向量加法
将对应的行相加
(将向量w的起点平移到向量V的终点)
(可以理解为从原点先向右走一步,向上两步,再向右走三步,左后向下走一步)
//
@向量数乘
向量的数乘:
相当于将向量缩放多少倍
1/3×v
乘以负数,即向相反方向缩放多少倍
将一个向量缩放多少倍,这个倍数就称作标量
数学中,二维向量表示在x轴和y轴组成的二维平面中过原点的向量:
第一行表示x轴的数值
第二行表示y轴的数值
三维:
@张成空间
二.张成空间:
@1.基向量
- 基向量
在x,y轴正方向上,单位为1 的向量称作该2二维空间的基向量
因此任何一个向量都可以表示基向量缩放后的和:
固定一个向量,另一个向量自由一点,两个向量的相加锁产生的向量重点落在一条直线上:
如果让两个向量同时自由变换,他们相加产生的向量有三种结果:
1.将会组成整个平面:
二,当两个向量共线时锁产生的向量被限制在这条直线上:
三,当两个向量都为0时,组成的向量也为0
因此,张成空间描述为:
给定向量v和向量w的所有线性组合构成的向量的合集成为向量v和向量的张成空间
三维中两个向量张成的空间即是过原点的一个平面:
三维中三个向量的线性组合:
三维中三个向量的张成空间有两种情况:
1.第三个向量在前两个向量张成空间组成的平面中:
2.1.第三个向量不在前两个向量张成空间组成的平面中,它将前两个向量张成空间的平面沿这第三个向量来回移动,从而组成了整个三维空间:
@1.线性相关
线性相关:
1.有多个向量,移除其中一个而不减少张成空间,称作这些向量线性相关
2.有某几个向量,其中一个向量可以表示为其他向量的线性组合(图中公式加法表示的缩放并相加)
@2.线性无关
线性无关
所有向量都给张成空间增加了新的维度,称为线性无关
@矩阵
@1.线性变换
线性变换:
变换,可以看做是一种函数,他接收输入的向量,变换成另一种向量输出
变换的意义在于运动
即把输入向量移动到输出向量的位置
线性变换必须保证两个条件:
1.直线依旧是直线,且间距相等(平行且等距)
2.原点不动
所以,线性变换后的以看成是变换后的i-hat和j-hat的线性组合
知道了变换后的i帽和j帽,要求任意向量[x y],只需求他们的线性组合即可
公式:
线性变换公式可以总结成:
就是矩阵向量的乘法:
如
1.将一个向量逆时针旋转90度,变换后的i帽和j帽:
2.剪切变换(x轴不动,y轴左右45°变换):
3.变换后i帽在j帽的左边,表示变换将空间发生了翻转:
4.变换后矩阵的列线性相关,则变换将空间压缩到了一条直线:
总之,线性变换是操纵空间变化的一种手段,他保持网格线平行且等距分布,且原点不动
矩阵的乘法,可以看成是经历了两次的线性变换
也可以理解成函数
快速理解:
1.M1的i-hat经过M2的变换后如下:
1.M1的j-hat经过m2的变换后如下:
线性组合后的向量就是变换后的结果
三维矩阵:
如图,三维中一个向量的变换页可以看成是与变换后的i-hat,j-hat,k-hat缩放后相加
求得粉色箭头的坐标,既是变换后的向量坐标
计算方法:
两个三维矩阵相乘,同二维一样,表示两个变换的过程:
用numpy试了下
v=[[0,-2,2],[5,1,5],[1,4,-1]]
w=[[0,1,2],[3,4,5],[6,7,8]]
vd=numpy.array(v)
wd=numpy.array(w)
print vd
print wd
print vd*wd
输出好像不对,只是将对应位置的数乘起来,记录下后续研究
[[ 0 -2 2]
[ 5 1 5]
[ 1 4 -1]]
[[0 1 2]
[3 4 5]
[6 7 8]]
[[ 0 -2 4]
[15 4 25]
[ 6 28 -8]]