首页 > 解决方案 > R:在 matlib 中使用 Solve 求解方程组,其中 #unknowns > # eqns

问题描述

library(matlib)
A <- matrix(c(1, 1/7, 1, 2/7, 1, 3/7, 1, 4/7, 1, 5/7, 1, 6/7), 2, 6)
b <- c(1,0.4)
showEqn(A, b)

在此处输入图像描述

我正在尝试使用该matlib函数来帮助我找到 $x_1, ..., x_6$ 的值,以使它们满足上述等式。我知道 $x_1, ..., x_6$ 有许多不同的组合,因此可以满足上述 2 个方程。我怎样才能找到 $x_1, ...., x_6$ 的值?我尝试使用Solve(A, b, fractions = TRUE),但这并没有给我一套可能的解决方案。

标签: rlinear-algebra

解决方案


如果未知数大于您拥有的方程数,则解的数量是无限的。实际上,如果差为 1,则解为直线,如果差为 2,则解为平面,依此类推。

一般来说,如果变量数为 N,方程数为 M(我们可以假设方程是线性独立的),则解将是嵌入 N 维空间中的 NM 维形状。

因此,通过求解 N 大于 M 的系统,您将获得一个描述某些 x_i 之间关系的方程,例如一条线的方程。R 主要设计用于处理数字和执行算术而不是处理符号数学,它可能不是最适合此目的的软件。但是,如果您想继续使用 R,有一些库可以提供这种可能性,例如,请参阅这篇文章。


推荐阅读