这是等式
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
您可以使用
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
您可能正在寻找优化:
a=function(x,t) x*t-2*x
optimize(a,lower=-100,upper=100,t=10)
optimize(a,lower=-100,upper=100,x=2)