![是否有一个带有一组宏的数学包可以帮助操作长表达式中的术语?](https://linux22.com/image/386052/%E6%98%AF%E5%90%A6%E6%9C%89%E4%B8%80%E4%B8%AA%E5%B8%A6%E6%9C%89%E4%B8%80%E7%BB%84%E5%AE%8F%E7%9A%84%E6%95%B0%E5%AD%A6%E5%8C%85%E5%8F%AF%E4%BB%A5%E5%B8%AE%E5%8A%A9%E6%93%8D%E4%BD%9C%E9%95%BF%E8%A1%A8%E8%BE%BE%E5%BC%8F%E4%B8%AD%E7%9A%84%E6%9C%AF%E8%AF%AD%EF%BC%9F.png)
本学期我一直在用 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 可帮助消除错误。