在高等數學教科書上,“泰勒公式”不僅看起來嚇人,而且來得非常突然,
它好像是無緣無故突然從石頭縫裡蹦出來的一個概念,但真相完全不是這樣。
老闆的計算問題
假設我們出身在兩百年前,沒有電子計算器。
我們的老闆遇到一個工程問題,比如橋樑設計,要求我們計算Sin31.1°等於多少,而且要求結果精確到小數點後三位。
按照三角公式的定義,我們得用量角器畫圖,然後用直尺測量邊長,再計算直角邊a除以斜邊c。
這不僅麻煩,而且精度說不清,誰都不知道我們畫的直角到底有多直,這種計算方法根本無法定量評估結果的精度。
神奇拆解
現在,有了泰勒展開公式,我們可以直接將Sin x“拆解成一堆”關於x的加減乘除運算(x使用弧度):
注意,這裡不是約等於,是“完美的”等於,只不過,後面是無窮多項累加。
但是,我們也不需計算無窮多項,因為,後面的高次項對於結果的“貢獻”越來越小,因此,我們往往只需計算前若干項即可,比如前三項:
尾巴直接扔掉,雖然會造成誤差,但餘項都是比x^5高階的無窮小,因此可以得出:
而且,估算造成的誤差不會超過:
展開的優勢
經過這麼一番折騰,即使在沒有電子計算器的情況下,我們通過手算加減乘,也可以“控制”結果的精度。
老闆要求多高的精度,就可以有多高的精度,我們對著泰勒公式,在草稿紙上一直往後計算即可。
泰勒公式本質上是一種“冪級數”,它將複雜的運算,統一成為“代數加減乘除”運算。
因此,泰勒公式可以將運算本身“質的複雜度”,轉換為“量的複雜度”,並進行估算。
計算機中的應用
現代編程語言中,很多庫函數,就是通過泰勒展開實現計算的。
計算機可以算加減乘除,泰勒公式正好提供了“一堆”加減乘除。
歡迎大家捧場我編寫的“信號與系統分析”專欄內容,深入淺出,弄懂傅里葉變換和經典信號系統分析。
相關推薦
'Java是什麼?為什麼要學習Java?Java有哪些特點?'
"在正式開始Java學習之前,先來了解幾個關鍵性問題。那就是什麼是Java,為什麼要學習Java,Java 有哪些特點,Java 有哪些機制,如何來學習 Java 等幾個問題。通過這幾個問題讓大家瞭解 Java 的一些內容,從而展開 Java 的學習。1、java是什麼?J...
'為何很多人對遊戲業前景不看好了?'
"對遊戲業前景不好看是而今很多人的一種看法,但本質上來說,遊戲業依舊在快速增長、遊戲業沒有問題,問題其實出在開發者身上,且集中表現在中小團隊身上。遊戲業的競爭模式其實是非常好的。從商業回報看,中國遊戲行業依舊在保持增長,而遊戲業與其他很多行業非常大的不同是,每個產品都有自己...
'為什麼SQL正在擊敗NoSQL,這對未來的數據意味著什麼'
"導讀:經過多年的沉寂之後,今天的SQL正在復出。緣由如何?這對數據社區有什麼影響?看看本文的分析。以下為譯文。自從可以利用計算機做事以來,我們一直在收集的數據以指數級的速度在增長,因此對於數據存儲、處理和分析技術的要求也越來越高。在過去的十年裡,由於SQL無法滿足這些要求...
'為啥子這麼多人開始學Python?看完這些你就清楚了'
"Python具有豐富和強大的庫。它常被暱稱為膠水語言,能夠把用其他語言製作的各種模塊(尤其是C/C++)很輕鬆地聯結在一起。在小編看來,基本上可以負責任地認為,Python 可以做任何事情。無論是從入門級選手到專業級數據挖掘、科學計算、圖像處理、人工智能,Python 都...
'現在這麼多編程語言可學,為什麼還要學那麼舊的C語言?有用嗎?'
"編寫操作系統最常用的編程語言就是C語言了。用C語言編寫的第一個操作系統是 Unix,之後的 GNU/Linux 等操作系統也都是使用C語言編寫的。編寫操作系統最常用的編程語言就是C語言了C語言不僅僅是操作系統語言,也是當今幾乎所有流行的高級編程語言的先驅,這些編程語言多多...
推薦中...