如何在 R 中求解给定变量的方程?

问题描述 投票:0回答:2

这是等式

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
r math
2个回答
7
投票

您可以使用

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

2
投票

您可能正在寻找优化:

a=function(x,t) x*t-2*x
optimize(a,lower=-100,upper=100,t=10)
optimize(a,lower=-100,upper=100,x=2)
© www.soinside.com 2019 - 2024. All rights reserved.