Dot

a.b.cDot[a,b,c]

给出向量、矩阵和张量的乘积.

更多信息

  • ab 是适当维数的列表时,a.b 给出一个明确的结果. 它将 a 中最后一个指标与 b 中第一个指标之间建立约定.
  • Dot 的各种应用:
  • {a1,a2}.{b1,b2}向量的标积
    {a1,a2}.{{m11,m12},{m21,m22}}
    向量和矩阵的乘积
    {{m11,m12},{m21,m22}}.{a1,a2}
    矩阵和向量的乘积
    {{m11,m12},{m21,m22}}.{{n11,n12},{n21,n22}}
    两个矩阵的乘积
  • 对两个张量 使用 Dot 的结果是张量 Dot 应用到一个 维张量和一个 维张量得到一个 维的张量. »
  • 可将 Dot 应用于 SparseArray 和结构化数组对象. 可能的情况下,它将返回与输入相同类型的对象. »
  • 对于所有参数,Dot 都是线性的. » 它没有定义向量上的复(厄米特)内积. »
  • 当它的参数不是列表或稀疏数组时,Dot 保持不计算. 它具有 Flat 属性.

范例

打开所有单元关闭所有单元

基本范例  (4)

三维向量的标量积:

二维向量的标量积:

如果向量的内积为零,则向量是互相垂直的:

可视化向量:

矩阵和向量的积

向量和矩阵的积 TemplateBox[{v}, Transpose]M

矩阵和两个向量的积 TemplateBox[{v}, Transpose]Mw

两个矩阵的积:

以其他顺序相乘:

使用长方形矩阵:

范围  (28)

向量的点积  (7)

机器精度向量的标量积:

精确向量的点积:

符号向量的内积:

任意精度向量的点积:

Dot 允许复数输入,但不会取任意一个输入的共轭:

如果想对复数或 Hermitian 内积进行计算,对其中一个输入应用 Conjugate

一些资料,特别是在数学文献中,取第二个参数的共轭:

用两个内积计算 u 的范数:

Norm 验证结果:

稀疏向量的点积:

计算两个 QuantityArray 向量的标量积:

矩阵-向量相乘  (5)

定义一个 的矩阵:

定义一个 2-向量和一个 3-向量:

矩阵只能从左侧被 2-向量相乘:

以相反的顺序相乘会因维数不兼容引发出错消息:

同样, 矩阵只能从右侧被 3-向量相乘:

同时对矩阵两边相乘:

定义一个方阵和一个兼容的向量:

乘积 m.vv.m 返回不同的向量:

乘积 v.m.v 是一个标量:

定义一个列矩阵和一个行矩阵 cr,其中的元素与 v 一样:

涉及 mcr 的乘积与涉及 mv 的乘积的元素一样,但都是矩阵:

此外,产品必须按照符合矩阵维数的顺序完成:

定义一个矩阵和两个向量:

因为 是一个向量,允许 这样的乘积:

注意,它实际上是在矩阵的左侧而不是右侧乘以

稀疏矩阵和稀疏向量的乘积是稀疏向量:

将结果格式化为行矩阵:

一个稀疏矩阵和一个普通向量的乘积是一个正规向量:

如果可能,结构化矩阵与向量的乘积将保留结构:

正规矩阵与结构化向量的乘积可能具有向量的结构:

矩阵-矩阵相乘  (11)

实机器数矩阵相乘:

复矩阵的积:

精确矩阵的积:

以另一种顺序相乘:

可视化输入和输出矩阵:

任意精度的矩阵相乘:

因为 ,这些矩阵不能以相反的顺序相乘:

符号矩阵的积:

有限域元素矩阵的乘积:

CenteredInterval 矩阵的乘积:

mn 的随机表示 mrepnrep

验证 mn 包含 mrepnrep 的乘积:

稀疏矩阵的乘积是另一个稀疏矩阵:

格式化结果:

如果可能,结构化矩阵的乘积会保留结构:

格式化结果:

矩阵的三次方:

