如何解决R中给定变量的方程式?

时间:2019-07-11 12:53:27

标签: r math differential-equations

这是方程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 :(得分:0)

您可能正在寻找优化:

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

如果您需要更多帮助,我需要一个可复制的示例。

答案 1 :(得分:0)

您可以使用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