2012-10-01 50 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實現在固定點上,並生成比我能想到的任何其他方法都快的代碼。

相關問題