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

В R мне нужно решить систему линейных уравнений (Ax=b), где b=0. Используя solve(), он просто возвращает нулевой вектор для ответа, но мне нужны ненулевые решения системы. Есть ли способ для этого?


person Mahmoud    schedule 22.04.2013    source источник
comment
Опубликуйте свой код и пример для A, который вы используете.   -  person IRTFM    schedule 22.04.2013
comment
Я не очень понимаю, что вы ищете. Вы ищете функцию, которая решает уравнение? Вы ищете математическое объяснение?   -  person ZanattMan    schedule 22.04.2013
comment
Если A обратимо, единственным ответом будет нулевой вектор.   -  person liuminzhao    schedule 22.04.2013
comment
Я ищу функцию R, которая решает такую ​​​​систему. A представляет собой (B-лямбдаI) в (B-лямбдаI)x=0. На самом деле я хочу найти собственные векторы матрицы B, когда у меня есть собственные значения.   -  person Mahmoud    schedule 22.04.2013
comment
проверить функцию eigen? eigen(B)   -  person liuminzhao    schedule 22.04.2013
comment
Может быть, это четкая версия моего вопроса: как найти собственные векторы матрицы, когда у нас есть ее собственные значения (в R) (без использования eigen())   -  person Mahmoud    schedule 22.04.2013
comment
если вы не хотите использовать eigen, найдите корень определителя B - lambda*I, используя R (det и ?uniroot)   -  person dickoa    schedule 22.04.2013


Ответы (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