在啥情况下需要多项式的泰勒级数?
Posted
技术标签:
【中文标题】在啥情况下需要多项式的泰勒级数?【英文标题】:In what situation would a taylor series for a polynomial be necessary?在什么情况下需要多项式的泰勒级数? 【发布时间】:2012-09-22 14:20:21 【问题描述】:我很难理解为什么将泰勒级数用于函数以获得函数的近似值而不是仅在编程时使用函数本身会很有用。如果我可以告诉我的计算机计算 e^(.1) 并且它会给我一个精确的值,我为什么要取一个近似值呢?
【问题讨论】:
阅读dl.acm.org/citation.cfm?id=1693304 还可以在x=0
或x/sin(x)
附近考虑类似exp(x^2) - 1 - (x^2)
的函数
如果我可以告诉我的计算机计算 e^(.1) 并且它会给我一个准确的值 -- 哦,关于求和,你还有很多东西要学在电脑上。虽然它可能不使用泰勒级数,但您的计算机肯定会使用一些近似值。如果您对此表示怀疑,请记下e^(.1)
的确切值的所有数字,并将它们与您的计算机提供的近似值进行比较。所有的数字,没有懈怠。在这里开始你的学习 - mathworld.wolfram.com/e.html
【参考方案1】:
泰勒级数一般不用于逼近函数。通常使用某种形式的极小极大多项式。
泰勒级数收敛缓慢(需要许多项才能获得所需的精度)并且效率低下(它们在靠近中心点的位置更准确,而远离中心点的精度较低)。泰勒级数的最大用途可能是在数学课和论文中,它们对于检查函数的性质和学习微积分很有用。
为了逼近函数,经常使用极小极大多项式。极小极大多项式在特定情况下具有最小可能的最大误差(函数要逼近的区间,多项式可用的度数)。通常没有解析解来寻找极小极大多项式。使用Remez algorithm 以数字方式找到它们。可以定制极小极大多项式以满足特定需求,例如最小化相对误差或绝对误差、在特定区间内逼近函数等。 Minimax 多项式需要比泰勒级数更少的项来获得可接受的结果,并且它们将误差“分散”到区间上,而不是在中心更好而在末端更差。
当您调用 exp
函数来计算 ex 时,您可能使用的是极小极大多项式,因为有人已经为您完成了这项工作并构建了一个计算多项式的库例程。在大多数情况下,算术计算机处理器唯一能做的就是加法、减法、乘法和除法。因此,必须从这些操作中构造其他功能。前三个为您提供多项式,多项式足以逼近许多函数,例如正弦、余弦、对数和取幂(还有一些将事物移入和移出浮点值的指数字段的额外操作)。除法添加有理函数,这对反正切等函数很有用。
【讨论】:
【参考方案2】:有两个原因。首先也是最重要的 - 大多数处理器没有复杂运算的硬件实现,如指数,对数等......在这种情况下,编程语言可能会提供一个库函数来计算这些 - 换句话说,有人使用了泰勒级数或其他近似值给你。
其次,你可能有一个连语言都不支持的功能。
我最近想使用带有插值的查找表来获得一个角度,然后计算该角度的 sin() 和 cos()。问题是它是一个没有浮点和三角函数的 DSP,所以这两个函数真的很慢(软件实现)。相反,我将 sin(x) 放在表中而不是 x 中,然后使用 y=sqrt(1-x*x) 的泰勒级数从中计算 cos(x)。这个泰勒级数在我需要的范围内是准确的,只有 5 个项(分母都是 2 的幂!),并且可以使用纯 C 在定点中实现,并且生成的代码比我能想到的任何其他方法都快。
【讨论】:
以上是关于在啥情况下需要多项式的泰勒级数?的主要内容,如果未能解决你的问题,请参考以下文章