我有一个22 linear equations的系统(正好22个方程和22个未知数),它们是在Excel电子表格中动态生成的。有没有办法让Excel解决系统并为每个未知变量生成一个值?
Another SO question有很多关于用于解决此类方程的算法的良好信息。 Cramer's rule看起来很有希望,但我不确定如何在Excel中实现它。
感谢任何帮助!
答案 0 :(得分:10)
This page提供了以下简单方法:
在nxn中输入系数矩阵 范围。
输入矢量 n-tall列中的常量。选择一个 空白的高柱。这很重要 你不只有一个细胞 地选择。
- 醇>
类型, = MMULT(MINVERSE(coefficients_matrix_range), 公式中的constants_vector_range) 文本框并按 [CTRL] [SHIFT] [ENTER]。这很重要 不要只按[ENTER]。
这应该可以正常工作,因为你只有一个小系统(22x22)。理想情况下,你不会直接反转矩阵,但在这种情况下无关紧要。
你绝对不希望克莱默的统治。由于其相当差的数值特性,它更多的是理论上的而不是实际的兴趣。
答案 1 :(得分:2)
Microsoft's Solver Foundation怎么样?我似乎记得在快递版附带的文档中有一些较小的联立方程组的例子。
答案 2 :(得分:1)
你不应该考虑克莱默的规则来解决线性系统!效率非常低,即使是小型系统也无法实现。
Excel不是解决线性系统的正确工具。如果我是你,我会写一个简单的python脚本来读取excel文件,解决方程式(使用numpy)并将结果保存在excel可以读取的文件中。 (更好的是,如果可以的话,完全避免使用Excel。)
答案 3 :(得分:1)
Excel LINEST函数应该这样做 - 并且在很多情况下会返回比MMULT(MINVERSE(...)...)更好的结果。
您可能还会发现LOGEST,GROWTH和TREND函数很有用。
答案 4 :(得分:1)
如果您在逆矩阵计算中遇到任何问题,例如上/下流/截断等,您可以随时使用解算器 - 否则在C中获取数字配方的副本并转换为VBA。
答案 5 :(得分:1)
可以linear equation solver我们可以用数学求解器通过使用数学方程根位于求解器的两个指数部分之间,但找到更好的线性方程求解器方法。