当前位置:网站首页>Equation Derivation Proof of Vector Triple Product
Equation Derivation Proof of Vector Triple Product
2022-07-30 07:50:00 【sunset stained ramp】
目标:最近在看论文,Some basic formula reasoning is required,Equations for triple products are often encountered.为了更深入的理解.So derive this formula.
定义:
向量三重积
a → × ( b → × c → ) = ( a → ⋅ c → ) ⋅ b → − ( a → ⋅ b → ) ⋅ c → \overrightarrow{a} \times (\overrightarrow{b} \times \overrightarrow{c})= (\overrightarrow{a} \cdot \overrightarrow{c}) \cdot\overrightarrow{b} - (\overrightarrow{a} \cdot \overrightarrow{b}) \cdot\overrightarrow{c} a×(b×c)=(a⋅c)⋅b−(a⋅b)⋅c
其中 a → = ( a 0 , a 1 , . . . , a n ) \overrightarrow{a}=(a_0,a_1,...,a_n) a=(a0,a1,...,an); b → = ( b 0 , b 1 , . . . , b n ) \overrightarrow{b}=(b_0,b_1,...,b_n) b=(b0,b1,...,bn); c → = ( c 0 , c 1 , . . . , c n ) \overrightarrow{c}=(c_0,c_1,...,c_n) c=(c0,c1,...,cn)
General in space vector n = 3 n=3 n=3
证明,It can be proved in two ways
第一种是最简单的方式,Expand the left and right items directly.
In general, the cross product can be converted to the product of a matrix and a vector.The transformation is shown below
S k e w ( a ) = [ 0 − a 2 a 1 a 2 0 − a 0 − a 1 a 0 0 ] Skew(a) = \begin{bmatrix} 0 \space \space -a_2 \space \space a_1 \\ a_2 \space \space 0 \space \space -a_0 \\ -a_1 \space \space a_0 \space \space 0 \end{bmatrix} Skew(a)=⎣⎡0 −a2 a1a2 0 −a0−a1 a0 0⎦⎤
So the formula on the left is :
a → × ( b → × c → ) = s k e w ( a → ) ( s k e w ( b → ) c → ) = [ 0 − a 2 a 1 a 2 0 − a 0 − a 1 a 0 0 ] [ 0 − b 2 b 1 b 2 0 − b 0 − b 1 b 0 0 ] [ c 0 c 1 c 2 ] = [ 0 − a 2 a 1 a 2 0 − a 0 − a 1 a 0 0 ] [ b 1 c 2 − b 2 c 1 b 2 c 0 − b 0 c 2 b 0 c 1 − b 1 c 0 ] = [ − a 2 ( b 2 c 0 − b 0 c 2 ) + a 1 ( b 0 c 1 − b 1 c 0 ) a 2 ( b 1 c 2 − b 2 c 1 ) − a 0 ( b 0 c 1 − b 1 c 0 ) − a 1 ( b 1 c 2 − b 2 c 1 ) + a 0 ( b 2 c 0 − b 0 c 2 ) ] = [ ( a 1 c 1 + a 2 c 2 ) b 0 − ( a 1 b 1 + a 2 b 2 ) c 0 ( a 0 c 0 + a 2 c 2 ) b 1 − ( a 0 b 0 + a 2 b 2 ) c 1 ( a 0 c 0 + a 1 c 1 ) b 2 − ( a 0 b 0 + a 1 b 1 ) c 2 ] = [ ( a 0 c 0 + a 1 c 1 + a 2 c 2 ) b 0 − ( a 0 b 0 + a 1 b 1 + a 2 b 2 ) c 0 ( a 0 c 0 + a 1 c 1 + a 2 c 2 ) b 1 − ( a 0 b 0 + a 1 b 1 + a 2 b 2 ) c 1 ( a 0 c 0 + a 1 c 1 + a 2 c 2 ) b 2 − ( a 0 b 0 + a 1 b 1 + a 2 b 2 ) c 2 ] = ( a → ⋅ c → ) ⋅ b → − ( a → ⋅ b → ) ⋅ c → \overrightarrow{a} \times (\overrightarrow{b} \times \overrightarrow{c}) \\ =skew(\overrightarrow{a})(skew(\overrightarrow{b})\overrightarrow{c}) \\ = \begin{bmatrix} 0 \space \space -a_2 \space \space a_1 \\ a_2 \space \space 0 \space \space -a_0 \\ -a_1 \space \space a_0 \space \space 0 \end{bmatrix} \begin{bmatrix} 0 \space \space -b_2 \space \space b_1 \\ b_2 \space \space 0 \space \space -b_0 \\ -b_1 \space \space b_0 \space \space 0 \end{bmatrix} \begin{bmatrix} c_0 \\ c_1 \\ c_2 \end{bmatrix} =\begin{bmatrix} 0 \space \space -a_2 \space \space a_1 \\ a_2 \space \space 0 \space \space -a_0 \\ -a_1 \space \space a_0 \space \space 0 \end{bmatrix} \begin{bmatrix} b_1c_2-b_2c_1 \\ b_2c_0-b_0c_2 \\ b_0c_1-b_1c_0 \end{bmatrix} \\ \\ =\begin{bmatrix} -a_2(b_2c_0-b_0c_2) + a_1(b_0c_1-b_1c_0) \\ a_2(b_1c_2-b_2c_1) - a_0(b_0c_1-b_1c_0) \\ -a_1(b_1c_2-b_2c_1) + a_0(b_2c_0-b_0c_2) \end{bmatrix} = \begin{bmatrix} (a_1c_1+a_2c_2)b_0 - (a_1b_1+a_2b_2)c_0 \\ (a_0c_0+a_2c_2)b_1 - (a_0b_0+a_2b_2)c_1 \\ (a_0c_0+a_1c_1)b_2 - (a_0b_0+a_1b_1)c_2 \end{bmatrix} \\ = \begin{bmatrix} (a_0c_0+a_1c_1+a_2c_2)b_0 - (a_0b_0+a_1b_1+a_2b_2)c_0 \\ (a_0c_0+a_1c_1+a_2c_2)b_1 - (a_0b_0+a_1b_1+a_2b_2)c_1 \\ (a_0c_0+a_1c_1+a_2c_2)b_2 - (a_0b_0+a_1b_1+a_2b_2)c_2 \end{bmatrix} = (\overrightarrow{a} \cdot \overrightarrow{c}) \cdot\overrightarrow{b} - (\overrightarrow{a} \cdot \overrightarrow{b}) \cdot\overrightarrow{c} a×(b×c)=skew(a)(skew(b)c)=⎣⎡0 −a2 a1a2 0 −a0−a1 a0 0⎦⎤⎣⎡0 −b2 b1b2 0 −b0−b1 b0 0⎦⎤⎣⎡c0c1c2⎦⎤=⎣⎡0 −a2 a1a2 0 −a0−a1 a0 0⎦⎤⎣⎡b1c2−b2c1b2c0−b0c2b0c1−b1c0⎦⎤=⎣⎡−a2(b2c0−b0c2)+a1(b0c1−b1c0)a2(b1c2−b2c1)−a0(b0c1−b1c0)−a1(b1c2−b2c1)+a0(b2c0−b0c2)⎦⎤=⎣⎡(a1c1+a2c2)b0−(a1b1+a2b2)c0(a0c0+a2c2)b1−(a0b0+a2b2)c1(a0c0+a1c1)b2−(a0b0+a1b1)c2⎦⎤=⎣⎡(a0c0+a1c1+a2c2)b0−(a0b0+a1b1+a2b2)c0(a0c0+a1c1+a2c2)b1−(a0b0+a1b1+a2b2)c1(a0c0+a1c1+a2c2)b2−(a0b0+a1b1+a2b2)c2⎦⎤=(a⋅c)⋅b−(a⋅b)⋅c
证明完毕.
第二种方法: in a geometrically meaningful way.It has the heuristic kind.It is recommended to use this method to prove the equation for the triple product above.
To make it easier for everyone to understand,画出图像,得到下图

