文档章节

JavaScript学习:使用Maclaurin级数求自然对数底e的近似值

北风其凉
 北风其凉
发布于 2016/01/27 22:11
字数 455
阅读 150
收藏 2

一、计算原理

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

© 著作权归作者所有

共有 人打赏支持
北风其凉

北风其凉

粉丝 115
博文 498
码字总数 463468
作品 4
朝阳
程序员
JavaScript服务器端开发基础之Math对象小结

JavaScript提供基础的算术运算符来实现对算术运算的支持,例如加法运算符+,减法运算符-,乘法运算符*,除法运算符/和求余运算符%。此外,还支持复杂的算术运算,这是通过作为Math对象的属性...

技术小甜
2017/11/07
0
0
JavaScript Math对象

Math 的属性和方法的语法 Math 对象属性 属性 描述 E 返回算术常量 e,即自然对数的底数(约等于2.718)。 LN2 返回 2 的自然对数(约等于0.693)。 LN10 返回 10 的自然对数(约等于2.302)...

HarleyZhuge
01/29
0
0
js内置对象Math的属性和方法

属性: constructor 所建立对象的函数参考 prototype 能够为对象加入的属性和方法 E 欧拉常量,自然对数的底(约等于2.718) LN2 2的自然对数(约等于0.693) LN10 10的自然对数(约等于2.302) LOG2...

一览无余
2014/12/29
0
0
了解 JavaScript 中的内置对象

Number JavaScript Number 对象是 一个数值包装器。您可以将其与 new 关键词结合使用,并将其设置为一个稍后要在 JavaScript 代码中使用的变量: 或者,您可以通过将一个变量设置为一个数值来...

百变茄
2014/01/02
0
0
JavaScript语言简介及简单实例

JavaScript语言是基于对象的(Object-Based),而不是面向对象的(object-oriented)。之所以说它是一门基于对象的语言,主要是因为它没有提供象抽象、继承、重载等有关面向对象语言的许多功...

icheer
2012/07/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

linux使用ntfs-3g操作ntfs格式硬盘

Linux内核目前只支持对微软NTFS文件系统的读取。 NTFS-3G 是微软 NTFS 文件系统的一个开源实现,同时支持读和写。NTFS-3G 开发者使用 FUSE 文件系统来辅助开发,同时对可移植性有益。 安装 ...

linuxprobe16
41分钟前
1
0
kubeadm部署kubernetes集群

一、环境要求 这里使用RHEL7.5 master、etcd:192.168.10.101,主机名:master node1:192.168.10.103,主机名:node1 node2:192.168.10.104,主机名:node2 所有机子能基于主机名通信,编辑...

人在艹木中
今天
7
0
Shell特殊符号总结以及cut,sort,wc,uniq,tee,tr,split命令

特殊符号总结一 * 任意个任意字符 ? 任意一个字符 # 注释字符 \ 脱义字符 | 管道符 # #号后的备注被忽略[root@centos01 ~]# ls a.txt # 备注 a.txt[root@centos01 ~]# a=1[root@centos01...

野雪球
今天
2
0
OSChina 周二乱弹 —— 程序员圣衣

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文:分享Skeeter Davis的单曲《The End of the World》 《The End of the World》- Skeeter Davis 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
今天
16
0
[ python import module ] 导入模块

import moudle_name ----> import module_name.py ---> import module_name.py文件路径 -----> sys.path (这里进行查找文件) # from app.web import Personimport app.web.Person as Pe......

_______-
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部