Решить систему линейных уравнений b=0

Я нашел этот код для решения системы линейных уравнений с b = 0, но я хотел бы знать, почему с первой матрицей возвращается только один столбец, а со второй матрицей возвращаются два столбца.

library(MASS)
Null(t(A))

R > (A <- matrix(c(1,2,3,2,4,7), ncol = 3, byrow = TRUE))
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    2    4    7
R > Null(t(A))
              [,1]
[1,] -8.944272e-01
[2,]  4.472136e-01
[3,]  7.771561e-16
R > (A <- matrix(c(1,2,3,2,4,6), ncol = 3, byrow = TRUE))
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    2    4    6
R > Null(t(A))
           [,1]       [,2]
[1,] -0.5345225 -0.8017837
[2,]  0.7745419 -0.3381871
[3,] -0.3381871  0.4927193

person antonio nuzzo    schedule 16.11.2018    source источник


Ответы (1)


library(MASS)

A <- matrix(c(1,2,3,2,4,7), ncol = 3, byrow = T)
t(A)
#>      [,1] [,2]
#> [1,]    1    2
#> [2,]    2    4
#> [3,]    3    7



B <- matrix(c(1,2,3,2,4,6), ncol = 3, byrow = T)
t(B)
#>      [,1] [,2]
#> [1,]    1    2
#> [2,]    2    4
#> [3,]    3    6

Из приведенного выше вы можете видеть, что в вашем последнем случае все строки являются линейной комбинацией друг друга. В вашем первом случае 2 строки представляют собой линейные комбинации. У вас ранг 2 против 1 и, следовательно, ответы 2 против 1.

person Jrakru56    schedule 16.11.2018
comment
Другой способ сказать это — сравнить qa <- qr(t(A));qa$rank с qb <- qr(t(B));qb$rank. Проголосовать. - person Rui Barradas; 16.11.2018
comment
Вот как это называется! Стыдно сказать, что ломал голову, пытаясь вспомнить, как называется минимальный базис. - person Jrakru56; 16.11.2018