我有一个由22个线性方程(确切地说是22个方程和22个未知数)组成的系统,在Excel电子表格中动态生成。是否有一种方法让Excel解决这个系统并为每个未知变量产生一个值? 另一个SO问题提供了很多关于解决这类方程所使用算法的好信息。特别是Cramer's rule,但我不确定如何在Excel中实现它。任何帮助都将不胜感激!
这个页面提供了以下简单的方法:
在nxn的范围内输入系数矩阵。
在n行的列中输入常量向量。选择一个空的n行列。重要的是您不只选中一个单元格。
在公式文本框中键入=MMULT(MINVERSE(coefficients_matrix_range),constants_vector_range)并按[CTRL] [SHIFT] [ENTER]。重要的是您不仅仅按[ENTER]。
这应该足够使用,因为您只有一个小系统(22x22)。虽然理想情况下,您不会直接求逆矩阵,在这种情况下也不应该有影响。
一定不要使用克拉默法则。由于其相当差的数值特性,它更具有理论而非实际意义。
Excel的LINEST函数可以实现这一功能,并且在许多情况下比MMULT(MINVERSE(...)...)返回更好的结果。
您可能还会发现LOGEST、GROWTH和TREND函数很有用。
你绝不能考虑使用 Cramer 法则来解决线性系统!它非常低效,即使对于小型系统也无法执行。
Excel 不是解决线性系统的正确工具。如果我是你,我会编写一个简单的 Python 脚本来读取 Excel 文件,使用 numpy 解决方程,并将结果保存在一个 Excel 可以读取的文件中。(如果可能的话,最好完全避免使用 Excel)。