当前位置:网站首页>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
边栏推荐
猜你喜欢
prometheus-federation-tls加密
Graph Computing 101: Types, Languages, and Systems of Graph Computing
Distance calculation from space vertex to straight line and its source code
Advanced multi-threading (lock strategy, spin+CAS, Synchronized, JUC, semaphore)
STL源码剖析:class template explicit specialization代码测试和理解
Process and Scheduled Task Management
图解关系数据库设计思想,这也太形象了
Redis download and installation
DHCP原理与配置
prometheus监控nacos
随机推荐
你被MySQL 中的反斜杠 \\坑过吗?
Distance calculation from space vertex to straight line and its source code
Test the basics 02
进程和计划任务管理
测试开发工程师成长日记002 - 从0开始做接口自动化
Test Development Engineer Growth Diary 015 - Top 20 Test Interview Questions
Huawei released "ten inventions", including computing, intelligent driving and other new fields
prometheus监控mysql
Pioneer in Distributed Systems - Leslie Lambert
MongoDB-CUD without R
Mastering JESD204B (3) – Debugging of AD6676
Detailed explanation of numpy multidimensional array ndarray
测试开发工程师成长日记001 - 敏捷测试、CI/CD/CT、DecOps的一些介绍
Linx常见目录&文件管理命令&VI编辑器使用 介绍
空间顶点到平面的距离计算的证明及其源码
prometheus-basic_auth加密配置
From installation to compilation: 10 minutes to teach you to use and develop GraphScope locally
测试开发工程师成长日记017 - bug的生命周期
多线程进阶(锁策略,自旋+CAS,Synchronized,JUC,信号量)
Required request body is missing 问题解决