Math is fun对向量(vector)及其运算讲解的非常形象易懂 ,轻松的扫完这篇文章及其相关链接,对于向量也就了然于心啦。
一、向量
1,向量的定义和性质
1)幅度(模)- magnitutide
2)方向(方向角)- direction
3)方向角与方向余弦 - 向量与坐标轴的夹角称为方向角
(cosα,cosβ,cosγ)=(x|r→|,y|r→|,z|r→|)=1|r→|(x,y,z)=r→|r→|=e→
2,向量的运算
1)向量加减 - 平行四边形(几何)和直角坐标分量(代数法)
2)标量乘向量
注:以上内容参考math is fun - vector即可。
3)数量积(dot product)
“math is fun”上对点积的介绍比较形象,特别是对 θ 角的意义和为什么要乘以 cos(θ) 讲解的很生动。此外,可以参考better explained - dot product,它对“点乘”的意义进行了广泛的探究。“点乘”超越了简单的数量重复,它包含了方向旋转。
注意:两个向量“点乘”的结果是一个标量,故它又称为“数量积”
4)向量积(cross product)
“math is fun”没有提到向量积的模等于“两个向量所在平行四边形”的面积这层几何意义,也没有将“叉积”与行列式联系起来。这一方面可以参考wiki - Cross product和better explained - Cross Product。特别是后者,讲解的很全面,值得一看。
5)混合积
向量积表示面积,混合积表示体积。
总结:看完以上资料,对向量就已经有了基本的了解。特别需要注意的是:向量即可从几何图形上来理解,也可以从代数(各分量)角度来理解。此外,从极坐标的角度来看向量的运算,会更简单。
3,Python向量运算
import numpy as np
import matplotlib.pyplot as plt
# Adding vectors and Substracting vectors
a = np.array([3, 7, 4])
b = np.array([2, 9, 11])
a + b, a - b
(array([ 5, 16, 15]), array([ 1, -2, -7]))
# Magnitude of a Vector
c = np.array([6, 8])
np.linalg.norm(c)
10.0
#Multipying a Vector by a Scalar
m = np.array([7, 3])
3 * m
array([21, 9])
# Multipying vectors
a = np.array([4, 8, 10])
b = np.array([9, 2, 7])
a * b
array([36, 16, 70])
# dot product and cross product
np.dot(a, b), np.cross(a, b)
(122, array([ 36, 62, -64]))
np.sum(a * b)
122
注:数量积是两个向量相同维度的值相乘,然后累加的结果。故有, np.sum(a∗b)=np.dot(a,b)
二、曲面及方程
1,曲面方程
解析几何中,用“二维”的动点来表示“平面”,用“三维”的动点来表示空间曲面,如下:
F(x,y,z)=0
例如,中心在 (x0,y0,z0) ,半径为 R 的球面方程为:
(x−x0)2+(y−y0)2+(z−z0