math.js:灵活强大的JavaScript数学库
最近为期权开发一些基本技术指标,用到一些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
math.js:灵活强大的JavaScript数学库相关推荐
- 【JS】详解JS精度丢失原理以及业务中价格计算引入数学库 Math.js的使用场景
一.JS为什么会出现精度丢失问题 1.JS基本数据类型 Number 在内存中是怎么存储的? JS中的Number类型使用的是双精度浮点型,也就是其他语言中的double类型.在计算机内存中,单精度数 ...
- 2019年11个值得研究的Javascript机器学习库
https://www.toutiao.com/a6669159846014616071/ 虽然大部分机器学习都是用python这样的语言完成的,但在Javascript生态系统中,其前端和后端社区都 ...
- math.sqrt_Math.SQRT1_2属性与JavaScript中的示例
math.sqrt JavaScript | Math.SQRT1_2属性 (JavaScript | Math.SQRT1_2 Property) Math.SQRT1_2 is a propert ...
- js中的new file_深受 Pandas 启发的 JavaScript 开源库 — Danfo.js 现已推出!
特邀博文 / 独立研究员 Rising Odegua 与来自 Data Science Nigeria 的 Stephen Oni Danfo.js 是个 JavaScript 开源库,提供了高性能. ...
- 美观又实用,10 款强大的开源 Javascript 图表库
2019独角兽企业重金招聘Python工程师标准>>> 随着发展,现代 Web 设计在改善体验和功能的同时,对于美观的追求也越来越高,可视化.交互式.动态等元素和效果似乎已成为标配. ...
- 功能强大的JavaScript 拖拽库 SortableJS
功能强大的JavaScript 拖拽库 SortableJS 官网:http://www.sortablejs.com/ 示例: 配置项: var sortable = new Sortable(el ...
- Math.js库的使用
Math.js库的使用 可以使用npm或Bower来安装Math.js,直接从Web网站下载,或者通过内容发布网络(CDN)来方法.它可以用于浏览器中,或者用于Node应用程序中.它提供了一组函数来执 ...
- 前端绘图开源组件_美观又实用,10款强大的开源Javascript图表库
随着发展,现代 Web 设计在改善体验和功能的同时,对于美观的追求也越来越高,可视化.交互式.动态等元素和效果似乎已成为标配. 以下是为开发者推荐的 10 款开源 Javascript 图表库,可以帮 ...
- Nexus.js介绍:一个多线程的JavaScript运行库
首先,如果你不熟悉这个项目,建议先阅读之前写的一系列文章.如果你不想阅读这些,不用担心.这里面也会涉及到那些内容. 现在,让我们开始吧. 去年,我开始实现Nexus.js,这是一个基于Webkit/J ...
最新文章
- Spring Boot如何优雅的校验参数
- bash之逻辑控制---for语句
- CentOs7中安装sonarQube服务系列------1.CentOS7中Docker的安装
- 8.图片组件和动画效果--从零起步实现基于Html5的WEB设计器Jquery插件(含源码)...
- Eurek Ribbon Feign常见问题及解决
- Android高级开发面试题目,再也不用担心不能升职加薪了。
- poj 2392 Space Elevator 二进制拆包多重背包
- PHP实现文件上传,下载,批量下载
- mysql如何从两个表取出内容_如何从mysql中的两个表中获取数据?
- Soft Actor Critic算法论文公式详解
- PHP实现图片转字符画
- IOS开发学习基于swift语言
- 数据仓库上云那些事儿
- Qt QTouchEvent 多点触控
- 根据两点的经纬度求方位角和距离,等
- 观察containerd-shim-runc-v2进程与容器里的1号进程
- 第十二届蓝桥杯大赛软件赛省赛 Python 大学 A 组 部分试题与解析
- 微信小程序后台销毁时间 演变和总结(热启动时间限制)
- 《网格交易法数学+传统智慧战胜华尔街》内容介绍及PDF下载
- 10.网桥是什么?网桥和路由器及交换机的区别?以太网和令牌环网,nat,查公网ip等
热门文章
- 海华模组:WIFI、BT、SoC模组列表
- HALCON示例程序train_characters_ocr.hdev使用SVM分类器训练字体
- 浅谈OpenCV[轉]
- 学习笔记(24):Python网络编程并发编程-进程与线程的区别
- C# —— 序列化与反序列化
- python时间格式_python 格式化日期
- 将一句话的单词进行倒置,标点符号不倒换。比如一句话:“i love you.”倒换后变为you. love i
- jq js json 转字符串_JS中JSON对象和String之间的互转及处理技巧
- oracle数据库主键自增序列_Oracle数据库序列详解
- [BZOJ2725/Violet 6]故乡的梦