解决R中的线性方程组

时间:2018-11-01 01:05:40

标签: r matrix

在以下情况下,我不知道如何进行操作,因为最后一个等式没有全部4个变量。因此使用了等式下方的代码,但这是错误的...有人知道前进的方式吗?

表情:

3a + 4b - 5c + d = 10

2a + 2b + 2c - d = 5

a -b + 5c - 5d = 7

5a + d = 4

代码:

 X <- matrix(c(3,4,-5,1,2,2,2,-1,1,-1,5,-5,5,0,0,1), 4, 4)
 y <- matrix(c(10,5,7,4), 4, 1)
 solve(X)%*%y #equivalent to solve(X, y)

1 个答案:

答案 0 :(得分:2)

byrow的参数matrix()设置为TRUE可以达到目的:

X <- matrix(c(3, 4,-5, 1,
              2, 2, 2,-1,
              1,-1, 5,-5,
              5, 0, 0, 1), 4, 4, byrow=TRUE)
y <- c(10, 5, 7, 4)
sol <- solve(X, y)

检查是否正确:

c(X %*% sol)
[1] 10  5  7  4

顺便说一下,solve(X, y)在计算上比solve(X) %*% y更有效。