функция Excel "поиск решающей функции в R, но для двух или более неизвестных - PullRequest
0 голосов
/ 23 сентября 2018

В этом посте функция Excel "поиск решающей функции в R , G5W предоставил хорошее решение, но это уравнение с одним неизвестным членом (X) Что если мы имеем дело с двумя неизвестными? Пример

3x - 5y = 2

Как искать решение "?Необходимо решить следующее уравнение путем объединения значений x и y, чтобы получить 2 в качестве результата.(при ручном расчете в этом простом уравнении x = 4 и y = 2)

или, если мы имеем дело с тремя неизвестными, что-то вроде этого enter image description here

AsКак правило, такие уравнения могут иметь бесконечное число решений, как вывести не более трех из них?

Как функция uniroot адаптируется к такому уравнению.

1 Ответ

0 голосов
/ 23 сентября 2018

Если это линейные уравнения, 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 может быть нелинейной функцией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...