Из чистого любопытства мне интересно, есть ли функция/пакет, который позволяет решать простые нелинейные уравнения в R?
Допустим, я хочу (символически) решить 0 = C + 1/x^2
. Ожидаемый результат для приведенного выше примера: x = sqrt(-1/-C)
Я попробовал пакет Ryacas
:
library("Ryacas")
Solve(yacas("C+1/x^2"))
Это возвращает ошибку:
Ошибка в Sym("Solve(", x, ",", y, ")"): аргумент "y" отсутствует, без значения по умолчанию
Так я и сделал:
Solve(yacas("C+1/x^2"), 0)
который не возвращает ничего полезного:
Yacas vector:
character(0)
Я следовал инструкциям на ?yacas
, чтобы установить yacas
. Кажется, что yacas
работает, demo(Ryacas)
генерирует вывод. Вот первая порция:
demo(Ryacas)
---- ~~~~~~
Type <Return> to start :
> x <- -3 + (0:600)/300
> exp0 <- expression(x ^ 3)
> exp1 <- expression(x^2 + 2 * x^2)
> exp2 <- expression(2 * exp0)
> exp3 <- expression(6 * pi * x)
> exp4 <- expression((exp1 * (1 - sin(exp3))) / exp2)
> res1 <- yacas(exp4); print(res1)
expression(3 * (x^2 * (1 - sin(6 * (x * pi))))/(2 * x^3))
> exp5 <- expression(Simplify(exp4))
> res2 <- yacas(exp5); print(res2)
expression(3 * (1 - sin(6 * (x * pi)))/(2 * x))
> plot(x, eval(res2[[1]]), type="l", col="red")
Любые подсказки?
rootSolve
предоставляет функциональность для решения NLE - person Julian_Hn   schedule 17.04.2019Ryacas
может помочь. - person Bhas   schedule 17.04.2019RootSolve
не сможет помочь вам с вашей конкретной проблемой. Для вашейRyacas
-Проблемы: Вы установили yacas? Без этого Ryacs не будет работать. см.?yacas
инструкции - person Julian_Hn   schedule 17.04.2019Solve("C+1/x^2 == 0","x")
у меня работает - person Julian_Hn   schedule 17.04.2019