免责声明:我不再拥有 TI 计算器,这主要基于我在大约 7 年前遇到类似问题时所做的实验。答案中的数学应该是正确的,但我可能会误认为计算器特有的一些小问题。
首先,我想我应该纠正你的数学。在 x=a 处函数 f(x)的泰勒级数定义为
∞ f^(n)(a)
f(x) ≈ Σ (-------- (x-a)^n)
n=0 n!
任何地方都没有涉及 C(您可能一直在考虑泰勒多项式提醒定理,这是另一回事),并且总和是所有非负整数 n。当然,在 TI-84 上计算这样的无限级数是没有希望的,但我们可以截断该级数,给出 N 阶泰勒多项式:
O f^(n)(a)
f(x) ≈ Σ (-------- (x-a)^n)
n=0 n!
这是您实际上可以希望以数字方式计算的东西,因为总和是有限的。当然,您需要做的就是计算 n=0,1,...,O 的第 n 个导数,所以从现在开始我将专注于它。我认为这就是你想要的,但是术语“泰勒级数”总是表示一个无限级数,而当总和是有限时使用泰勒多项式。
nDeriv 不能任意嵌套。根据这个文档站点,它可以嵌套一层,但我记得在我早期的模型中,即使在某些情况下也不允许这样做。但是,nDeriv 无论如何只计算导数,使用的公式是 nDeriv(f(t),t,x[,h])) = (f(x+h)-f(xh))/(2h),其中 h=0.001 是默认值。您可以递归地应用它来获得更高导数的表达式:
f^(2)(x)=(f(x+2h)-2f(x)+f(x-2h))/(2h)^2
f^(3)(x)=(f(x+3h)-3f(x+h)+3f(x-h)-f(x-3h))/(2h)^3
一般来说:
n n (-1)^m f(x+(n-2m)h)
f^(n)(x) = Σ ( ) ---------------------
m=0 m (2h)^n
总和中格式奇怪的东西是二项式系数(n nCr m
在 TI-84 上)。这可以在 TI basic 中计算,并且相当于如果计算器允许您任意嵌套 nDeriv(至少在机器精度影响开始变得重要之前)您将获得的最终结果。
您可能想玩弄 h some 直到找到一个好的值(并且对于不同的阶导数,您可能希望使用不同的 h 值)。不幸的是,数值微分自然很难做到,尤其是对于计算器等低精度设备,因为你要减去两个非常接近的数字来得到一个非常小的数字,然后除以另一个非常小的数字。对于高阶导数,情况只会变得更糟。我记得对于一些简单的函数,我可以得到 4 或 5 个导数,然后就不可能得到任何有意义的东西,因为计算器没有足够的精度。
顺便说一句,如果您发现上述方法不够精确,那么有大量关于数值微分的文献,其中的方法比上面列出的方法更好。一个好的起点是关于有限差分方法的维基百科文章,上面的公式是一个(不是特别好的)例子。无论如何,您都会遇到机器精度问题,但使用更复杂的方法至少会提高精度,直到机器精度影响开始变得重要。