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