是否有一个带有一组宏的数学包可以帮助操作长表达式中的术语?

是否有一个带有一组宏的数学包可以帮助操作长表达式中的术语?

本学期我一直在用 Latex 排版我的数学作业,这些作业通常涉及带有许多分数和括号的长表达式。我很想能够使用宏来执行诸如展开括号、收集同类项、因式分解多项式等操作。例如:

(a + b)( c + d) = ac + ab + bc + bd
a/b = c/d --> ad = bc 
(a + b + c)^2 = ...

如果有宏可以组合这样的操作来执行更复杂的任务(例如根据其中一个变量重写方程式),那就更好了。

答案1

sagetex软件包可让您访问名为 SAGE 的计算机代数系统,它可以提供帮助。SAGE 符号方程文档是这里并且该软件包的文档是这里。以下是如何通过以下方式将 SAGE 与 LaTeX 结合起来的示例sagetex

\documentclass{article}
\usepackage{sagetex}
\begin{document}
\begin{sagesilent}
a,b,c,d = var("a,b,c,d")
eqn = a/b==c/d
\end{sagesilent}
Given variables $a, b, c$, and $d$; then:\\
$(a+b)(c+d)=\sage{expand((a+b)*(c+d))}$ and \\
$(a+b+c)^2=\sage{expand((a+b+c)^2)}$. \\
Moreover, $\frac{a}{b}=\frac{c}{d}$ implies $\sage{(b*d)*eqn}$
\begin{sagesilent}
y=var("y")
f = x^2 + y^2 == 1
solutions = f.solve(x)
\end{sagesilent}

If you have the equation $x^2+y^2=1$ then solving for $x$ gives
$\sage{f.solve(x)[0]}$ and $\sage{f.solve(x)[1]}$ 
\end{document}

SAGE 将 x 识别为默认变量,其他所有变量都应使用 var() 声明。通过 SAGE 设置计算sagesilent并使用 \sage{} 访问结果。SAGE 不是 LaTeX 发行版的一部分,因此应将其安装在您的计算机上或通过免费可钙账户。代码编译结果如下图所示: 在此处输入图片描述

像第一个等式那样排版数学题很容易出错。SAGE 可帮助消除错误。

相关内容