Как решить уравнение для заданной переменной в R? - PullRequest
1 голос
/ 11 июля 2019

Это уравнение a <- x * t - 2 * x.Я хочу решить это уравнение для t.Таким образом, в основном, установите a = 0 и решите для t.Я новичок в пакетах R для решения уравнений.Мне нужен пакет, который решает сложные корни.Исходные уравнения, с которыми я работаю, имеют реальные и мнимые корни.Я ищу только алгебраическое решение, а не числовое.

Я пытался:

a <- x * t - 2 * x
solve(a,t)

Я сталкиваюсь с ошибкой:

Error in solve.default(a, t) : 'a' (1000 x 1) must be square

Ответы [ 2 ]

0 голосов
/ 11 июля 2019

Вы можете использовать Ryacas, чтобы получить решение в виде выражения x:

library(Ryacas)

x <- Sym("x")
t <- Sym("t")

Solve(x*t-2*x == 0, t)
# Yacas vector:
# [1] t == 2 * x/x

Как видите, решение равно t=2 (при условии, что x не равно нулю).

Давайте попробуем менее тривиальный пример:

Solve(x*t-2*x == 1, t)
# Yacas vector:
# [1] t == (2 * x + 1)/x

Если вы хотите получить функцию, которая предоставляет решение в виде функции x, вы можете сделать:

solution <- Solve(x*t-2*x == 1, t)
f <- function(x){}
body(f) <- yacas(paste0("t Where ", solution))$text
f
# function (x) 
# (2 * x + 1)/x
0 голосов
/ 11 июля 2019

Возможно, вы ищете для оптимизации:

a=function(x,t) x*t-2*x
optimize(a,lower=-100,upper=100,t=10)
optimize(a,lower=-100,upper=100,x=2)

Если вам нужна дополнительная помощь, мне нужен воспроизводимый пример.

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