2012-10-01 64 views
2

我很难理解为什么使用泰勒级数函数来获得函数的近似值,而不是在编程时只使用函数本身。如果我可以告诉我的电脑计算e ^(。1),它会给我一个确切的值,为什么我会采取一个近似值?在什么情况下,多项式的泰勒级数是必要的?

+0

阅读http://dl.acm.org/citation.cfm?id=1693304 –

+0

也想到'exp(x^2) - 1 - (x^2)''near'x = 0''这样的函数或者'x/sin(x)' –

+7

*如果我能告诉我的电脑计算e ^(。1),它会给我一个确切的值* - 哦,你有很多东西要学习计算机上的和。虽然它可能不会使用泰勒级数,但您的计算机肯定会使用一些近似值。如果您怀疑这一点,请记下'e ^(。1)'确切值的所有数字,并将它们与您的计算机提供的近似值进行比较。所有的数字和没有松懈。在这里开始你的学习 - http://mathworld.wolfram.com/e.html –

回答

4

泰勒级数通常不用于近似函数。通常使用某种形式的极大极小多项式。

泰勒级数收敛速度慢(它需要许多条件,从而获得所需的精度)和效率低下(它们是围绕着他们为中心,不太准确远离它点附近更准确)。泰勒级数的最大用途可能在数学课程和论文中,它们可用于检查函数的性质和学习微积分。

为了近似函数,经常使用极大极小多项式。最小最大多项式对于特定情况(函数要近似的间隔,多项式的可用度)具有最小可能的最大误差。通常没有找到最小多项式的解析解。它们可以用数字找到,使用Remez algorithm。 Minimax多项式可以根据特定需求进行定制,例如最小化相对误差或绝对误差,在特定时间间隔内近似函数等等。 Minimax多项式比泰勒级数需要更少的项来获得可接受的结果,并且它们在整个间隔内“扩散”了误差,而不是在中心更好,末端更差。

当调用exp函数计算e X,你可能使用了极小多项式,因为有人为你做的工作,并构建一个库例程估算多项式。大多数情况下,唯一的算术计算机处理器可以做的是加法,减法,乘法和除法。所以其他功能必须从这些操作构建。前三个给出了多项式,而多项式足以近似许多函数,如正弦,余弦,对数和指数运算(带有一些额外的将事物移入和移出浮点值的指数域的操作)。分部增加了有用的功能,这对函数如arctangent很有用。

3

有两个原因。首先也是最重要的 - 大多数处理器不具有像指数,对数等复杂操作的硬件实现......在这种情况下,编程语言可能提供用于计算这些操作的库函数 - 换句话说,有人使用泰勒级数或其他近似值为你。

其次,你可能有,即使不是语言支持功能。

我最近想用查找表与插值得到一个角度,然后计算罪()和cos()的角度。麻烦的是它是一个没有浮点和没有三角函数的DSP,所以这两个函数真的很慢(软件实现)。相反,我将sin(x)放在表格中而不是x中,然后用y = sqrt(1-x * x)的泰勒级数来计算cos(x)。这个泰勒系列在我只需要5个术语的范围内是精确的(分母都是两个幂的!),并且可以使用纯C实现在固定点上,并生成比我能想到的任何其他方法都快的代码。

相关问题