Because of the cross product,is the vertical vector of the two vectors.比如 b → × c → \overrightarrow{b} \times \overrightarrow{c} b×c,it is perpendicular to b → , c → \overrightarrow{b},\overrightarrow{c} b,cThe plane in which the two vectors of .
Arbitrary vectors at the same time a → \overrightarrow{a} a和 b → × c → \overrightarrow{b} \times \overrightarrow{c} b×c叉乘.The resulting vector must be parallel to b → , c → \overrightarrow{b},\overrightarrow{c} b,cThe plane in which the two vectors of .(The red line segment represents).因此可以写成如下:
a → × ( b → × c → ) = m b → + n c → \overrightarrow{a} \times (\overrightarrow{b} \times \overrightarrow{c})=m\overrightarrow{b}+n\overrightarrow{c} a×(b×c)=mb+nc
Because the red vector a → × ( b → × c → ) \overrightarrow{a} \times (\overrightarrow{b} \times \overrightarrow{c}) a×(b×c)和 a → \overrightarrow{a} a垂直.因此:
a → ⋅ ( a → × ( b → × c → ) ) = 0 = > a → ⋅ ( m b → + n c → ) = 0 = > m ( a → ⋅ b → ) + n ( a → ⋅ c → ) = 0 \overrightarrow{a} \cdot(\overrightarrow{a} \times (\overrightarrow{b} \times \overrightarrow{c})) = 0 \\ =>\overrightarrow{a} \cdot(m\overrightarrow{b}+n\overrightarrow{c}) = 0 \\ =>m(\overrightarrow{a} \cdot \overrightarrow{b}) + n(\overrightarrow{a} \cdot \overrightarrow{c})=0 a⋅(a×(b×c))=0=>a⋅(mb+nc)=0=>m(a⋅b)+n(a⋅c)=0
To solve the above formula,We use construction,Construct two numbers such that the above formula holds.构造如下:
存在 p ∈ R p\in R p∈R;且 m = p ( a → ⋅ c → ) m=p(\overrightarrow{a} \cdot \overrightarrow{c}) m=p(a⋅c); n = − p ( a → ⋅ b → ) n=-p(\overrightarrow{a} \cdot \overrightarrow{b}) n=−p(a⋅b),Make the above formula hold constant.为了方便理解,The constructed terms are brought into the formula m ( a → ⋅ b → ) + n ( a → ⋅ c → ) = 0 m(\overrightarrow{a} \cdot \overrightarrow{b}) + n(\overrightarrow{a} \cdot \overrightarrow{c})=0 m(a⋅b)+n(a⋅c)=0
m ( a → ⋅ b → ) + n ( a → ⋅ c → ) = 0 = p ( a → ⋅ c → ) ( a → ⋅ b → ) − p ( a → ⋅ b → ) ( a → ⋅ c → ) = 0 m(\overrightarrow{a} \cdot \overrightarrow{b}) + n(\overrightarrow{a} \cdot \overrightarrow{c})=0 \\ =p(\overrightarrow{a} \cdot \overrightarrow{c})(\overrightarrow{a} \cdot \overrightarrow{b})-p(\overrightarrow{a} \cdot \overrightarrow{b})(\overrightarrow{a} \cdot \overrightarrow{c})=0 m(a⋅b)+n(a⋅c)=0=p(a⋅c)(a⋅b)−p(a⋅b)(a⋅c)=0
The substituted equation can see that the above is a middle identity.
The above equation and vector a → \overrightarrow{a} a, b → \overrightarrow{b} b, c → \overrightarrow{c} c取值无关.
因此将 m = p ( a → ⋅ c → ) m=p(\overrightarrow{a} \cdot \overrightarrow{c}) m=p(a⋅c); n = − p ( a → ⋅ b → ) n=-p(\overrightarrow{a} \cdot \overrightarrow{b}) n=−p(a⋅b),代入到 a → × ( b → × c → ) = m b → + n c → \overrightarrow{a} \times (\overrightarrow{b} \times \overrightarrow{c})=m\overrightarrow{b}+n\overrightarrow{c} a×(b×c)=mb+nc,得到如下公式:
a → × ( b → × c → ) = m b → + n c → = p ( a → ⋅ c → ) b → − p ( a → ⋅ b → ) c → \overrightarrow{a} \times (\overrightarrow{b} \times \overrightarrow{c})=m\overrightarrow{b}+n\overrightarrow{c}=p(\overrightarrow{a} \cdot \overrightarrow{c})\overrightarrow{b}-p(\overrightarrow{a} \cdot \overrightarrow{b})\overrightarrow{c} a×(b×c)=mb+nc=p(a⋅c)b−p(a⋅b)c
Because of the above formula and vector a → \overrightarrow{a} a, b → \overrightarrow{b} b, c → \overrightarrow{c} c无关,Simple vectors can be used a → = [ 1 , 1 , 1 ] \overrightarrow{a}=[1,1,1] a=[1,1,1]; b → = [ 0 , 1 , 0 ] \overrightarrow{b}=[0,1,0] b=[0,1,0]; c → = [ 0 , 0 , 1 ] \overrightarrow{c}=[0,0,1] c=[0,0,1]
Bring in the corresponding simple formula,就可以得到 p = 1 p=1 p=1
证明完毕.
参考资料如下:
https://www.youtube.com/watch?v=4U5fkwYDvZg
边栏推荐
- 牛客:删除公共字符
- 多线程基础(概念,创建,中断)
- Table with tens of millions of data, how to query the fastest?
- The concept and testing method of black box testing
- export , export default, import complete usage
- prometheus监控mysql
- prometheus监控minio
- Mastering JESD204B (3) – Debugging of AD6676
- 测试开发工程师成长日记017 - bug的生命周期
- Pioneer in Distributed Systems - Leslie Lambert
猜你喜欢

