解析几何圆的方程+定积分+JavaScript计算圆周率

最近数学预习到选修本的定积分,前一向用它解决了物理上的正弦交流电有效值问题,前几天突发奇想,想用它来计算圆周率。于是我花了半节物理课的时间研究了一下,得出了以下求解方法。

首先我们知道半径为r,圆心为(0, 0)的圆的方程是:

x2+y2=r2

不过以上是个方程,无法使用积分求解,所以我们要对它进行变形,变成一个函数。根据本人多年刷题经验,要把其变为函数,只需取一个半圆即可,获取半圆则需将其变形为:

y=r2x2

由于算术平方根运算的到的值 > 0,所以该函数y就是以x为自变量的一个图像为半圆的函数。

这个函数取[-r, r]的定积分就是半圆的面积吗?错!是0,因为这个半圆关于y轴对称,左右半边定积分值一正一负,所以获得的面积为0,要解决这个问题很简单,将函数沿着x轴往右平移r,取[0, 2r]的定积分即可。

最终得到如下几个数学表达式求出圆周率:

y(x)=r2(xr)2

s=2r0y(x)dx

π=2sr2

接下来的步骤就是求定积分的值了。如果要用牛顿—莱布尼茨公式,需要去找F(x),F’(X) = y(x)。不过这个寻找的过程比较复杂,所以我就直接通过程序计算来实现获取面积近似值。正如定积分所定义,我们可以用如下示意图来理解如何获取面积近似值:

当我们把半圆分割为n(n为无穷大)个矩形,那么这个半圆面积就是这n个矩形的面积之和。

有了以上理论,就不难使用代码来实现了:

<!DOCTYPE html>
<html> <head> <title>Calculate PI</title> <script type="text/javascript"> var r = 1, dx = 0.00000001, upperLimit = r * 2; function y (x) { var cx = x - r; return Math.sqrt(r * r - cx * cx); } function main () { var s = 0; for (var x = 0; x < upperLimit; x += dx) { s += dx * y(x); } var pi = (s * 2) / (r * r); document.write("Calculational Value: " + pi); document.write("<br />"); document.write("Theoretical Value: 3.1415926535897932"); } main(); </script> </head> <body> </body> </html>

输出结果:
解析几何圆的方程+定积分+JavaScript计算圆周率_第1张图片

由于我们只能得到近似值,所以得到的圆周率和实际情况有差异。如果将半圆分得越细,那么得到的近似值越接近真实值。

该方法由本人自行研发,所以可能存在不足之处,如果大家知道更好的方式来求解圆周率,欢迎分享交流。

欢迎大家继续关注我的博客

转载请注明出处:Yorhom’s Game Box

http://blog.csdn.net/yorhomwang

你可能感兴趣的:(JavaScript,圆,定积分,解析几何)