什么是哈达玛积?
哈达玛积(又称逐元素积、按位积或 Schur 积)是指对两个维度完全相同的矩阵 A 与 B,将对应位置的元素逐一相乘,得到的结果矩阵 C 中每个元素都是 A、B 对应元素的乘积,记作 \(C = A \circ B\)。这里要特别强调:它不是普通的矩阵乘法,过程中不存在沿内层下标求和的步骤,只是简单地一个元素对一个元素直接相乘。
如何使用本计算器
先设定两个矩阵共用的行数(j)和列数(k)。然后分别输入矩阵 A 和矩阵 B,每行占一行文本,行内的数值用空格或逗号分隔。如果想多显示或少显示几位小数,可以选择合适的显示精度(有效数字位数)。两个矩阵必须严格地都是 j 行 k 列——一旦形状不一致,哈达玛积就没有定义,计算器会返回错误提示。
公式详解
对于任意行下标 j 与列下标 k,结果都满足 $$\left(A \circ B\right)_{jk} = a_{jk} \cdot b_{jk}, \quad j = 1 \ldots \text{Rows}, \; k = 1 \ldots \text{Cols}$$输出矩阵 C 与输入矩阵保持相同的 \(j \times k\) 形状。该运算满足交换律(\(A \circ B = B \circ A\))和结合律,其单位元是全 1 矩阵。各元素可以是任意实数,包括 0 和负数;乘以 0 直接得到 0,而且整个过程不涉及除法,因此完全不存在除以 0 的风险。
实例演算
设 \(A = [[1, 2], [3, 4]]\),\(B = [[5, 6], [7, 8]]\)。逐元素相乘可得:\(c_{11} = 1 \times 5 = 5\),\(c_{12} = 2 \times 6 = 12\),\(c_{21} = 3 \times 7 = 21\),\(c_{22} = 4 \times 8 = 32\),于是 \(C = [[5, 12], [21, 32]]\)。作为对比,普通矩阵乘积 \(A \cdot B\) 的结果是 \([[19, 22], [43, 50]]\)——两者明显不同,这也再次印证了本工具采用的是逐元素运算。
常见问题
向量和标量能用吗? 可以。行向量(\(1 \times k\))、列向量(\(j \times 1\))以及标量(\(1 \times 1\))都适用,只要 A 与 B 的形状保持一致即可。
如果 A 和 B 尺寸不同怎么办? 那么哈达玛积就无定义,必须使用维度完全相同的矩阵。计算器会标记出这种尺寸不匹配的情况。
精度下拉框有什么作用? 它只影响结果显示多少位有效数字,纯粹是一个格式化选项,并不会改变底层的实际计算结果。