【Excel】多元一次方程组求解计算器

1 灵感来源

看书,偶然看到“解联立方程组”的内容,描述了如何用数组公式minverse和mmult求解二元一次方程组,惊到了。
二元一次方程组,通过消元的方式,可以手动求解,这是小学就练习了无数次的知识点。
excel求解二元一次、或者多元多次方程组,可以用规划求解,这是大约17年我了解到的方法,也在工作生活中多次用到。
但是书里的方法大不一样。线性代数里的知识在excel里大展拳脚,我当时仿佛看到了新世界。跟着步骤练手,成了。
脑子里产生了一个新的念头:解二元、三元、N元,变量个数不同,求解的excel就有多少个(单元格区域大小不一样不能通用)。怎么才能把不同变量数的多元一次方程组做到一个模板里呢?
经过摸索练习,最后终于做成了想要的样子(2020/6/1)。

2 思路分析

求解的部分已经解决,利用书里介绍的方法:

  1. 整理方程式,将带系数的变量放在等号左边,常量放在等号右边
  2. 使用minverse函数计算系数矩阵的逆矩阵
  3. 使用mmult函数计算系数矩阵的逆矩阵乘以常量矩阵,即得变量的解。
    注:系数逆矩阵城西常量矩阵为什么就能得到变量的解,这一点我也没弄明白具体过程,大学时候学的线性代数已经完全还给老师了对不起

关键的问题在于,如何在变量数量不等的条件下,实现以上过程。
即:如何实现大小变化的矩阵的范围的引用。(假设行/列数为1-50。)
当时尝试了不少方法(原谅我是个摸索中前进的小白,那时候对offset不熟),最后,通过offset函数实现了目的。
注:印象中也尝试了其他函数实现不同范围的引用,但是范围之外的单元格由于计算不到,会显示错误。offset没有这个问题,故最后敲定offset。

3 实现步骤

【Excel】多元一次方程组求解计算器

3.1 变量数单元格设置

由上分析,如果要做成适用于多元一次方程组的求解计算器,变量的个数是一个重要的参数。故首先设置了一个单元格,用来填入变量的个数,即多元一次方程组的元数

3.2 系数、常量单元格设置

  1. 制作50×50的系数表
  2. 将方程式的变量的系数填入;
  3. 常量填写在系数单元格右侧(其他地方也可以,看个人喜好)。

注:此处设计的50×50系数矩阵,即解五十元一次方程组。理论上N元都可以,但是好像某个函数有参数限制,所以此处设置的50。具体哪个函数,找了一下,没找到,有兴趣的亲可以再求证了。

3.3 系数逆矩阵计算

【Excel】多元一次方程组求解计算器
使用minverse+offset函数,minverse计算系数逆矩阵,offset引用变量单元格的数值指定引用范围。
注:数组公式需按ctrl+shift+enter一起输入。

3.4 变量求解

【Excel】多元一次方程组求解计算器
使用mmult+offset函数计算系数矩阵的逆矩阵乘以常量矩阵,即得多元一次方程组变量的解。
注:数组公式需按ctrl+shift+enter一起输入。

4 总结&感想

总体来说,是线性代数+数组函数+offset一起协作解决了一个有点有趣又似乎没什么实际应用价值的问题。
不知道用到它的会是什么样的朋友,但是我相信它还是会遇到一直找它的小伙伴的~

【原创内容,引用请注明出处:https://blog.****.net/truly121314/article/details/107854989】