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


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272586.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272586.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272586.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

html的閃爍字,HTML最簡單的文字閃爍代碼

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓Titlekeyframes blink{0%{opacity: 1;}50%{opacity: 1;}50.01%{opacity: 0;}100%{opacity: 0;}}-webkit-keyframes blink {0% { opacity: 1; }50% { opacity: 1; }50.01% { opacity: 0; }100% { opacity: 0; }}-moz-keyframes blin…

video和dvd audio區別:

VIDEO 是視頻,AUDIO是音頻。DVD- Audio 是目前流行的DVD光碟格式的一種擴展,區別在于它能夠傳輸先前所有音頻載體格式無法攜帶的全新標準的高質量音頻數據。最引人注目的特點是它多聲道音頻的能力。轉載于:https://www.cnblogs.com/zjqqqq/p/5060931.htm…

Win10非常好用的6個使用技巧

很多人已經用上了Win10系統,為了提高使用效率掌握使用技巧尤為重要,今天我為大家分享win10的6個使用技巧。第一個:快速查找文件(win鍵E)想要打開某個文件,直接使用這個快捷鍵就可以打開資源管理器&#xff…

servlet html登錄,Servlet實現用戶登錄

1、登錄過程分析:通過表單收集用戶的數據,Servlet通過request對象獲得用戶提交的數據,服務器還需要從數據庫中通過sql語句查詢有沒有表單提交的數據中的用戶。有則登錄成功,否則,登錄失敗。2、工程結構:3、…

HTML5拖放API

HTML5拖放API 拖放事件 HTML5拖放API 拖放事件事件提供了拖放可以控制幾乎所有方面的拖放操作。棘手的部分是確定每個事件觸發:在拖項目火;別人火下降的目標。 拖動項時,以下事件(按照這個順序):拖曳開始拖…

C#easyui combotree 設置節點折疊

樹實體public class Combotree{public string id { get; set; }public string text { get; set; }public string state { get; set; }public List<Combotree> children { get; set; }} 只需要在初始化數據的時候給state 設置為 closed注意&#xff1a;不要在最后一級節點…

用于大型的科學計算的計算機,科學計算器廣泛適用于大、中、小學生、教師、科研人員及其他各界...

科學計算器廣泛適用于大、中、小學生、教師、科研人員及其他各界人士。相關句子1、機器人廣泛應用于弧焊&#xff0c;點焊&#xff0c;涂膠&#xff0c;切割&#xff0c;搬運&#xff0c;碼垛&#xff0c;噴漆&#xff0c;科研及教學。3、可以滿足大學本科和研究生有關實驗課教…

C#中AssemblyInfo.cs文件詳解

1、.Net工程的Properties文件夾下自動生成一個名為AssemblyInfo.cs的文件&#xff0c;一般情況下我們很少直接改動該文件。但我們實際上通過另一個形式操作該文件。那就是通過在鼠標右鍵點擊項目的屬性進入“應用程序”->“程序集信息”&#xff0c;然后修改信息。2、通過特…

談項目需求

&#xfeff;&#xfeff;三種客戶類型&#xff1a; 1 的確很專業。能提供基本可用的文檔&#xff0c;能給出要求規范&#xff0c;能向你提出有價值疑問和擔心。能快速回答你的問題。2 以為自己很專業。 給的文檔基本沒法用。沒法提供規范和標準&#xff0c;喜歡指指點點和挑毛…

html復制文字兼容手機,JavaScript+Html5實現按鈕復制文字到剪切板功能(手機網頁兼容)...

新學習JavaScript&#xff0c;就碰到這么一個需求&#xff0c;幾乎網上的方法都試過了。寫出了總結下使用的方法&#xff1a;clipboard插件下載地址&#xff1a;https://github.com/zenorocha/clipboard.js/tree/master引入插件&#xff1a;目錄\clipboard.js-master\dist\clip…

MVC5 Controller構造方法獲取User為空解決方法

用如下方法獲取UserId報空引用異常 public class BaseController : Controller {protected SiteContext db new SiteContext();protected Guid userId;public BaseController(){userId Guid.Parse(User.Identity.GetUserId());} } 由于Controller未初始化完成&#xff0c;Use…

計算機應用領域的CIMS,計算機的應用領域

計算機的應用領域近年來&#xff0c;計算機技術得到了飛躍發展&#xff0c;超級并行計算機技術、高速網絡技術、多媒體技術、人工智能技術等相互滲透&#xff0c;改變了人們使用計算機的方式&#xff0c;從而使計算機幾乎滲透到人類生產和生活的各個領域&#xff0c;對工業和農…

VS2015企業版專業版密鑰

親測可用&#xff0c;有需要的可以mark一下&#xff01;專業版&#xff1a;HMGNV-WCYXV-X7G9W-YCX63-B98R2企業版&#xff1a;HM6NR-QXX7C-DFW2Y-8B82K-WTYJV

Thinkphp編輯器擴展類kindeditor用法

一&#xff0c; 使用前的準備。 使用前請確認你已經建立好了一個Thinkphp站點項目。1&#xff0c;Keditor.class.php和JSON.class.php 是編輯器擴展類文件&#xff0c;將他們拷貝到你的站點項目的ThinkPHP\Lib\ORG\Net 目錄下。2&#xff0c;editor目錄是kindeditor的核心包。將…

實時操作系統與通用計算機操作系統的區別,實時操作系統(RTOS)和通用操作系統(OS)之間的區別...

RTOS vs OS大多數人都熟悉電腦上使用的操作系統。用于個人電腦的最常見的操作系統包括&#xff1a;微軟的Windows&#xff0c;蘋果的OS X以及各種版本的Linux。但是多數人都不知道實時操作系統(縮寫RTOS)&#xff0c;一種用于實時響應的更專業化的操作系統。RTOS和OS兩者之間最…

Memcached的基礎梳理

1 、Memcached 概念官方解釋如下&#xff1a;What is Memcached?Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.Me…

html5 canvas 筆記五(合成與裁剪)

組合 Compositing globalCompositeOperation syntax: globalCompositeOperation type 注意&#xff1a;下面所有例子中&#xff0c;藍色方塊是先繪制的&#xff0c;即“已有的 canvas 內容”&#xff0c;紅色圓形是后面繪制&#xff0c;即“新圖形”。 source-over  這是默認…

一個能夠編寫、運行SQL查詢并可視化結果的Web應用:SqlPad

SqlPad 是一個能夠用于編寫、運行SQL查詢并可視化結果的Web應用。支持 PostgreSQL、MySQL 和 SQL Server。SqlPad 目前僅適合單個團隊在內網中使用&#xff0c;它直接通過網絡連接到數據庫服務器&#xff0c;任何人可以在上面執行任意 SQL 語句。安裝首先安裝 Node.js.安裝好No…

加拿大計算機語言學,加拿大語言學專業排名

語言學專業簡言之就是學習語言&#xff0c;包括語言的結構、形成、歷史、以及人們如何使用語言等等。下面出國留學網小編和大家聊一聊2018加拿大大學語言學專業排名&#xff0c;希望對同學們有所幫助&#xff0c;歡迎閱讀。1麥吉爾大學 McGill University麥吉爾大學是全球大學校…

UIView之常用方法

UIView之常用方法 將一個視圖添加為子視圖&#xff0c;并使之在最上面顯示 -(void)addSubView:(UIView *)view;將指定子視圖移動到頂部 -(void)bringSubViewToFront:(UIView *)view;將指定之視圖放到最下面 -(void)sendSubViewToBack:(UIView *)view;將指定視圖添加到subviews數…