-
2019-05-09 10:52:58
貌似在当前 tensorflow 版本中没有定义外积操作
dim = 6 template1 = np.zeros([dim,dim*dim]) for i in range(dim): for j in range(dim): template1[i,dim*i+j] = 1 log_info(template1) ''' dim = 4 [[1. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 1. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 1. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 1.]] ''' template2 = np.zeros([dim,dim*dim]) for i in range(dim): for j in range(dim): template2[i,dim*j+i] = 1 log_info(template2) ''' dim = 4 [[1. 0. 0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 1. 0. 0. 0.] [0. 1. 0. 0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 1. 0. 0.] [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 1. 0.] [0. 0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 1.]] ''' def outer_product(a, b): tml1 = tf.convert_to_tensor(template1, dtype=float) tml2 = tf.convert_to_tensor(template2, dtype=float) return tf.matmul(a,tml1)*tf.matmul(b,tml2)
给定两个同维向量 a b
a = np.array([[i+1 for i in range(dim)]]) b = a.copy() log_info(a) log_info(b)
[[1 2 3 4 5 6]] [[1 2 3 4 5 6]]
求它们的外积
a = tf.convert_to_tensor(a, dtype=float) b = tf.convert_to_tensor(b, dtype=float) c = outer_product(a, b) c = tf.reshape(c,[-1,dim,dim]) print(c.shape) with tf.Session() as sess: print(sess.run(c))
(1, 6, 6) [[[ 1. 2. 3. 4. 5. 6.] [ 2. 4. 6. 8. 10. 12.] [ 3. 6. 9. 12. 15. 18.] [ 4. 8. 12. 16. 20. 24.] [ 5. 10. 15. 20. 25. 30.] [ 6. 12. 18. 24. 30. 36.]]]
更多相关内容 -
向量外积的直接证明与直观解释,并以此证明正弦公式
2020-12-21 03:15:52很多人只知道用向量内积公式去推导向量外积公式,殊不知向量外积的证明可以更加直接,并不需要以几积公式为基础。如果我们领悟这种更加直接的方式,相信我们会很容易理解为什么矩阵行列式的绝对值表示矩阵的行向量或...本篇文章采用直接了当的方法讨论向量的外积公式。很多人只知道用向量内积公式去推导向量外积公式,殊不知向量外积的证明可以更加直接,并不需要以几积公式为基础。如果我们领悟这种更加直接的方式,相信我们会很容易理解为什么矩阵行列式的绝对值表示矩阵的行向量或列向量在
维空间上张成的平行多面的体积,实职上是
面体。并且我们也会很容易理解子式的意义。
首先我们来定义外积:假设向量
,
与
的逆时针夹角为
, 则定义外积为
显然从定义可知,外积的绝对值表示两个向量张成的平行四边形的面积。
为了推导该公式的坐标形式,我们先证明外积运算满足乘法分配律:如下图
假设
,
则
注意
与
逆时针夹角是
, 非
. 到此为止,我们便证明了向量的外积运算满足乘法分配律。
有了乘法分配律,我们再来看向量的坐标形式,不妨假设
则
其中倒数第二步是因为根据定义,共线的向量外积为零,所以只剩下两项。
如此,我们便得到了外积的坐标形式,由外积的定义,我们知道,外积的绝对值就是两个向量张成的平行四边形的面积。其实我们将外积公式稍微变形
其中
是
的与
轴的夹角,
是向量
与
轴的夹角。其实这正是高中所学的正弦公式。其实正弦公式本质上就是向量外积,余弦公式本质上就是向量内积,后者读者可根据分配律自己证明。
其实,外积公式与内积公式也可以相互推得,这是因为
故可由一个公式的坐标形式推导令一个公式的坐标形式。
其实矩阵的行列式就是向量的外积在高维空间上的直接推广,请读者自己思考。
另外,请感兴趣的读者关注我的知乎专栏:数学妙谈,高等代数精深简明讲义,古诗文以及公众号丞申通汇文化平台,随时更新新内容。本人电话:18612313613(微信同)
-
向量外积的推导(Vector Cross Product)
2010-06-30 22:14:04在网上看到向量外积的公式,大部分都只写定义,没有说明公式的推导,本文尝试进行推导,以满足各位的求知欲。 -
高中数学之向量外积的运用
2018-06-16 22:43:20关于向量外积的运用 公式(a,b均为向量,θ为a,b的夹角) 1,|**a** * **b**| = |**a**|*|**b**|sinθ 2,**a** * **b** = (l, m, n)*(o, p, q) = (mq - np, no - lq, lp - mo) 3,**a** * **b** = - **b** * **...向量积,数学中又称外积、叉积,物理中称矢积、叉乘,是一种在向量空间中向量的二元运算。与点积不同,它的运算结果是一个向量而不是一个标量。并且两个向量的叉积与这两个向量和垂直。其应用十分广泛,通常应用于物理学光学和计算机图形学中。
如图,这是 ( 2 , 4 ) × ( 3 , 0 ) = − 12 (2, 4) × (3, 0) = -12 (2,4)×(3,0)=−12 ,我们得到了一个实数 − 12 -12 −12 ,而其绝对值为平行四边形面积。
如图,这是 ( 1 , 0 , 0 ) × ( 2 , 4 , 0 ) = ( 0 , 0 , 4 ) (1, 0, 0) × (2, 4, 0) = (0, 0, 4) (1,0,0)×(2,4,0)=(0,0,4) ,我们得到了一个垂直与已知两向量的法向量,且其模长为平行四边形面积。
运算定理
a ⃗ , b \vec{a},b a,b 均为向量, θ θ θ 为 a ⃗ , b \vec{a},b a,b 的夹角
1, a ⃗ × b ⃗ = ∣ a ⃗ ∣ × ∣ b ⃗ ∣ s i n θ \qquad\vec{a}\times \vec{b}=|\vec{a}| \times |\vec{b}|sinθ a×b=∣a∣×∣b∣sinθ
2, a ⃗ × b ⃗ = ( l , m , n ) × ( o , p , q ) = ( m q − n p , n o − l q , l p − m o ) \qquad\vec{a}\times \vec{b}=(l,m,n) \times (o,p,q)=(mq-np,no-lq,lp-mo) a×b=(l,m,n)×(o,p,q)=(mq−np,no−lq,lp−mo)
3, a ⃗ × b ⃗ = − ( b ⃗ × a ) \qquad\vec{a}\times \vec{b}=-(\vec{b} \times a) a×b=−(b×a)
运用1,已知三点坐标,求三角形面积
以任意一个点坐标为基准,做差得到两个向量,这两个向量可围成向量三角形
例如点 A ( a , b , c ) A (a, b, c) A(a,b,c) ,点 B ( d , e , f ) B (d, e, f) B(d,e,f) ,点 C ( g , h , i ) C (g, h, i) C(g,h,i)
得到向量 p ⃗ = ( d − a , e − b , f − c ) \vec{p} = (d - a, e - b, f - c) p=(d−a,e−b,f−c) 和 q ⃗ = ( g − a , h − b , i − c ) \vec{q} = (g - a, h - b, i - c) q=(g−a,h−b,i−c)
使用公式2,然后取绝对值,得到三角形面积 S = ∣ p ⃗ × q ⃗ ∣ / 2 S = | \vec{p} \times \vec{q} | / 2 S=∣p×q∣/2空间向量外积求三角形面积可以很容易的推广到平面
令
n = 0 , q = 0 \ n = 0,q = 0 n=0,q=0
则有
a ⃗ × b ⃗ = ( l , m , 0 ) × ( o , p , 0 ) = ( 0 , 0 , l p − m o ) \vec{a} ×\vec{b}= (l, m, 0) × (o, p, 0) = (0, 0, lp - mo) a×b=(l,m,0)×(o,p,0)=(0,0,lp−mo)
故
S = ∣ a ⃗ × b ⃗ ∣ / 2 = ∣ l p − m o ∣ / 2 S = |\vec{a}×\vec{b}| / 2 = | lp - mo | / 2 S=∣a×b∣/2=∣lp−mo∣/2三角形是最简单的几何图形,而在计算机领域求多边形面积是非常重要的,而用向量外积算出的有向面积,是解决求多边形面积的重要方法,它适用于凸多边形和凹多边形,非常灵活,简洁优美。
运用2,已知平面,求平面的法向量
找到平面内不共线的两向量 a ⃗ , b ⃗ \vec a,\vec b a,b ,这两个向量决定了这个平面
使用公式2,得到向量 c ⃗ \vec c c ,按照向量外积的定义, c ⃗ \vec c c 垂直于 a ⃗ , b ⃗ \vec a,\vec b a,b
故所求向量 c ⃗ \vec c c 即平面的法向量向量外积得到的法向量,有很多用途,尤其是物理上的,例如3D图像渲染在CG和游戏领域非常重要,而好的视觉效果多半取决于环境光的仿真,光的传播有一个最基本的定理,那就是光线与平面的法线所成的反射角等于入射角,而与利用向量外积求平面法线,是最简洁优美的。
运用3,求三棱锥体积
由三个不共面向量 a ⃗ , b ⃗ , c ⃗ \vec{a},\vec{b},\vec{c} a,b,c 所决定的平行六面体的体积为
V = ∣ a ⃗ ⋅ ( b ⃗ × c ⃗ ) ∣ = ∣ b ⃗ ⋅ ( a ⃗ × c ⃗ ) ∣ = ∣ c ⃗ ⋅ ( a ⃗ × b ⃗ ) ∣ V=|\vec{a} \cdot ({\vec{b} \times} \vec{c})|=|\vec{b} \cdot ({\vec{a} \times} \vec{c})|=|\vec{c} \cdot ({\vec{a} \times} \vec{b})| V=∣a⋅(b×c)∣=∣b⋅(a×c)∣=∣c⋅(a×b)∣
故由三个不共面向量所决定的三棱锥的体积为 V / 6 V/6 V/6运用4,高中数学外挂
用它来做高中数学题简直就是开挂。
已知三点坐标,求三角形面积这个问题。按照高中数学的套路,无非就是两点间距离公式算三边长,然后要么用海伦公式算面积,要么用余弦定理求出余弦值,换成正弦值,再求面积,这两种方法海伦公式稍微简便一点,但无非都难算了一些。而使用向量外积则简洁优美,我直接算 ∣ a ⃗ × b ⃗ ∣ / 2 |\vec{a}×\vec{b}| / 2 ∣a×b∣/2 的值就是面积了。
已知平面,求平面的法向量这个问题。按照高中数学的套路,无非找出平面内两个不共线向量 a , b a,b a,b ,然后设平面的法向量 c ⃗ = ( x , y , z ) \vec{c} = (x, y, z) c=(x,y,z) 然后根据向量垂直 c ⃗ ⋅ a ⃗ = 0 \vec{c} \cdot\vec{a}= 0 c⋅a=0 和 c ⃗ ⋅ b ⃗ = 0 \vec{c} \cdot\vec{b}= 0 c⋅b=0 联立解得 x , y , z x,y,z x,y,z 为含参的式子(因为一个平面的法向量有无数个),最后取一个容易计算的法向量。而使用向量外积,那就更简单了, a ⃗ × b \vec{a} × b a×b 就搞定。
已知三棱锥的各个点坐标,求它的体积这个问题。按照高中数学的套路,无非就是用余弦定理和正弦定理暴算一个面的面积,再用向量的余弦定理暴算点到面的距离,然后求出体积。如果使用上述的公式,一步就能算出体积,非常方便。
-
numpy.outer 计算向量外积
2020-07-07 17:55:22numpy 中的外积定义和数学中是不同的,其定义如下 示例 import numpy as np r=np.outer(np.arange(1,4), [5,2,1,4]) 结果 array([[ 5, 2, 1, 4], [10, 4, 2, 8], [15, 6, 3, 12]])numpy 中的外积定义和数学中是不同的,其定义如下
示例import numpy as np r=np.outer(np.arange(1,4), [5,2,1,4])
结果
array([[ 5, 2, 1, 4], [10, 4, 2, 8], [15, 6, 3, 12]])
-
矢量叉乘,向量外积
2021-08-01 11:22:48矢量叉乘,向量外积 原创不易,路过的各位大佬请点个赞 矢量叉乘,向量外积矢量叉乘,向量外积1. 矢量叉乘定义2. 模长3. 方向4. 坐标运算6. 叉乘矩阵(斜对称矩阵)6. 叉乘运算规则 1. 矢量叉乘定义 定义两个向量a\... -
向量叉乘公式_向量外积的高中数学运用
2020-11-21 09:49:08向量积,数学中又称外积、叉积,物理中称矢积、叉乘,是一种在向量空间中向量的二元运算。与点积不同,它的运算结果是一个向量而不是一个标量。并且两个向量的叉积与这两个向量和垂直。其应用十分广泛,通常应用于... -
向量外积的应用
2017-09-26 17:45:49方向:右手法则,叉乘后的向量的方向与这两个向量所在的平面垂直 理解:|c|=|a×b|=|a| |b|sinθ c的长度在数值上等于以a,b夹角θ组成的平行四边形的面积应用决定点在直线的哪一侧只取数值的结果,AB × AP = |AB| ... -
线性代数学习笔记——第三十一讲——向量外积的坐标形式
2019-08-26 21:58:481. 外积的坐标形式 2. 向量外积的应用示例1 3. 向量外积的应用示例1——已知三角形三个顶点的坐标,求某一条边上的高 4. 练习 -
线性代数学习笔记——第三十讲——向量外积的概念与性质
2019-08-26 21:25:351. 向量外积的概念的引入(力矩的计算) 2. 向量外积的定义(分两步:方向和模) 3. 向量外积的性质(平行向量的外积为零,反之亦然;外积不满足交换律;外积满足数乘的结合律;外积满足分配律) 4. ... -
矩阵及向量外积在密码学中的应用.pdf
2021-10-01 21:52:18矩阵及向量外积在密码学中的应用.pdf -
向量的内积与外积
2019-11-11 16:35:36向量的内积与外积 向量的内积 已知两个非零向量a、b,那么|a||b|cosθ(θ是a与b的夹角)叫做a与b的数量积或内积。记作a·b。两个向量的数量积等于它们对应坐标的乘积的和。即:若a=(x1,y1),b=(x2,y2),则a·b=x1·... -
向量外积
2019-09-23 12:20:42Outer Product是线性代数中的外积,也就是张量积 : Exterior Product Exterior Product是解析几何中的外积,又叫叉乘。 叉乘的运算结果是一个向量而不是一个标量。并且两个向量的叉积与这两个向量组成的坐标... -
向量的外积、向量积
2019-02-28 12:06:38叉乘,也叫向量的外积、向量积。顾名思义,求下来的结果是一个向量,记这个向量为c。 |向量c|=|向量a×向量b|=|a||b|sin<a,b> 向量c的方向与a,b所在的平面垂直,且方向要用“右手法则”判断(用... -
向量的内积外积与其几何意义
2020-04-02 22:45:51有向量 a⃗=(x1,y1),b⃗=(x2,y2)\vec a=(x_1,y_1),\vec b=(x_2,y_2)a=(x1,y1),b=(x2,y2),夹角为 θ\thetaθ,内积为: a⃗⋅b⃗=∣a⃗∣∣b⃗∣cosθ=x1x2+y1y2 \vec a \cdot \vec b=|\vec a||\vec b|... -
向量的内、外积及其几何含义
2019-03-18 15:37:51一、向量的内积(点乘) 定义 概括地说,向量的内积(点乘/数量积)。对两个向量执行点乘运算,就是对这两个向量对应位一一相乘之后求和的操作,如下所示,对于向量a和向量b: a和b的点积公式为: 这里要求... -
旋转矢量和向量外积的关系
2019-01-13 23:10:46在三维空间中,我们经常会对某些向量进行旋转等操作,同时物体在空间中的变化除了位移之外也包括旋转,而用来描述旋转的方式有很多,如:旋转矢量,欧拉角,四元数,方向余弦矩阵等。其中旋转矢量的定义是这样的:一... -
向量的外积、内积、正交、平行判断
2021-04-21 18:01:15内积 内积又称:点积、点称、数量积 定义:设向量a(ax,ay),向量b(bx,by)之间的夹角为θ,(0<=θ<=180) 那么a、b的内积a·b=|a|x|b|cosθ=ax * bx+ay * by(横乘横,加上,纵乘纵) 内积中间是点不是x号 ...外积 -
向量的内积和外积
2019-11-11 19:27:55向量的点乘,也叫向量的内积、数量积,对两个向量执行点乘运算,就是对这两个向量对应位一一相乘之后求和的操作,点乘的结果是一个标量。 点乘公式 对于向量a和向量b: a=[a1,a2,a3,…,an]a=[a_1,a_2,a_3,…,a_n]a=... -
向量外积为什么可以用于特征交叉?
2022-01-11 12:11:451、向量外积有几种? 2、向量外积在机器学习中的应用有哪些? 3、向量外积本质是什么? 4、向量外积番外篇 -
向量内积和外积的计算以及意义
2022-03-09 21:15:54向量内积的计算方式以及其表达的意义。 -
向量的外积和内积
2020-09-07 09:43:14内积 计算公式 几何意义 两个向量之间的夹角 向量b在向量a上的投影 ...外积 ...外积在数值上等于两个向量组成平行四边形的面积 reference https://www.cnblogs.com/gxcdream/p/7597865.html ... -
python 求向量间内积 和外积
2022-05-09 00:00:42python 求向量外积 #外积的方向垂直于这两个向量,大小为 |a| |b|sin ⟨a, b⟩,是两个向量张成的四边形的 #有向面积。对于外积,我们引入了 ∧ 符号,把 a 写成一个矩阵。事实上是一个反对称矩阵 -
七、向量的外积以及内外积的几何解释
2019-05-09 17:24:34向量的乘法有两种,一种是点积--dot product,一种是外积--cross product 点积和外积的区别: 点积可以在任何维数的空间中定义,外积只能在三维空间中定义 点积的结果是一个标量,外积的结果是一个向量 2. 外积... -
人工智能数学基础-线性代数2:向量的点积、內积、数量积和外积
2021-01-09 23:35:43本文介绍了向量的內积和外积的概念,以及相关的运算公式。 -
两垂直向量的外积计算
2021-04-11 22:06:01两垂直向量的外积计算 cesium.corss()函数: Cartesian3.cross = function(left, right, result) { //>>includeStart('debug', pragmas.debug); Check.typeOf.object('left', left); Check.typeOf.object('... -
线性代数向量内积_向量的外积| 使用Python的线性代数
2020-07-18 02:02:25线性代数向量内积Prerequisites: 先决条件: Defining Vector using Numpy 使用Numpy定义向量 Learn: how to code for outer product of two vectors using am inbuilt function in numpy library? 了解:如何...