C#的访问修饰符,声明修饰符,关键字有哪些?扫盲篇

prometheus监控nacos

测试开发工程师成长日记018 - 测试面试必备题记录(持续更新)

Detailed explanation of numpy multidimensional array ndarray

The terminal connection tools, rolling Xshell

Advanced multi-threading (lock strategy, spin+CAS, Synchronized, JUC, semaphore)

不会吧,Log4j 漏洞还没有完全修复?

Rapidly develop GraphScope graph analysis applications

RAID磁盘阵列

STL源码剖析:迭代器的概念理解,以及代码测试。
随机推荐
Redis下载与安装
The Society of Mind - Marvin Minsky
Distance calculation from space vertex to straight line and its source code
这个终端连接工具,碾压Xshell
阿里一面:多线程顺序运行有多少种方法?
GadgetInspector principle analysis
彻底删除openstack中镜像的记录
MySQL什么时候用表锁,什么时候用行锁?
测试开发工程师成长日记015 - 最强20道测试面试题
numpy 多维数组ndarray的详解
多线程进阶(锁策略,自旋+CAS,Synchronized,JUC,信号量)
阿里二面:Sentinel vs Hystrix 对比,如何选择?
Bull: remove common characters
删除openstack中的僵尸实例
As a test leader, examine several aspects of job candidates
debian 问题
牛客:删除公共字符
Multithreading basics (concept, create, interrupt)
进程和计划任务管理
From installation to compilation: 10 minutes to teach you to use and develop GraphScope locally