В R
мне нужно решить систему линейных уравнений (Ax=b), где b=0. Используя solve()
, он просто возвращает нулевой вектор для ответа, но мне нужны ненулевые решения системы. Есть ли способ для этого?
Как решить систему линейных уравнений с b=0 в R
Ответы (1)
Я думаю, вы ищете нулевое пространство матрицы A
. Пытаться :
library(MASS)
Null(t(A))
R > (A <- matrix(c(1,2,3,2,4,7), ncol = 3, byrow = T))
[,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 = T))
[,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
Будь осторожен. Есть ошибки округления.
Также обозначим r
как ранг матрицы A
, а q
как количество столбцов матрицы A
. Если r = q, то единственным ответом является нулевой вектор. Если r > q, то решения нет. Если r ‹ q, мы можем использовать приведенную выше функцию Null
, чтобы получить нулевое пространство A
, но помните, что они не уникальны ни с точки зрения величины, ни с точки зрения направлений.
Ссылка: http://stat.ethz.ch/R-manual/R-patched/library/MASS/html/Null.html
person
liuminzhao
schedule
22.04.2013
A
обратимо, единственным ответом будет нулевой вектор. - person liuminzhao   schedule 22.04.2013eigen
?eigen(B)
- person liuminzhao   schedule 22.04.2013eigen()
) - person Mahmoud   schedule 22.04.2013eigen
, найдите корень определителя B - lambda*I, используя R (det
и?uniroot
) - person dickoa   schedule 22.04.2013