math.js_灵活强大的JavaScript数学库

时间: 2018-04-08阅读: 2217标签: 

最近为期权开发一些基本技术指标,用到一些C++的数学库,刚好看到JavaScript的math.js库,这里对math.js做一下简单介绍。

一、什么是math.js

math.js是一个广泛应用于JavaScript 和 Node.js的数学库,它的特点是灵活表达式解析器,支持符号计算,内置大量函数与常量,并提供集成解决方案来处理不同的数据类型,如数字,大数字,复数,分数,单位和矩阵。
math.js可以在浏览器、node.js 和任何JavaScript引擎中使用。[下载地址:http://mathjs.org/download.html]

二、Features

      1、支持数字,大数,复数,分数,单位,字符串,数组和矩阵。

      2、与JavaScript的内置数学库兼容。

      3、包含一个灵活的表达式解析器

      4、符号计算。

      5、内置大量的函数和常量。

      6、没有依赖,运行在任何JavaScript引擎。

      7、可以用作命令行应用程序。

      8、容易扩展

      9、开源


三、用法

math.js支持各种软件包管理器(ex:npm & bower)安装,也可以从网站http://mathjs.org/download.html下载库。
通过npm安装:

pm install mathjs

通过bower安装:

bower install mathjs

math.js 可以从cdnjs 下载或者链接:

https://cdnjs.cloudflare.com/ajax/libs/mathjs/3.16.0/math.min.js

math.js可以类似于JavaScript的内置Math库。 此外,math.js可以使用eval表达式并支持链接操作。一下是math.js三种使用方式:


1、用静态函数和常数(就像JavaScript的Math对象)

math.round(math.e, 3);            
// 2.718math.add(2, 3);  
// 5 math.sqrt(-4);  
// 2i math.pow([[-1, 2], [3, 1]],2);     
// [[7, 0], [0, 7]]math.derivative('x^2 + x', 'x');  
// 2 * x + 1math.atan2(3, -3) / math.pi;     
 // 0.75


2、对字符串表达式进行求值运算 

math.eval('12 / (2.3 + 0.7)');    
// 4math.eval('12.7 cm to inch');     
// 5 inchmath.eval('sin(45 deg) ^ 2');     
// 0.5math.eval('9 / 3 + 2i');          
// 3 + 2imath.eval('det([-1, 2; 3, 1])');  
// -7


3、链式操作

math.chain(3) .add(4).multiply(2).done(); // 14


4、矩阵操作

var n = math.matrix([[4,3,2], [6,6,8], [7,4,5]]);   
console.log(n.valueof()); // [[4,3,2],[6,6,8],[7,4,5]]

可以使用如下代码来创建一个用0填充的矩阵:

var z = math.zeros(2,2);  
console.log(z.valueof());   // [[0, 0], [0, 0]]

注:大多数math.js函数,都需要valueof()或者done()函数来真正地获取操作的值,如上面代码所示。


5、BigNumbers

var b = math.complex('4-2i');
b.re = 5;
console.log(b.valueof()); // 5-2i

math.js对BigNumbers的支持,拥有任意精度的数值,并且是具有实部和虚部的复数。

math.js文档地址:http://mathjs.org/docs/index.html


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/593

34 个最受欢迎的 JavaScript 库

直接开门见山,看看有哪些好用受欢迎的库值得我们使用。nodemon在编写调试Node.js项目,修改代码后,需要频繁的手动close掉,然后再重新启动,非常繁琐。现在,我们可以使用nodemon这个工具

20多个最佳 ICON 库

在应用界面中图标的存在,会给用户一个良好第一印象,这个挺重要的。但是从零开始开发图标需要大量的时间和金钱。在你的网站上使用图标可以让你有效地与你的访问者交流:它们增加了可读性,突出了重要的内容,加强了功能或特性

Push.js:Javascript桌面通知库

Push.js是一个可以快速运行和接收的Javascript桌面通知库,它支持IE9+,以及现代浏览器如:Chrome, Safari, Firefox。它可以应用在网页消息推送方面,而且简单易用。

如何在前端中使用protobuf(node篇)

同样是要使用protobuf.js这个库来解析。之前提到,在vue中,为了避免直接使用.proto文件,需要将所有的.proto打包成.js来使用。而在node端,也可以打包成js文件来处理。但node端是服务端环境了

5个JavaScript的字符串处理库

使用字符串可能是一项繁琐的任务,因为有许多不同的用例。例如,将字符串转换为驼峰大小写这样的简单任务可能需要几行代码才能达到最终目标。

推荐10个很棒的 JS 库

虽然JavaScript本身很棒,但有它对应生态圈也很重要,这些圈会让 JS 更好。开发人员在开始一个新的中等项目时经常喜欢重新写轮子,这是一个糟糕的策略,使用第三方库是有意义的。因为这样的库有明确的用途,有更长生成的迭代

javascript中库是什么意思

JavaScript库是被封装好的一些JavaScript函数,是为了应对JavaScript高级程序设计时遇到的困难开发的,提供针对常见JavaScript任务的函数,包括动画、DOM操作以及Ajax处理。

Extjs的一些基础使用

ExtJS其实 是一个Ajax 框架,是一个用javascript 写的。与EasyUI差不多的一个框架。学习并不难,先找好一定的学习资料与文档,然后再练习几个demo,这样大概就有所了解了。具体精通,那只有等你自己在项目中多实践。

15个有趣的Javascript 和CSS库

让你了解到新兴和酷炫的web 开发趋势. 精心挑选发布一些认为大家值得关注的库:Direction Reveal、Carbon、Аxios、Jarvis、Toast UI Editor、Micron.js、lit

几个常用js库,别再重复造轮子了

color:JavaScript库,用于不可变的颜色转换和对CSS颜色字符串的支持。uuidjsUUID.js-JavaScript的RFC兼容UUID生成器

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!