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

一、计算原理

Maclaurin级数求以e为底数的指数函数的公式如下:

220157_9yz7_1425762.png

注:公式摘自维基百科页面

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后,效果如下图所示:

215921_KdCr_1425762.png

END

转载于:https://my.oschina.net/Tsybius2014/blog/610642

javascript经典特效---以e为底的对数.rar 以e为底的对数.rar以e为底的对数.rar以e为底的对数.rar以e为底的对数.rar以e为底的对数.rar以e为底的对数.rar 立即下载

相关推荐

利用泰勒级数计算e的值

计算e的近似值,当最后一项的绝对值小于10^-5时认为达到了精度要求,并统计总共累加了多少项?

前端关于 js 的 Math 对象

Math 对象属性 Math.E; //2.718281828459045 一个数字,表示 Euler的数 Math.LN2; //0.6931471805599453 LN2 属性就是 loge2,即 2 的自然对数,其值近似于 0.69314718055994528623。 Math.LN10; //2.302585092994046 LN10 属性就是 loge10,即 10 的自然对数,其值近似于 2.3025850929940459011。 Math.LOG2E; //1.4...

John_jian_yo的博客 452

OpenDRIVE车道计算避坑指南:为什么你的poly3曲线总对不齐?

本文深入解析OpenDRIVE标准中车道几何计算的三大核心难题:参数化三次多项式(ParamPoly3)的坐标系转换与参数映射、车道偏移与宽度的优先级判定,以及螺旋线(Spiral)接续的平滑性保障。通过实战案例与代码示例,提供了一套避免车道线错位与曲率不连续的精确计算与验证方法,是高精地图开发与仿真场景构建的实用避坑指南。

q9w8e7r6t5的博客 424

C语言编程题:用泰勒级数求自然数e的近似值

题目:C语言中用泰勒级数求e的近似值,直到最后一项小于 10的负6次方为止次方 e=1+1/1!+1/2!+...+1/n! 描述:观察公式前两项可以直接不用计算,合并为2,设置三个float型变量,e为结果,s为分子,i为分母,通过i累加再相乘之后实现分母的阶乘变化。   输入:不需要输入,在main函数内设置好初始值   输出:输出e的结果。 #include ...

qq_37835724的博客 2万+

GN算法边介数计算优化指南:如何提升大规模社交网络分析效率

本文深入探讨了GN算法在大规模社交网络分析中的核心瓶颈——边介数计算,并提供了从算法优化到工程部署的完整性能提升方案。通过引入Brandes算法、并行计算、增量更新及分布式处理等策略,有效解决了传统GN算法在处理百万级网络时效率低下的问题,为社交网络社区划分等实际应用提供了高效解决方案。

weixin_29196613的博客 486

【CIC-IDS数据集+机器学习】实现网络流量异常检测

本项目基于CIC-IDS数据集,使用多种机器学习算法实现网络流量异常检测系统。项目采用了完整的机器学习工作流程,从数据预处理到模型部署,实现了高精度的网络入侵检测。

XiaoMu_001的博客 1936

计算自然对数底e的值

