圆周率 π 展开 为 无穷级数
圆周率 π 展开 为 无穷级数 其实 很简单, 如图 :
可以用 黄色小三角形 和 橙色小三角形, 以及 依此类推 下去 的 无数个 小三角形 来 逼近 圆面积, 把 这个 无限逼近 的 圆面积 称为 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 位 数字 的 , 但 理论上, 根本 的 误差 因素 是 上面说的 每一项 开方 产生 无理数 。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
2019-02-13 我发起了一个 网格计算 协议 开源项目 GridP
2019-02-13 从 面向对象 的 弊端 想到的