Cross 
Cross[a,b]
给出了 a 和 b 的向量叉积.
更多信息
- 如果 a 和 b 是长度为 3 (对应于三维空间向量)的列表,则 Cross[a,b] 同样是长度为 3 的列表.
- Cross[a,b] 可以以 StandardForm 和 InputForm 形式输入,例如 ab,a
cross
b 或 a\[Cross]b. 注意 \[Cross] 和 \[Times]之间的不同. - Cross 是反对称的,因此 Cross[b,a] 即是 -Cross[a,b]. »
- Cross[{x,y}] 给出垂直向量 {-y,x}.
- 通常,Cross[v1,v2,…,vn-1] 是一个完全反对称的乘积,它取长度为 n 的向量,并生成一个长度为 n 的与所有 vi 正交的向量.
- Cross[v1,v2,…] 给出 vi 的楔积的对偶,当作 n 维中的一种形式.
范例
打开所有单元 关闭所有单元基本范例 (3)
u = {1, 2, -1};
v = {-1, 1, 0};w = Cross[u, v]Graphics3D[{Black, Arrow[Tube[{{0, 0, 0}, u}]], Arrow[Tube[{{0, 0, 0}, v}]], StandardRed, Arrow[{{0, 0, 0}, w}], White, InfinitePlane[{0, 0, 0}, {u, v}]}, Axes -> True, PlotRangePadding -> 2]Cross[{1, Sqrt[3]}]Graphics[{Arrow[{{0, 0}, {1, Sqrt[3]}}], StandardRed, Arrow[{{0, 0}, {-Sqrt[3], 1}}]}, Axes -> True]{a, b, c}⨯{x, y, z}范围 (9)
Cross[{3.2, 4.2, 5.2}, {0.75, 0.09, 0.06}]Cross[{1.3 + I, 2, 3 - 2 I}, {6. + I, 4, 5 - 7 I}]{1, 2, 3}⨯{1, 8, 9}{u, v} = RandomReal[4, {2, 3}, WorkingPrecision -> 20]u⨯vCross[{x, 0, x}, {x, y, 2x}]计算 QuantityArray 向量的叉积:
e = QuantityArray[{1, 2, 3}, "Newtons" / "Coulombs"]b = QuantityArray[{4, 5, 6}, "Teslas"]保留了 QuantityArray 结构:
e⨯b%//MatrixFormCross[{x, y}]{x, y}.%a = {1, 2, 3};b = {4, 5, 6};验证 Cross 是反对称的:
Cross[a, b] == -Cross[b, a]{a, b, c} = {{1, 2, 3, 4}, {1, 4, 9, 16}, {1, 8, 27, 81}};d = a⨯b⨯c{d.a, d.b, d.c}计算所有顺序的积;两个向量每次交换顺序只是改变了结果的正负:
Cross @@@ Permutations[{a, b, c}]应用 (10)
几何应用 (5)
u = {1, 2, 3};
v = {1, 4, 9};w = Cross[u, v]{w.u, w.v}w.{x, y, z} == 0u = RandomReal[1, 2]v = Cross[u]u.vn = 5;
uu = RandomReal[1, {n - 1, n}];
v = Apply[Cross, uu]Chop[uu.v]a = {1, 2, -2};
b = {1, -1, 2};
Norm[a⨯b]与用 Area 直接计算的结果相比较:
Area[Parallelepiped[{0, 0, 0}, {a, b}]]Norm[a]Norm[b]Sin[VectorAngle[a, b]]Graphics3D[Parallelepiped[{0, 0, 0}, {a, b}]]Frenet–Serret 系统用向量基和标量函数中对每个空间曲线的属性进行编码. 考虑以下曲线:
c[t_] := {Cos[t], Sin[t], (t/2π)}{Subscript[e, 1], Subscript[e, 2], Subscript[e, 3]} = Simplify[{Normalize[c'[t]], Normalize[c'[t]⨯(c''[t]⨯c'[t])], Normalize[c'[t]⨯c''[t]]}, t∈Reals]{Table[Subscript[e, i].Subscript[e, j], {i, 3}, {j, 3}], Subscript[e, 1]⨯Subscript[e, 2] == Subscript[e, 3]}//Simplify{κ, τ} = Simplify[{(Norm[c''[t]⨯c'[t]]/Norm[c'[t]]^3), (c'[t].(c''[t]⨯c'''[t])/Norm[c'[t]⨯c''[t]]^2)}, t∈Reals]用 FrenetSerretSystem 可视化答案:
Simplify[{{κ, τ}, {Subscript[e, 1], Subscript[e, 2], Subscript[e, 3]}} == FrenetSerretSystem[c[t], t], t∈Reals]DynamicModule[{s}, Labeled[Show[ParametricPlot3D[c[t], {t, 0, 6π}, PlotRangePadding -> {.5, .5, .9}], Graphics3D[{AbsoluteThickness[2], StandardBlue, Arrow[{c[t], c[t] + Subscript[e, 1]}], StandardRed, Arrow[{c[t], c[t] + Subscript[e, 2]}], StandardPurple, Arrow[{c[t], c[t] + Subscript[e, 3]}]}] /. t -> Dynamic[s]], Animator[Dynamic[s], {0, 6π}], Top]]物理应用 (5)
F = Quantity[{0, 0, -10}, "Newtons"];
r = Quantity[{1.5, 3.2, 1.25}, "Meters"];r⨯Fm = Quantity[3, "Kilograms"];
v = Quantity[{1.5, 2.3, -3.4}, "Meters" / "Seconds"];
r = Quantity[{2.5, -3.3, 1.4}, "Meters"];r⨯(m v)求带有
电荷,速度为
,穿过
的磁场向正
方向移动的粒子受到的磁力:
q = Quantity[2, "Coulombs"];
v = QuantityArray[{3, -4, 5}, "Meters" / "Seconds"];
B = QuantityArray[{0, 0, 0.075}, "Teslas"];q v ⨯B用 UnitSimplify 获取预期的单位:牛顿,用 MatrixForm 格式化向量:
UnitSimplify[%]//MatrixFormr[t_] := {0, Cos[t^2], Sin[t^2]}ω = (r'[t]⨯r''[t]/r'[t].r'[t])//Simplifyr'[t] == ω⨯r[t]Subscript[a, perp] = ω⨯r'[t]Simplify[Norm[Subscript[a, perp]] == Norm[ω]Norm[r'[t]] == (r'[t].r'[t]/Norm[r[t]]), t∈Reals]Simplify[Norm[Subscript[a, perp]] == (r'[t].r'[t]/Norm[r[t]]), t∈Reals]α = D[ω, t]Subscript[a, par] = α⨯r[t]r''[t] == Subscript[a, par] + Subscript[a, perp]固定三维向量的叉积可以用矩阵乘法表示,这在研究旋转运动时很有用. 构建表示线性算符
的反对称矩阵,其中
是关于
轴的角速度:
Overscript[ω, ⇀] = {0, 0, 2};(Subscript[ℒ, L] = Map[Cross[#, Overscript[ω, ⇀]]&, IdentityMatrix[3]])//MatrixFormSubscript[ℒ, L]. {x, y, z} == Overscript[ω, ⇀]⨯{x, y, z}(rot[t_] = MatrixExp[t Subscript[ℒ, L]])//MatrixForm用 RotationMatrix 验证
:
rot[t] == RotationMatrix[Norm[Overscript[ω, ⇀]]t, {0, 0, 1}]Overscript[r, ⇀] = rot[t].{x, y, z}Overscript[v, ⇀] = Overscript[ω, ⇀]⨯Overscript[r, ⇀](Overscript[v, ⇀]⨯Overscript[ω, ⇀]/Overscript[ω, ⇀].Overscript[ω, ⇀])//ExpandWith[{w = Overscript[ω, ⇀], x = rot[s].{1, 1, 1}}, Animate[Legended[Graphics3D[{AbsoluteThickness[3], StandardRed, Arrow[{{0, 0, 0}, w}], StandardBlue, Arrow[{{0, 0, 0}, x}], StandardCyan, Arrow[{{0, 0, 1}, x}], StandardPurple, Translate[Arrow[{{0, 0, 0}, w⨯x}], x]}, PlotRange -> {{-3, 3}, {-3, 3}, {0, 2}}], SwatchLegend[{StandardRed, StandardBlue, StandardPurple, StandardCyan}, {ω, r[t], v[t] == ω⨯r[t], Subscript[r, "⟂"] == (v[t]⨯ω/ω.ω)}]], {{s, 0, t}, 0, 2π}]]属性和关系 (10)
如果 u 和 v 是线性无关的,u×v 是非零向量,并垂直于 u 和 v:
{u, v} = RandomInteger[{-9, 9}, {2, 3}]w = Cross[u, v]{u.w, v.w}u = RandomReal[1, 3];
v = RandomReal[1] u;Chop[Cross[u, v]]{u1, u2} = RandomReal[1, {2, 3}];
Norm[u1⨯u2] == Norm[u1]Norm[u2]Sin[VectorAngle[u1, u2]]Cross[u1,…,uk] 的范数是 ui 形成的 k 维平行六面体的度量:
{u1, u2} = {{5, -9, 6}, {-7, 5, 3}};
p = Parallelepiped[{0, 0, 0}, {u1, u2}];
Norm[u1⨯u2] == Area[p] == RegionMeasure[p, 2]{v1, v2, v3} = {{8, -5, 5, -1}, {6, 7, 8, -2}, {-7, 6, -3, 2}};
p = Parallelepiped[{0, 0, 0, 0}, {v1, v2, v3}];
Norm[v1⨯v2⨯v3] == Volume[p] == RegionMeasure[p, 3]Cross 是反对称的:
{u, v} = RandomReal[1, {2, 3}];Cross[u, v] == -Cross[v, u]Cross 关于每个参数都是线性的:
Subscript[u, 1] = {Subscript[x, 1], Subscript[y, 1], Subscript[z, 1]};
Subscript[u, 2] = {Subscript[x, 2], Subscript[y, 2], Subscript[z, 2]};
Subscript[u, 3] = {Subscript[x, 3], Subscript[y, 3], Subscript[z, 3]};Expand[Cross[a Subscript[u, 1] + Subscript[u, 3], Subscript[u, 2]] == a Cross[Subscript[u, 1], Subscript[u, 2]] + Cross[Subscript[u, 3], Subscript[u, 2]]]Expand[Cross[Subscript[u, 1], b Subscript[u, 2] + Subscript[u, 3]] == b Cross[Subscript[u, 1], Subscript[u, 2]] + Cross[Subscript[u, 1], Subscript[u, 3]]]由于 Cross 是线性的,可用矩阵乘法表示算符
:
Overscript[ω, ⇀] = {Subscript[ω, x], Subscript[ω, y], Subscript[ω, z]};(Subscript[ℒ, L] = Map[Cross[#, Overscript[ω, ⇀]]&, IdentityMatrix[3]])//MatrixFormSubscript[ℒ, L].{a, b, c} == Overscript[ω, ⇀]⨯{a, b, c}(Subscript[ℒ, R] = Map[Cross[Overscript[ω, ⇀], #]&, IdentityMatrix[3]])//MatrixFormSubscript[ℒ, R].{a, b, c} == {a, b, c}⨯Overscript[ω, ⇀]Subscript[ℒ, R] == Transpose[Subscript[ℒ, L]] == -Subscript[ℒ, L]
维中的 Cross 是将
个向量缩并为 Levi-Civita 张量:
α = Array[a, {4}];
β = Array[b, {4}];
γ = Array[c, {4}];
Cross[α, β, γ] === TensorContract[αβγLeviCivitaTensor[4, List], {{1, 4}, {2, 5}, {3, 6}}]
维中的
个向量的 Cross 是 (
乘以张量积的霍奇对偶:
{a, b, c, d}⨯{d, e, f, g}⨯{h, i, j, k}(4 - 1)!HodgeDual[{a, b, c, d}{d, e, f, g}{h, i, j, k}]% == %%
个
-向量的 TensorWedge 的霍奇对偶与这些向量的 Cross 相同:
v1 = {a, b, c};
v2 = {x, y, z};Normal@HodgeDual[v1v2] === Cross[v1, v2]v1 = {a, b, c, d};
v2 = {x, y, z, t};
v3 = {p, q, r, s};Normal@HodgeDual[v1v2v3] === Cross[v1, v2, v3]TensorWedge 可以处理更高阶的形式:
M = Array[m, {5, 5}];
Q = Array[q, {5, 5}];HodgeDual[MQ]互动范例 (1)
可视化
-
平面中两个可拖动的向量、它们的叉积(平行于
轴)以及它们形成的平行四边形:
Manipulate[
DynamicModule[{vv, ww, angles, cros},
vv = Normalize[v];ww = Normalize[w];
cros = First[PadLeft[v, 3]⨯PadLeft[w, 3]];
angles = Sort[N@{ArcTan@@vv, ArcTan@@ww}];Graphics[{IconizedObject[«x ticks»], {If[showPar, {If[cros > 0, RGBColor[1, 0.6, 0.7000000000000001, 0.5], RGBColor[0.6, 0.7000000000000001, 1, 0.5]], Polygon[{{0, 0}, v, v + w, w}]}]},
{LightDarkSwitched[GrayLevel[0]], Arrow[{{0, 0}, v}]}, {LightDarkSwitched[GrayLevel[0]], Arrow[{{0, 0}, w}]}, AbsoluteThickness[3], {If[cros < 0, RGBColor[0.4, 0.6, 1], RGBColor[0.98, 0.56, 0.17]], Circle[{0, 0}, .3, If[-Subtract@@angles < π, angles, Reverse[angles] + {0, 2π}]]}, {If[cros > 0, RGBColor[0.98, 0.56, 0.17], RGBColor[0.4, 0.6, 1]], Arrow[{{0, 0}, cros{-1 / 2, -1 / 2}}]}, Text["OverscriptBox[v, ⇀]", v 3 / 4, {1, 1}], Text["OverscriptBox[w, ⇀]", 3w / 4, {1, 1}], Text["OverscriptBox[v, ⇀] ⨯ OverscriptBox[w, ⇀]", cros{-1 / 2, -1 / 2}, {1, 1}]}, Axes -> True, PlotRange -> 3, AxesLabel -> {y, z}, ImageSize -> {400, 400}, PlotLabel -> Grid[
{{If[cros > 0, Style["acute or obtuse angle", RGBColor[0.98, 0.56, 0.17]], Style["reflex angle", RGBColor[0.4, 0.6, 1]]], Norm["OverscriptBox[v, ⇀] ⨯ OverscriptBox[w, ⇀]"] == DecimalForm[Abs[cros], {4, 3}]}}, ItemSize -> 10]]],
{{showPar, True, "show parallelogram"}, {True, False}},
{{v, {1., 0.5}}, {-3, -3}, {3, 3}, Locator, Appearance -> None, Exclusions -> {0, 0}},
{{w, {-2., 1.}}, {-3, -3}, {3, 3}, Locator, Appearance -> None, Exclusions -> {0, 0}}
]相关指南
-
▪
- 向量运算 ▪
- 矩阵和线性代数 ▪
- 符号向量、矩阵和数组
历史
1996年引入 (3.0)
文本
Wolfram Research (1996),Cross,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Cross.html.
CMS
Wolfram 语言. 1996. "Cross." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/Cross.html.
APA
Wolfram 语言. (1996). Cross. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Cross.html 年
BibTeX
@misc{reference.wolfram_2026_cross, author="Wolfram Research", title="{Cross}", year="1996", howpublished="\url{https://reference.wolfram.com/language/ref/Cross.html}", note=[Accessed: 15-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_cross, organization={Wolfram Research}, title={Cross}, year={1996}, url={https://reference.wolfram.com/language/ref/Cross.html}, note=[Accessed: 15-September-2026]}