You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Excel中无需显式构建子矩阵,直接用MMULT和MINVERSE求解指定子矩阵对应的方程组?

如何在Excel中无需显式构建子矩阵,直接用MMULT和MINVERSE求解指定子矩阵对应的方程组?

嘿,这个需求完全可以实现,不用手动复制粘贴子矩阵那么麻烦!核心思路是用INDEX函数来动态提取你需要的行和列,生成MINVERSE能识别的数组输入,直接套进MMULT和MINVERSE的组合里就行,一步到位。

我给你一步步拆解怎么操作:

1. 明确要保留的行和列

首先得理清:你要从原矩阵(F2:I5)里去掉第2行(b开头的那行)和第2列(a₂、b₂那列),所以需要保留的是:

  • 行:原矩阵的第1、3、4行(对应Excel里的F2:I2、F4:I4、F5:I5)
  • 列:原矩阵的第1、3、4列(对应Excel里的F2:F5、H2:H5、I2:I5)
    (这里的行/列号是相对于原矩阵区域的序号,不是Excel的绝对行号哦)

2. 用INDEX构建动态子矩阵

INDEX函数支持用数组作为行/列参数,直接返回对应的子数组,刚好能满足MINVERSE的输入要求。

假设你的方程组是:系数矩阵是保留的3×3子矩阵,常数项是原矩阵对应行的最后一列(也就是x、z、w所在的列),那求解的公式可以这么写:

=MMULT(MINVERSE(INDEX($F$2:$I$5, {1,3,4}, {1,3,4})), INDEX($F$2:$I$5, {1,3,4}, 4))

公式拆解:

  • INDEX($F$2:$I$5, {1,3,4}, {1,3,4}):从原矩阵里提取第1、3、4行,第1、3、4列的所有单元格,生成你需要的3×3系数矩阵数组,直接传给MINVERSE求逆。
  • INDEX($F$2:$I$5, {1,3,4}, 4):提取保留行的第4列(也就是x、z、w这些常数项),生成3×1的常数项数组。
  • MMULT(...):把逆矩阵和常数项数组相乘,得到方程组的解。

3. 注意事项

  • 如果是Excel 365/2021版本:直接输入公式按回车就行,结果会自动溢出到对应的单元格里。
  • 如果是旧版Excel:需要先选中3个连续的单元格(因为解是3个值),输入公式后按Ctrl+Shift+Enter作为数组公式执行。
  • 一定要确保你提取的3×3系数矩阵是可逆的(行列式不为0),否则MINVERSE会返回#NUM!错误。

进阶优化(可选)

要是你以后需要调整保留的行/列,不想每次都改公式里的数组,可以给行号、列号定义名称:

  1. 点击「公式」选项卡→「定义名称」
  2. 比如定义RowsToKeep为={1,3,4},CoeffCols为={1,3,4}
  3. 公式就改成:
=MMULT(MINVERSE(INDEX($F$2:$I$5, RowsToKeep, CoeffCols)), INDEX($F$2:$I$5, RowsToKeep, 4))

这样后续修改行/列的话,直接改名称的数组就行,更灵活。

备注:内容来源于stack exchange,提问作者EoDmnFOr3q

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 13:03:08