我想显示一步一步的计算,这些计算是在Ryacas使用'TeXForm‘进行的。
要做到这一点,我必须能够从给定的方程中得到LaTeX。问题是在转换为LaTeX表单之前,yacas会自动解决这些问题。如果我试图在方程上应用'TeXForm‘,我就得到了它的简化版本。例如:
exp1<-'D(x)Sin(x^2+y^2)+D(y)Sin(x^2+y^2)'
TeXForm(exp1)我得到了:
"$2 x \cos \left( x ^{2} + y ^{2}\right) + 2 y \cos \left( x ^{2} + y ^{2}\right) $";我试着得到非简化的版本:
yacas('TeXForm(exp1)')我得到了:
"$\mathrm{ exp1 }$";我也试过:
yacas('D(x)Sin(x^2+y^2)+D(y)Sin(x^2+y^2)')它也不起作用。
如何得到所有导数的非简化LaTeX公式?
发布于 2015-08-13 09:58:16
我发现TeXForm(deparse(x^2+x^2))给出了正确的结果,但这对衍生产品不起作用。
衍生产品:TeXForm(substitute("D(x) sin(x+y)")).
发布于 2018-09-20 11:54:49
为了防止yacas计算表达式,可以使用Hold()包装表达式。
例如:您有一个表达式"Limit(x,0) Sqrt(x) * Sin(1/x)",您希望yacas解析该表达式并将其转换为LaTeX格式,而无需计算表达式。
像这样展开你的表情:
s <- "Limit(x,0) Sqrt(x) * Sin(1/x)"
expanded_yacas_charstr <- paste("Hold(", s, ") == ", s, sep = "")我创建了一个函数,在Rmarkdown文档中使用这个函数,返回输入函数及其结果,作为一个组合的LaTeX结果。这可能对你有用:
```{r, results="asis", echo=FALSE}kalk <-函数{
图书馆(“Ryacas”)
扩展yacas表达
例如:
(x,0)平方(X)
被扩展到
持有(“极限(x,0) Sqrt(x) == )”限制(x,0) Sqrt(x)
这将防止yacas计算Hold()中的文本。
expanded_yacas_charstr <-粘贴(“持有( ",s,") ==”,s,sep = "")
S <- as.character(yacas(verbose=false,
TeXForm(expanded_yacas_charstr), retclass = "unquote"))返回(粘贴(“$$ ",substr(s,2,nchar(s)),"$",sep =”“)
}
使用cat()确保删除“1”输出
cat(kalk(“极限(x,0) Sqrt(x) * Sin(1/x)"))
发布于 2020-01-28 17:14:05
有些功能可以:
例如:
TeXForm(Hold(Integrate(a) (a^2+5)) ) 给予:
$\int \left( a ^{2} + 5\right) da$但不是所有的功能..。这个不匹配:
TeXForm(substitute("D(x) sin(x+y)"))但即使是:
TeXForm(Hold(D(x)Sin(x^2+y^2)+D(y)Sin(x^2+y^2))) 给予:
$2 x \cos \left( x ^{2} + y ^{2}\right) + \frac{\partial}{\partial x}\left( 2 y \cos \left( x ^{2} + y ^{2}\right) \right) $它在文档中:"manual/controlflow.html#Hold“
https://stackoverflow.com/questions/31856982
复制相似问题