圓周率 π 展開 為 無窮級數 其實 很簡單, 如圖 :
可以用 黃色小三角形 和 橙色小三角形, 以及 依此類推 下去 的 無數個 小三角形 來 逼近 圓面積, 把 這個 無限逼近 的 圓面積 稱為 S,
因為 圓面積 = π r ² , 所以, 有 S = π r ² , π = S / r ² 。
即 用 無限逼近 的 圓面積 S 除以 r ² 就是 π , 因為 S 是 無窮級數, 所以, S / r ² 就是 π 的 無窮級數 。
將 黃色 小三角形 稱為 第 1 層 小三角形, 橙色 小三角形 稱為 第 2 層 小三角形 , 以此類推, 有 第 3 層 、 第 4 層 …… 第 n 層 小三角形, n -> 無窮 。
取 扇形 OAB 的 面積, 記為 S_扇OAB , 設 圓 O 半徑 為 r, 面積 為 S, 則 S_扇OAB = 1/4 * S = 1/4 * π r ² 。
則 π = 4 * S_扇OAB / r ² 。
所以, 只要 求出 S_扇OAB 的 無窮級數 , 就可以 得到 π 的 無窮級數 。
S_扇OAB = S△OAB + S△1 + 2 * S△2 + 4 * S△3 + …… + 2^(n - 1) * S△n , n -> 無窮
S△OAB 是 三角形 OAB 的 面積, S△1 是 第 1 層 小三角形 的 面積, S△2 是 第 1 層 小三角形 的 面積, S△n 是 第 n 層 小三角形 的 面積,
第 1 層 小三角形 有 1 個, 第 2 層 小三角形 有 2 個, 第 3 層 小三角形 有 4 個, 第 n 層 小三角形 有 2^(n - 1) 個 。
可以看到, 小三角形 都是 等腰三角形, 第 1 層 小三角形 的 底邊 = AB , 第 2 層 小三角形 的 底邊 是 第 1 層 小三角形 的 腰, 以此類推 , 第 n 層 小三角形 的 底邊 是 第 n - 1 層 小三角形 的 腰 。
設 第 n 層 小三角形 的 底 為 an , 腰 為 bn , 高為 hn , 為了 敘述方便, 設 m = n - 1, 則 第 n - 1 層 的 小三角形 的 底 為 am , 腰 為 bm, 高 為 hm, 根據 勾股定理 :
an = bm = [ ( 1/2 * am ) ² + hm ² ] 開方
hm = r - [ r ² - ( 1/2 * am ) ² ] 開方
a1 = ( r ² + r ² ) 開方 = 根號 2 * r
於是,
S_扇OAB = S△OAB + S△1 + 2 * S△2 + 4 * S△3 + …… + 2^(n - 1) * S△n , n -> 無窮
= 1/2 r ² + 1/2 a1 h1 + 2 * 1/2 a2 h2 + 4 * 1/2 a3 h3 + …… + 2^(n - 1) * 1/2 an hn , n -> 無窮
π = 4 * S_扇OAB / r ²
= 4 * [ 1/2 r ² + 1/2 a1 h1 + 2 * 1/2 a2 h2 + 4 * 1/2 a3 h3 + …… + 2^(n - 1) * 1/2 an hn ] / r ²
= [ 2 r ² + 2 a1 h1 + 4 * a2 h2 + 8 * a3 h3 + …… + 2^n an hn ] / r ² , n -> 無窮
可以 令 r = 1, 則
π = 2 + 2 a1 h1 + 4 a2 h2 + 8 a3 h3 + …… + 2^n an hn , n -> 無窮
a1 = 根號 2
這就是 π 的 無窮級數 。
應該指出, 這個 級數 的 每一項 都會有 開方 , 開方 會 產生 無理數, 無理數 是 無限不循環小數, 實際計算 中 只 取 有限 的 位數 會 產生 誤差, 而 每一項 又 根據 前面 的 項 計算 而來, 這個 誤差 也會 積累 下來 。
我用 Html5 + javascript 寫了一個 程序, 來 計算 上面給出 的 無窮級數, 項目地址 : https://github.com/kelin-xycs/PiSeries 。
計算結果 是 當 n = 20 時, π = 3.14159265358862 。 呵呵呵呵 。
javascript 的 浮點數 是 雙精度 浮點數, 有效數字 大約 是 15 位 數字, 所以 結果 也是 15 位 數字 的 , 但 理論上, 根本 的 誤差 因素 是 上面說的 每一項 開方 產生 無理數 。