按下面的公式计算自然对数底e的值(n的值取20) 编写一个java程序jse.java,按下面的公式计算自然对数底e的值(n的值取20): e=1+1/1!+1/2!+1/3!+1/4!+…1/n! ( 泰勒公式推出来的   e^x≈1+x+x^2/2!+x^3/3!+……+x^n/n!   当x=1时,e≈1+1+1/2!+1/3!+……+1/n!   取n=10,即...

墨尔本,晴 4283

机器学习预测股票收益(一)之随机森林模型

机器学习预测股票收益(一)前言一、导入库和数据二、处理数据以及计算特征变量三、使用随机森林回归预测股票收益1.构建训练集和测试集2.查看预测结果四、根据预测结果构建long-short投资组合1.定义投资组合函数2.定义绩效分析函数五、引入Fama-French Factor六、投资组合表现1.超额收益表现2.多因子回归总结 前言 本文将使用Python整理1927-2020年所有美国上市公司股票数据。根据历史收益以及交易量,使用随机森林,支持向量机以及神经网络等机器学习方法预测股票收益。最优结果构建的资产

weixin_47174968的博客 1万+

java求自然数E

Application:import java.io.*;   public class Xiti333      {    int n=1;    int sum;    double sum1;         public int jiecheng(int n)    //先求阶乘    {      if(n==0) sum=1;      if(n>=1)        {       

陈灼光的博客 2497

ConvLSTM时空预测实战代码详解

ConvLSTM代码复现

JaysonWong的博客 1万+

TMS320F280039 CMD文件配置避坑指南:从.map文件看懂内存分配与溢出排查

本文详细解析了TMS320F280039芯片的CMD文件配置问题,通过.map文件分析内存分配与溢出排查。文章提供了实用的诊断技巧和解决方案,帮助开发者有效应对段溢出、地址重叠和栈堆冲突等常见问题,优化DSP程序的内存管理。

weixin_29168813的博客 446

求e(e是自然对数的底数)的近似值

e的计算公式是e=1+c(1)+c(2)+…+c(k),其中c(i)=1/i! /*求e的近似值*/ #include<iostream> using namespace std; int main() { double e = 1.0, c; long k = 1; do { c = 1.0; for (int i = 1; i <= k; i++) { c = c / i; } k++; e = e + c;//e的计算公式是e=1+c(1)+c(2)

Hyx1273724818的博客 2248

Appstore开发者必读:3.2(f)违规预警与高效申诉指南

本文为AppStore开发者提供了应对3.2(f)违规通知的完整指南。文章深度解析了3.2(f)条款下的隐瞒性、关联性与真实性违规类型,并提供了黄金48小时内的自查、申诉信撰写与提交全流程策略。同时,文章强调遵循App Review Guidelines,建立内部合规清单与保持账号独立,是预防违规、维护开发者账号安全的关键。

weixin_29214559的博客 272

#每日一题-求e的近似值-C

用泰勒公式求e的近似值,e精确到小数点后6位。 根据泰勒公式,可知e=1+1/1!+1/2!+1/3!+… #include<stdio.h> void main() { double i, x = 1, sum=1;//一般我们求和的时候赋给sum为0,求积时赋给x为1;e=1+1/1!+...既先赋给sum于1。 for ( i=1;i<=999;++i) //i不一...

weixin_44856344的博客 3939

Python爬虫实战:抓取全球船舶AIS定位数据的全流程指南

AIS(Automatic Identification System)自动识别系统是目前全球航运中用于实时跟踪船只位置的主要技术。名称、MMSI编号、呼号实时经纬度船速、航向吃水、目的港状态(航行/停泊/锚泊)航线信息等🛰️海上运输监控:追踪航线,预估到港时间;🛳️船舶管理系统:为物流、港口运营提供决策依据;🌊研究分析:如海洋运输碳排放研究、船只拥堵热力图等;🧠人工智能训练数据集:用于轨迹预测、碰撞预警模型。

2201_76125261的博客 1364

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

JavaScript Math(算数)对象

Math 对象 Math 对象用于执行数学任务。 使用 Math 的属性和方法的语法: var pi_value=Math.PI; var sqrt_value=Math.sqrt(15); 注释:Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(),像 Math.sin() 这样的函数只是函数,不是某个对象的方法。您无需创建它,通过把 Math

时光如一缕沙 967

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

如何用js求对数运算

Math.pow(2, 4),求幂 Math.LOG10E;以10为底,自然数E的对数。 Math.log(10);以自然数为底,10的对数。 那么如何求以10为底10的对数? Math.LOG10E*Math.log(10) 可以推出求以10为底,任何值X的对数的写法。 Math.LOG10E*Math.log(X)。 那么如何求以2为底的对数? Math.LOG2E,以2为底,自然数E的对数。 那么如何求以2为底4的对数? Math.LOG2E*...

liixnhai的博客 6252

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

自然常数e(无理数)探究

在学习JavaScript时看到自然常数E,想知道这是怎样的一个无理数,查阅时看到一段解释,感觉通俗易懂,就转载记录下来。 在《飞蛾真的是因为趋光所以扑火?》中,通过对飞蛾运动轨迹的简化表达得到了与自然常数e相关的等角螺旋线。自然常数 e 确实是一个奇妙的数字,这里的 e并不仅仅代表一个字母,它还是一个数学中的无理常数,约等于2.718281828459。 但你是否有想过,它到底怎么来的呢?为...

weixin_41993525的博客 1985

计算e的近似值 代码解读

源代码排版下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

c++&win32专栏 5928

自然对数e的近似值

#include #include int main() {     int n,i;     double sum=1.0,t,j=1.0;     scanf("%d",&n);     for(i=1;i     {         t=i*j;         sum+=1.0/t;         j=t;     }     printf("%.1

lbylzk的博客 6716

python计算e∧x近似值、最后一项绝对值小于10-6_C语言利用泰勒级数计算e的近似值,并统计出此时累加了多少项。要求最后一项的绝对值小于10-5...

展开全部这个问题肯62616964757a686964616fe4b893e5b19e31333431373231定要用到循环,由于次数不定所以用while循环。每个累加项是一个循环,对于每个累加项来说,里面又需要计算x的平方和阶乘,对于x平方好说,可以找规律,利用循环变量来控制,对于阶乘来说我们可以自定义一个函数达到代码复用的目的。以下是具体代码:#include#includedouble...

weixin_39854681的博客 5275

对自然对数 e 的计算

VB中并没常数e,我们需要通过运算得到它,数学中其运算方法为:e=1+1/1!+1/2!+1/3!+...+1/(n-1)!+1/n!用程序实现起来可以分为计算阶乘和计算e值两部分,其分别对应的过程如下:计算阶乘Private Function JC(ByVal Number As Integer) As DoubleJC = 1If Number = 0 Then  JC = 0Else

FrontGoggle 6632

泰勒公式求e值——c语言算法实现

题目: 通过泰勒公式的变形:e = 1 + (1/1!) + (1/2!) + (1/3!) + … + (1/n!)   (1/n! >= 10^-7)来求e的值 解析: 我们在看到由1到n的阶乘的时候第一反应肯定是用循环,而n!似乎有点碍事,我刚开始做的时候为了避开这个麻烦就构造了一个函数专门来求n! 这样看似简单,实际反而却麻烦,下面分别贴上两种方法:

羞答答的玫瑰静悄悄地开 2万+
上一篇: C# - 使用自定义控件实现名单修改的比较功能
下一篇: JavaScript学习:逻辑猜数游戏
chenzai1946
博客等级 码龄10年 41粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值