我在 R 中使用 Ryacas 包,并试图用变量代替值,但不简化或求解方程以显示计算结果。我搜索了 Stackoverflow,阅读了 Ryacas 文档,并试图在 Yacas 手册中找到它,但到目前为止还不够。我想我希望关闭简化以获得替代方程,然后再次打开以提供最终结果。
这是一个仅提供结果而不是工作的示例:
library(Ryacas)
# a <- 2
# b <- 3
# c <- 4
eq <- ysym(('(a * b) / c'))
solution <- with_value(with_value(with_value(eq, 'a', 2), 'b', 3), 'c', 4)
tex(solution)
# "\\frac{3}{2}"
我想要得到的输出是:
# working out
# "\\frac{2 \times 3}{4}
以及实际的解决方案:
# solution
# "\\frac{3}{2}"
有谁知道这个问题是否有解决方案,例如通过yac_str
或类似的方式将命令传递给 yacas。我尝试使用tex()
命令转换为乳胶,然后在删除乘法运算符后进行替换,这意味着我需要找到并替换它们,这在处理符号时变得讨厌:
tex(eq)
# "\\frac{a b}{c}"
# substituting string values using stringi requires additional
# work to deal with the missing `*` between `a` and `b`
# "\\frac{2 3}{4}"
虽然这可以用于简单的表达式,但有许多例外,例如变量a
和c
存在\\frac
等。
我也尝试过该TexForm
命令并substitute
以各种形式尝试过,但仍然无法捕获未简化和未评估的方程:
y_fn(substitute(with_value(eq, 'a', 2)), "TeXForm")
# "\\frac{2 b}{c}"
eval(substitute(with_value(eval(substitute(with_value(eq, 'a', 2))), 'b', 3)))
# y: 6/c
任何帮助表示赞赏。