Excel嵌套MMULT数组公式计算结果生成逻辑分步拆解咨询


嵌套MMULT公式计算逻辑分步拆解
注意:单独输出=MMULT(C27:D27,H27:I28)时,因仅选中单个单元格输入数组公式,Excel仅返回结果数组的第一个元素5.763564268,并非该MMULT计算结果只有单个数值,这是造成结果认知偏差的核心原因。
整个公式{=MMULT(MMULT(C27:D27,(H27:I28)),TRANSPOSE(C27:D27))}严格遵循矩阵乘法规则,从内到外分三步计算:
- 第一步:确认原始矩阵维度
- 单元格区域
C27:D27为1行2列行向量,记为X = [x1, x2],x1、x2分别对应C27、D27的单元格数值 - 单元格区域
H27:I28为2行2列方阵,记为M = [[m11, m12], [m21, m22]],四个值分别对应H27、I27、H28、I28的单元格数值
- 单元格区域
- 第二步:计算两个内层运算结果
- 内层第一个MMULT:
X × M
矩阵乘法要求前矩阵列数等于后矩阵行数,此处1行2列 × 2行2列,输出为1行2列行向量Y = [y1, y2],计算规则:y1 = x1*m11 + x2*m21 = 5.763564268 // 单单元格输入时返回的数组首元素 y2 = x1*m12 + x2*m22 // 单单元格输入时未显示的第二个结果值 - 转置运算:
TRANSPOSE(C27:D27)
将1行2列的行向量X转置为2行1列的列向量X^T = [[x1], [x2]]
- 内层第一个MMULT:
- 第三步:计算外层MMULT得到最终值
外层运算为Y × X^T,维度匹配规则为1行2列 × 2行1列,最终输出1行1列的单个标量值,即得到的35.05425707,计算规则:最终结果 = y1*x1 + y2*x2 = 35.05425707
该公式本质是线性代数中的二次型计算X*M*X^T,最终输出单个数值,因此单单元格输入数组公式可直接返回完整结果,不会出现仅返回数组首元素的情况。
内容的提问来源于stack exchange,提问作者Babiqowski
相关产品推荐
相关产品推荐

