【发布时间】:2022-01-14 09:09:49
【问题描述】:
我在 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}"
虽然这可以用于简单的表达式,但有许多例外情况,例如 \\frac 中存在变量 a 和 c 等。
我也尝试过各种形式的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
任何帮助表示赞赏。
【问题讨论】:
标签: r eval substitution yacas