一、计算原理
Maclaurin级数求以e为底数的指数函数的公式如下:
注:公式摘自维基百科页面
https://en.wikipedia.org/wiki/Taylor_series#List_of_Maclaurin_series_of_some_common_functions
根据该公式可知,当x为1时,使用“1+1+1/2!+1/3!+... ”的方法可以求出e的近似值
二、页面代码
建立一个文件calc_e.html,里面输入下面代码:
<html>
<head>
<title>JS学习 - 计算自然对数e</title>
</head>
<style type="text/css">
table
{
border-spacing: 0 0;
border-collapse: collapse;
font-size: 10pt;
}
table th
{
background: #3399FF;
text-align: center;
text-decoration: none;
font-weight: normal;
padding: 3px 6px 3px 6px;
width:200px;
}
table td
{
vertical-align: top;
text-align: center;
padding: 3px 6px 3px 6px;
margin: 0px;
border: 1px solid #3399FF;
}
</style>
<body>
请输入迭代次数(1-15)
<input type="text" id="iter_times" onkeydown="keydown();" />
<input type="button" id="calc_e" value="计算自然对数e" onclick="calculateE();" />
<hr>
<table id="result">
<tr>
<th>序号</th>
<th>计算结果</th>
<th>精确结果</th>
</tr>
</table>
<script>
//计算自然对数并将结果显示在table中
function calculateE()
{
//判断:输入必须为正整数且须在1-15之间
var iterTimes = document.getElementById("iter_times").value;
if (iterTimes.trim() == "") {
alert("未输入任何数据");
return;
} else if (!/^\d+$/.test(iterTimes)) {
alert("[" + iterTimes + "]不是一个正整数");
return;
} else if (iterTimes == 0 || iterTimes > 15) {
alert("请输入介于1-15之间的正整数");
return;
}
var table = document.getElementById("result");
//清空table
while (table.rows.length > 1) {
table.deleteRow(1);
}
//计算自然对数
var result = 1;
var tmp = 1;
for (var i = 1; i <= iterTimes; i++) {
var root = table.insertRow(table.rows.length);
var c1 = root.insertCell(0);
c1.innerHTML = i;
var c2 = root.insertCell(1);
result += 1 / tmp;
tmp *= (i + 1);
c2.innerHTML = result;
var c3 = root.insertCell(2);
c3.innerHTML = Math.E;
}
}
//在文本框输入完毕后按下回车视同单击按钮
function keydown() {
if (event.keyCode == 13) {
var button = document.getElementById("calc_e");
button.click();
}
}
</script>
</body>
</html>
三、效果演示
使用Firefox浏览器(版本号44.0)打开calc_e.html后,效果如下图所示:
END