Это недоопределенная система линейных уравнений. Вы можете получить все его решения с помощью инверсии Мура-Пенроуза A
. Пусть Ainv
будет инверсией Мура-Пенроуза A
. Тогда все решения A %*% x = b
задаются как Ainv %*% b + (I - Ainv %*% A) %*% w
, где I
- единичная матрица, а w
- любой вектор.
A <- rbind(c(100,100,0), c(325,0,500))
b <- c(100,500)
Ainv <- MASS::ginv(A)
w <- c(1,2,3) # arbitrary
one_solution <- Ainv %*% b + (diag(3L) - Ainv %*% A) %*% w
A %*% one_solution
# [,1]
# [1,] 100
# [2,] 500