Math TI-84 Basic能处理N阶导数吗?

Math TI-84 Basic能处理N阶导数吗?,math,ti-basic,taylor-series,Math,Ti Basic,Taylor Series,我试图做一个程序,在你不知道的情况下,计算下面描述的泰勒级数。然而,要做到这一点,我需要计算一个函数,我用Y1和它的第n个导数表示。 我尝试使用nDeriv并将其作为字符串保存到Y2、Y3等中,但TI-84不允许我一次堆叠超过2个。有人有办法避开这件事吗 泰勒级数 其中O是序列的给定顺序,更高的值给出更精确的结果,f^na表示函数f在值a处的第n个导数,C是一个给定的常数,用于估计。免责声明:我不再拥有TI计算器,这主要基于我大约7年前遇到类似问题时所做的实验。答案中的数学应该是正确的,但我可能

我试图做一个程序,在你不知道的情况下,计算下面描述的泰勒级数。然而,要做到这一点,我需要计算一个函数,我用Y1和它的第n个导数表示。 我尝试使用nDeriv并将其作为字符串保存到Y2、Y3等中,但TI-84不允许我一次堆叠超过2个。有人有办法避开这件事吗

泰勒级数 其中O是序列的给定顺序,更高的值给出更精确的结果,f^na表示函数f在值a处的第n个导数,C是一个给定的常数,用于估计。免责声明:我不再拥有TI计算器,这主要基于我大约7年前遇到类似问题时所做的实验。答案中的数学应该是正确的,但我可能会对计算器的一些小问题产生误解

首先,我想我应该纠正你的数学错误。函数fx在x=a时的泰勒级数定义如下

        ∞  f^(n)(a)
f(x) ≈  Σ (-------- (x-a)^n)
       n=0    n!
在你们可能想到的任何地方都不涉及C,这是另一回事,和是所有非负整数n的和。当然,在TI-84上计算这样的无穷级数是没有希望的,但我们可以截断级数,得到n阶泰勒多项式:

这是你可以用数字计算的东西,因为和是有限的。当然,你需要做的就是计算n=0,1,…,O的第n个导数,所以从现在开始,我将重点讨论它。我想这就是你想要的,但是术语泰勒级数总是表示无穷级数,而泰勒多项式是在和是有限的时候使用的

nDeriv不能任意嵌套。根据,它可以嵌套一层,但我记得在我早期的模型中,在某些情况下甚至不允许这样做。但是,nDeriv仅以数值方式计算导数,使用的公式为nDerivft,t,x[,h]=fx+h-fx-h/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
其中,总和中格式怪异的东西是TI-84上的二项式系数n nCr m。这可以在TI basic中计算,相当于最终结果,如果计算器允许您任意嵌套nDeriv,至少直到机器精度效果开始变得重要为止

在找到一个好的值之前,你可能想用一些h,对于不同的阶导数,你可能想用不同的h值。不幸的是,数字微分自然很难做到,尤其是对于像计算器这样的低精度设备,因为你要减去两个非常接近的数字得到一个非常小的数字,然后除以另一个非常小的数字。对于高阶导数,情况只会变得更糟。我记得对于一些简单的函数,我可以得到4或5个导数,因为计算器没有足够的精度,所以不可能得到任何有意义的结果

顺便说一句,如果你发现上面的方法不够精确,那么有大量关于数值微分的文献使用了比上面列出的方法更好的方法。一个好的起点是,上面的公式不是一个特别好的例子。不管怎样,您都会遇到机器精度问题,但使用更复杂的方法至少会提高精度,直到机器精度效果开始变得重要。

免责声明:我不再拥有TI计算器,这主要是基于大约7年前我遇到类似问题时做的实验。答案中的数学应该是正确的,但我可能会对计算器的一些小问题产生误解

首先,我想我应该纠正你的数学错误。函数fx在x=a时的泰勒级数定义如下

        ∞  f^(n)(a)
f(x) ≈  Σ (-------- (x-a)^n)
       n=0    n!
在你们可能想到的任何地方都不涉及C,这是另一回事,和是所有非负整数n的和。当然,在TI-84上计算这样的无穷级数是没有希望的,但我们可以截断级数,得到n阶泰勒多项式:

这是你可以用数字计算的东西,因为和是有限的。当然,你需要做的就是计算n=0,1,…,O的第n个导数,所以从现在开始,我将重点讨论它。我想这就是你想要的,但是术语泰勒级数总是表示无穷级数,而泰勒多项式是在和是有限的时候使用的

nDeriv不能任意嵌套。根据,它可以嵌套一层,但我记得在我早期的模型中,在某些情况下甚至不允许这样做。但是,nDeriv仅在数值上计算导数,使用的公式为nDerivft,t,x[,h]=fx+h-fx-h/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
其中,总和中格式怪异的东西是TI-84上的二项式系数n nCr m。这可以在TI basic中计算,相当于最终结果,如果计算器允许您任意嵌套nDeriv,至少直到机器精度效果开始变得重要为止

在找到一个好的值之前,你可能想用一些h,对于不同的阶导数,你可能想用不同的h值。不幸的是,数字微分自然很难做到,尤其是对于像计算器这样的低精度设备,因为你要减去两个非常接近的数字得到一个非常小的数字,然后除以另一个非常小的数字。对于高阶导数,情况只会变得更糟。我记得对于一些简单的函数,我可以得到4或5个导数,因为计算器没有足够的精度,所以不可能得到任何有意义的结果

顺便说一句,如果你发现上面的方法不够精确,那么有大量关于数值微分的文献使用了比上面列出的方法更好的方法。一个好的起点是,上面的公式不是一个特别好的例子。不管怎样,您都会遇到机器精度问题,但使用更复杂的方法至少会提高精度,直到机器精度效果开始变得重要