Если это линейные уравнения, solve
может это сделать.
lhs <- matrix(c(3, -2, 5,
7, 4, -8,
5, -3, -4), nrow=3, ncol=3, byrow=TRUE)
rhs <- c(7, 3, -12)
sol <- solve(lhs, rhs)
sol
# [1] 1 3 2
3*sol[1] -2*sol[2] + 5*sol[3]
#[1] 7
Для нелинейного уравнения существуют библиотеки, такие как nleqslv
, rootSolve
, BB
.Например,
fun <- function(x) {
lhs %*% x - rhs
}
library(nleqslv)
nleqslv(c(1, 1, 1), fun)
# $x
# [1] 1 3 2
#
# $fvec
# [1] -1.776357e-15 0.000000e+00 -3.552714e-15
#
# $termcd
# [1] 1
#
# $message
# [1] "Function criterion near zero"
#
# $scalex
# [1] 1 1 1
#
# $nfcnt
# [1] 1
#
# $njcnt
# [1] 1
#
# $iter
# [1] 1
fun
может быть нелинейной функцией.