MatrixPower 的结果相比较:

DotApply (@@) 和 ConstantArray 计算矩阵的 10 次方:

验证结果:

高效计算大型矩阵相乘:

高阶数组  (5)

Dot 适用于任意阶数的数组:

结果的维数是将输入的相同的维数折叠后的维数:

只要有相同的维数,任何组合都是允许的:

创建一个三个维数都相同的三阶数组:

创建维数与该数组一致的三个向量:

是完全缩并 ,将 的最后一层相配,将 的第一层相配:

是不同的缩并 ,将 的第一层相配,将 的最后一层相配:

m 的两个层分别与 a 的第二层和第三层进行缩并:

两个稀疏数组的 Dot 通常是另一个稀疏数组:

一个稀疏数组与一个普通列表的 Dot 可能是另一个稀疏数组或普通列表:

格式化三阶数组:

两个 SymmetrizedArray 对象的乘积通常是另一个对称数组:

新数组的对称性可能比任一输入的对称性复杂得多:

应用  (16)

投影和基  (6)

将向量 投影到由向量 决定的直线上:

可视化 以及在由 决定的直线上的投影:

将向量 投影到由向量 决定的平面上:

首先,将 替换为垂直于 的平面中的一个向量:

在平面上的投影是在 上的投影之和:

求垂直于平面的分量:

投影到平面的法线上以确认结果:

可视化平面、向量及其平行和垂直分量:

应用 GramSchmidt 过程根据以下向量构建正交基:

正交基 中的第一个向量是归一化的

对于后续向量,在归一化之前减去与前一个基向量平行的分量:

Orthogonalize 确认答案:

定义 的基向量:

验证基向量是正交的:

求一般向量相对于这些新基向量的分量:

验证这些相对于 的分量:

定义 的基向量:

通过显示由向量形成的矩阵具有非零行列式来验证它是一个基:

基矩阵的变化是列为 的矩阵的逆:

标准基中坐标为 的向量相对于 的坐标为

验证这些坐标可以给出向量

FrenetSerret 系统将每条空间曲线的属性编码到向量基和标量函数中. 考虑以下曲线:

通过减去平行投影,根据前三个导数构建一个正交基:

确保基为右手系的:

计算曲率 和扭矩 ,它们量化了曲线弯曲的程度:

FrenetSerretSystem 验证答案:

可视化曲线和相关的移动基,也称为框架:

矩阵和线性算子  (6)

如果 A TemplateBox[{A}, Transpose]=Id,则矩阵是正交矩阵. 证明旋转矩阵是正交的:

OrthogonalMatrixQ 确认:

如果 ,则矩阵是酉矩阵. 证明 Pauli 矩阵是酉矩阵:

UnitaryMatrixQ 确认:

如果 ,则矩阵是正规矩阵. 证明以下矩阵是正规矩阵:

NormalMatrixQ 确认:

正规矩阵包括许多其他类型的矩阵,为正规矩阵的特例. 酉矩阵是正规矩阵:

厄米特矩阵或自伴随矩阵 (A=TemplateBox[{A}, ConjugateTranspose]) 也是正规矩阵,如矩阵 所示:

但是,矩阵 不是已命名的正规矩阵,如酉矩阵或厄米特矩阵:

在量子力学中,具有有限多个状态的系统由单位向量表示,物理量由作用于它们的矩阵表示. 考虑一个自旋 1/2 的粒子,如电子. 它可能处于如下状态:

方向上的角动量由以下矩阵给出:

该状态的角动量是

该状态的角动量的不确定性是

可用类似方式计算 方向上的不确定性:

不确定性原理给出了不确定性乘积的下限,

来看一个线性映射

获取 的矩阵表示

创建一个要处理的向量:

使用不同的方法将线性映射应用于向量:

Dot 一起使用是最快的方法:

将单个矩阵应用于多个向量 ,可用 {v_i}.TemplateBox[{m}, Transpose] 来计算:

矩阵法比重复应用要快得多:

