如何在 LaTeX 中获得任意精度的计算?

如何在 LaTeX 中获得任意精度的计算?

我对使用一个在 LaTeX 中提供任意计算的包感兴趣。我需要数学函数,例如 exp()、sin()、cos()。这样的包存在吗?如果没有,哪个包提供包含此类函数的最高精度计算?

答案1

apnum 包在 TeX 宏级别实现了任意精度的数值计算。从 apnum 1.4 版(2015 年 12 月)开始,还实现了 sqrt、exp、ln、sin、cos、tan、asin、acos、atan 函数。结果中小数点后的位数由“\apFRAC”寄存器给出。但 TeX 只是解释器,您不能期望与编译程序(例如 UNIX bc)相同的速度。使用\PI时,转换为 100 位需要 0.18 秒,但转换为 500 位需要 4.1 秒。apnum\PI

例如:

\input apnum

\def\shownum#1 = #2{\evaldef\OUT{#2}\message{#1 = \OUT}}

\apFRAC=50
\shownum sin(pi/4) = {\SIN{\PI/4}}
\shownum sqrt(2)/2 = {\SQRT{2}/2} 
\shownum sin(pi/4) - sqrt(2)/2 = {\SIN{\PI/4} - \SQRT{2}/2}
\shownum pi = \PI
\shownum atan(1) = {\ATAN{1}}
\shownum _pi / 4 = {\PI/4}   
\shownum sqrt(17) = {\SQRT{17}}
\shownum e = {\EXP{1}}
\shownum ln(e) = {\LN{\EXP{1}}}

\bye

结果(在终端和日志文件中):

The Arbitrary Precision Numbers, 1.4 <Dec 2015>)
sin(pi/4) = .70710678118654752440084436210484903928483593768847
sqrt(2)/2 = .70710678118654752440084436210484903928483593768847
sin(pi/4) - sqrt(2)/2 = 0
pi = 3.14159265358979323846264338327950288419716939937510
atan(1) = .78539816339744830961566084581987572104929234984377
_pi / 4 = .78539816339744830961566084581987572104929234984377
sqrt(17) = 4.12310562561766054982140985597407702514719922537362
e = 2.71828182845904523536028747135266249775724709369995
ln(e) = .99999999999999999999999999999999999999999999999999 )

注意。我修改了你的标题(LaTeX 中的任意精度 -> TeX 中的任意精度),因为apnum只需要经典 TeX,仅此而已。但它在 LaTeX 中也可以工作。

答案2

正如@Joseph Wright 所说,LaTeX 不是计算机代数系统。但是如果你愿意使用 LaTeX(而不是 TEX),那么sagetex包允许您在 LaTeX 文档中使用 CAS Sage。Sage 中的任意精度均包含在内这里

\documentclass{article}
\usepackage{fullpage}%smaller margins for more output
\usepackage{sagetex}
\begin{document}
\begin{sagesilent}
RealField(80)
\end{sagesilent}
\noindent Using a precision of $80$:\\
$\pi \approx \sage{pi.n(digits=80)}$\\
$\sin\left(\frac{\pi}{4}\right) \approx   \sage{sin(pi/4).n(digits=80)}$\\
$e^{-1} \approx \sage{exp(-1).n(digits=80)}$
\end{document}

输出为: 在此处输入图片描述 因此,sagetex您可以轻松使用 Python/Sage 代码在 LaTeX 文档中使用计算,这并不难理解:使用 \sage{} 将计算放入文档中。有关三角函数的文档是这里;对数/指数是这里当然,CAS 可以让你更复杂的功能也一样。您需要在计算机上安装 Sage,或者更简单,打开一个免费的SageMath 云帐户。只需几分钟,您就可以获得一个帐户,复制/粘贴上述代码并开始运行。

相关内容