文档章节

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

北风其凉
 北风其凉
发布于 2016/01/27 22:11
字数 455
阅读 153
收藏 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

© 著作权归作者所有

共有 人打赏支持
北风其凉

北风其凉

粉丝 116
博文 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
2018/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

没有更多内容

加载失败,请刷新页面

加载更多

Cookie 显示用户上次访问的时间

import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.serv......

gwl_
今天
1
0
网络编程

第14天 网络编程 今日内容介绍  网络通信协议  UDP通信  TCP通信 今日学习目标  能够辨别UDP和TCP协议特点  能够说出UDP协议下两个常用类名称  能够说出TCP协议下两个常用类名称...

stars永恒
今天
1
0
二进制相关

二进制 众所周知计算机使用的是二进制,数字的二进制是如何表示的呢? 实际就是逢二进一。比如 2 用二进制就是 10。那么根据此可以推算出 5的二进制等于 10*10+1 即为 101。 在计算机中,负数以...

NotFound403
昨天
3
0
day22:

1、写一个getinterface.sh 脚本可以接受选项[i,I],完成下面任务: 1)使用格式:getinterface.sh [-i interface | -I ip] 2)当用户使用-i选项时,显示指定网卡的IP地址;当用户使用-I选项...

芬野de博客
昨天
2
0
Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现

自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注。虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭借阿里中间件团队的背景,还是得到不少...

程序猿DD
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部