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

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

最近为期权开发一些基本技术指标,用到一些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

前端常用的CSS动画库

动效设计一直都是最近几年前端开发的热门趋势之一。动画是Web和UI设计的主要内容。一个完全静止的网站,即使是使用了微妙的悬停状态,也可能感觉不一样。如果缺少动画,就像缺少必要的东西一样。

12 个评估 JS 库你需要关心的事

当你调研一个 JS 库,功能当然是最重要的。作者给出了从 12 个角度全面分析 JS 库的可用性,分别是:特性,稳定性,性能,包生态,社区,学习曲线,文档,工具,发展历史,团队,兼容性,趋势

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

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

day.js轻量级处理时间和日期格式化库

Day.js是一个轻量的处理时间和日期的JavaScript库,和Moment.js的API设计保持完全一样. 如果您曾经用过Moment.js, 那么您已经知道如何使用Day.js。

20多个最佳 ICON 库

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

Echo.js图片延迟加载微型库

Echo.js是一个标准的独立的Javascript图片懒加载(延迟加载)库,它非常小巧快速,只有2KB,它使用HTML5的 data-*属性,延迟请求加载图片资源,不依赖任意第三方插件库,特别适用于移动端需要加载大量图片的应用。

十个最流行的前端 CSS 库

前端 CSS 库,可以帮助用户分担样式设计,从而显著提高原型制作速度;用户则可以凭借前端框架,更加轻松地构建起直观的可用应用程序。目前市场上存在大量前端框架可供选择,本篇文章的主要内容就是关于那些目前最为流行且常用的框架

10大Js图像处理库

对于很多人来说,使用Javascript来处理图像不是一件非常简单的事情,幸运的是我们可以借助第三方的库来实现我们想要的功能,本篇文章就介绍一有哪些Javascript图片处理库可供我们选择和使用!以下排名不分先后

Extjs的一些基础使用

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

Hammer.js实现多点触控的javascript库

Hammer.js是一个开源的能实现多点触控的javascript库,可以识别触摸,鼠标点击和手势滑动操作,它不依赖任何第三方库,并且非常小巧灵活。

点击更多...

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