JavaScript计算圆周率(解析几何+定积分)

Posted YhPythonJSCPP

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript计算圆周率(解析几何+定积分)相关的知识,希望对你有一定的参考价值。

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

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

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

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

现在取[-r, r]定积分值得到半圆面积。

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

接下来的步骤就是求定积分的值了。如果要用牛顿—莱布尼茨公式,需要去找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;

        function y (x) 
            return Math.sqrt(r * r - x * x);
        

        function main () 
            var s = 0;

            for (var x = -r; 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>

输出结果:

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

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


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

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

http://blog.csdn.net/yorhomwang

以上是关于JavaScript计算圆周率(解析几何+定积分)的主要内容,如果未能解决你的问题,请参考以下文章

怎样计算定积分的近似值?

Python用积分思想计算圆周率

人工智能数学基础---定积分2:定积分的性质

微积分——曲线积分

线性卷积、周期卷积、圆周卷积的异同

不定积分与定积分(高等数学)