在 mathparse 微积分中指定精度

在 mathparse 微积分中指定精度

我已经定义了函数 f(x) = (sqrt(x)-1)/(x-1),我需要计算 f(x) 的几个值。我编写了以下代码,但是,我无法指定 f(x) 的精度,例如,5 位小数。有人能帮我吗?

\documentclass[tikz, border=.5cm]{standalone}
\usepackage[portuguese]{babel}
\usepackage[utf8]{inputenc}
\usepackage{tkz-fct}   
\usepackage{multido}
\usetikzlibrary{calc,math}
\usepackage{float}
\usepackage{amsmath}

\newcommand\f[1]{ \pgfmathparse{((#1)^0.5 - 1)/(#1 -1)} \pgfmathresult }

\begin{document}

\foreach \x in {2,1.5,1.2,1.19,1.189,...,1.001}{
\begin{tikzpicture}[scale=0.8]
\clip (-3.5,-2) rectangle (4,2);
\node[above] (2) at (0,0)  {Vamos avaliar o limite $\displaystyle\lim_{x \to 1} \frac{\sqrt{x}-1}{x-1}$:};
\node[below] (2) at (0,0)  {O valor da função em $\pgfmathprintnumber{\x}$ é \boxed{$\f{\x}$}};
\end{tikzpicture}
}
\end{document}

答案1

我担心 Ti 中的标准浮点引擎Z/PGF 不适合这项任务。

使用 引擎,您可以获得更好的结果expl3

\documentclass{article}
\usepackage[portuguese]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{xfp}

\newcommand\f[1]{%
  \fpeval{round((sqrt(#1)-1)/(#1-1),5)}%
}

\ExplSyntaxOn
\NewDocumentCommand{\fpforeach}{o mmm +m}
 {
  \IfValueT{#1}
   {
    \clist_map_inline:nn { #1 } { #5 }
   }
  \fp_step_inline:nnnn { #2 } { #3 } { #4 } { #5 }
 }
\ExplSyntaxOff

\begin{document}

\fpforeach[2,1.5,1.2]{1.19}{-0.001}{1.001}{%
  O valor da função em $#1$ é \boxed{$\f{#1}$}\par
}

\end{document}

该命令\f定义函数,四舍五入到小数点后五位。

我添加了一个“for each”循环,其中可选参数是要首先评估的“异常值”列表,然后您可以指定起点、步骤和终点。最后一个参数是循环中每个值传递到的对象,用于#1表示当前值。

以下是结果的第一行。

在此处输入图片描述

最后几行。

在此处输入图片描述

我个人反对用这种方式来表达限制,因为不是很好地解释了极限是如何工作的(因为必须向后计算,而不是向前计算)。无论如何,我承认很多书都用到了这一点。不幸的是。;-)

相关内容