具有对称性的矩阵和数组  (4)

实对称矩阵 通过公式 给出二次形式 q:TemplateBox[{}, Reals]^n->TemplateBox[{}, Reals]

二次形式具有属性

相当于定义了以 TemplateBox[{}, Reals]^n 的变量表示的齐次二次多项式:

多项式的值域可以是 TemplateBox[{}, NonNegativeReals]TemplateBox[{}, NonPositiveReals]TemplateBox[{}, Reals]. 这里为 TemplateBox[{}, Reals]

可视化多项式:

正定实对称矩阵或度量矩阵 通过 来定义内积:

正定意味着对于 ,关联的二次型 为正:

注意 Dot 本身是与单位矩阵相关的内积:

对标准基应用 GramSchmidt 过程以获取正交基:

确认确认这个基对于内积 是正交的:

对于反对称矩阵 定义了一个 Hamiltonian 2-form

上验证条件:

全部为零:

但是,这种形式是非简并的,则 意味着

构建六个六维向量:

LeviCivitaTensor 构建六维全反对称数组:

计算全缩并 sum_( i_1... i_6) epsilon_(i_1,i_2,...,i_6)TemplateBox[{a, {i, _, 1}}, Superscript] TemplateBox[{b, {i, _, 2}}, Superscript]... TemplateBox[{f, {i, _, 6}}, Superscript]

这与由向量形成的矩阵的行列式相等:

根据 的反对称,反向缩并 (reversed contraction) 的区别是维度 上相差

属性和关系  (16)

对于每个参数,Dot 都是线性的:

对于实向量 Norm[v] 等于

对于复向量,模由 sqrt(v.TemplateBox[{v}, Conjugate])⩵sqrt(TemplateBox[{v}, Conjugate].v) 给出:

对于两个实向量,u_1.u_2=TemplateBox[{{u, _, 1}}, Norm] TemplateBox[{{u, _, 2}}, Norm]cos(theta) ,其中 之间的夹角:

向量的标量积是旋转不变的:

对于两个矩阵, 的第 和第 项是 的第 行与 的第 列的点积:

矩阵乘法是不可交换的,

MatrixPower 计算重复的矩阵相乘:

与直接计算的结果相比较:

b 对向量的作用与用 a 对向量作用四次的结果一样:

对于两个张量 是张量

对秩为 的张量和秩为 的张量应用 Dot 给出秩为 的张量:

对两个数组应用 DotInner 的特例:

Dot 实现了数组的标准内积:

使用 Times 做元素乘法:

可通过 TensorProductTensorContract 组合使用实现 Dot

DotFlatten 一起使用以缩并一个数组的多个层级与另一个数组的多个层级:

TensorReduce 可简化含有 Dot 的表达式:

可用 Dot 计算两个向量的 Outer

构建 uv 对应的列矩阵和行矩阵:

外积等于 c.r

一个行矩阵和列矩阵的 Dot 等于对应向量的 KroneckerProduct

可能存在的问题  (2)

Dot 实际上从右边处理多维向量,可以视为列向量:

Dot 实际上从左边边处理多维向量,可以视为行向量:

Dot 不给出 的标准内积:

对一个参数应用 Conjugate 以获取厄米特内积:

检查结果是否与 a 的模的平方一致:

Wolfram Research (1988),Dot,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Dot.html (更新于 2024 年).

文本

Wolfram Research (1988),Dot,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Dot.html (更新于 2024 年).

CMS

Wolfram 语言. 1988. "Dot." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2024. https://reference.wolfram.com/language/ref/Dot.html.

APA

Wolfram 语言. (1988). Dot. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Dot.html 年

BibTeX

@misc{reference.wolfram_2024_dot, author="Wolfram Research", title="{Dot}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/Dot.html}", note=[Accessed: 04-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_dot, organization={Wolfram Research}, title={Dot}, year={2024}, url={https://reference.wolfram.com/language/ref/Dot.html}, note=[Accessed: 04-November-2024 ]}