使用求解函数求解R中的方程

时间:2017-03-16 07:14:04

标签: r matrix equation

我是JeongHyun。

我认为这与基本的R逻辑有关,但无论如何,我很困惑'mat'和'b'是如何解决的,因为'mat'是3乘3矩阵,'b'是1乘3矩阵。 据我所知,前矩阵的ncol和后一矩阵的nrow应该是相同的,但在这种情况下它们不相同。

x=c(1,3,5,2,5,1,2,3,8)
x
#[1] 1 3 5 2 5 1 2 3 8

mat=matrix(x,nrow=3,ncol=3,byrow=T)
mat

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    5    1
[3,]    2    3    8

b=c(10,8,3)
b
#[1] 10  8  3

solve(mat,b)
[1] -9.28  5.16  0.76

请告诉我它是如何运作的。

谢谢。

1 个答案:

答案 0 :(得分:1)

在这种情况下,R会将向量视为列矩阵。 证明:

x=c(1,3,5,2,5,1,2,3,8)
x
#[1] 1 3 5 2 5 1 2 3 8

mat=matrix(x,nrow=3,ncol=3,byrow=T)
mat

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    5    1
[3,]    2    3    8

b=c(10,8,3)
b
#[1] 10  8  3

b<-as.matrix(b)

solve(mat,b)
      [,1]
[1,] -9.28
[2,]  5.16
[3,]  0.76

b1<-t(b)

solve(mat,b1)
#Error in solve.default(mat, b1) : 
  'b1' (1 x 3) must be compatible with 'a' (3 x 3)