首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将R yacas方程转换为LaTeX而不求解它

将R yacas方程转换为LaTeX而不求解它
EN

Stack Overflow用户
提问于 2015-08-06 13:22:15
回答 3查看 237关注 0票数 2

我想显示一步一步的计算,这些计算是在Ryacas使用'TeXForm‘进行的。

要做到这一点,我必须能够从给定的方程中得到LaTeX。问题是在转换为LaTeX表单之前,yacas会自动解决这些问题。如果我试图在方程上应用'TeXForm‘,我就得到了它的简化版本。例如:

代码语言:javascript
复制
exp1<-'D(x)Sin(x^2+y^2)+D(y)Sin(x^2+y^2)'
TeXForm(exp1)

我得到了:

代码语言:javascript
复制
"$2 x \cos \left( x ^{2} + y ^{2}\right)  + 2 y \cos \left( x ^{2} + y ^{2}\right) $";

我试着得到非简化的版本:

代码语言:javascript
复制
 yacas('TeXForm(exp1)')

我得到了:

代码语言:javascript
复制
"$\mathrm{ exp1 }$";

我也试过:

代码语言:javascript
复制
yacas('D(x)Sin(x^2+y^2)+D(y)Sin(x^2+y^2)')

它也不起作用。

如何得到所有导数的非简化LaTeX公式?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-13 09:58:16

我发现TeXForm(deparse(x^2+x^2))给出了正确的结果,但这对衍生产品不起作用。

衍生产品:TeXForm(substitute("D(x) sin(x+y)")).

票数 0
EN

Stack Overflow用户

发布于 2018-09-20 11:54:49

为了防止yacas计算表达式,可以使用Hold()包装表达式。

例如:您有一个表达式"Limit(x,0) Sqrt(x) * Sin(1/x)",您希望yacas解析该表达式并将其转换为LaTeX格式,而无需计算表达式。

像这样展开你的表情:

代码语言:javascript
复制
s <- "Limit(x,0) Sqrt(x) * Sin(1/x)" 
expanded_yacas_charstr <- paste("Hold(", s, ") == ", s, sep = "")

我创建了一个函数,在Rmarkdown文档中使用这个函数,返回输入函数及其结果,作为一个组合的LaTeX结果。这可能对你有用:

代码语言:javascript
复制
```{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,

代码语言:javascript
复制
                      TeXForm(expanded_yacas_charstr),
代码语言:javascript
复制
                      retclass = "unquote"))

返回(粘贴(“$$ ",substr(s,2,nchar(s)),"$",sep =”“)

}

使用cat()确保删除“1”输出

cat(kalk(“极限(x,0) Sqrt(x) * Sin(1/x)"))

代码语言:javascript
复制
票数 1
EN

Stack Overflow用户

发布于 2020-01-28 17:14:05

有些功能可以:

例如:

代码语言:javascript
复制
TeXForm(Hold(Integrate(a) (a^2+5)) ) 

给予:

代码语言:javascript
复制
$\int \left( a ^{2} + 5\right)  da$

但不是所有的功能..。这个不匹配:

代码语言:javascript
复制
TeXForm(substitute("D(x) sin(x+y)"))

但即使是:

代码语言:javascript
复制
TeXForm(Hold(D(x)Sin(x^2+y^2)+D(y)Sin(x^2+y^2))) 

给予:

代码语言:javascript
复制
$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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31856982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档