数学公式库mathjs 安装使用教程

news2024/7/4 15:07:11

Math.js 是个JavaScript 和 Node.js 的扩展数学库。它包括了灵活的表达式解析器,提供数字,大数值,复杂数值,单位,矩阵等等集成的解决方案。Math.js 很强大又易于使用。
在这里插入图片描述

特性

支持数值,大数值,复杂数值,单位,数组,字符串和矩阵

兼容 JavaScript 内置的数学库

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

支持链接操作

包含一系列内置函数和常量

没有任何依赖,可以运行在所有 JavaScript 引擎上

非常容易扩展

下载引用

官网:https://mathjs.org/index.html

安装:npm install mathjs

CDN:https://cdn.bootcdn.net/ajax/libs/mathjs/9.3.2/math.min.js

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.config()

配置项:

epsilon。用于测试两个比较值之间相等性的最小相对差异。所有关系函数都使用此值。默认值是1e-14。

matrix。函数的默认矩阵输出类型。

number。函数的数字输出类型,无法从输入中确定数字类型。但是对于大多数函数,输出的类型是根据输入确定的:作为输入的数字将返回一个数字作为输出,BigNumber作为输入返回BigNumber作为输出。

precision。BigNumbers的最大有效位数。此设置仅适用于BigNumbers,而不适用于数字。默认值是64。

predictable。可预测的输出类型的函数。如果为true,则输出类型仅取决于输入类型。如果为false(默认),则输出类型可能因输入值而异。例如math.sqrt(-4)返回complex(‘2i’)时,可预见的是假的,而返回NaN时真。在以编程方式处理计算结果时可能需要可预测的输出,但在评估动态方程时可能对用户不方便。

randomSeed。将此选项设置为种子伪随机数生成,使其成为确定性的。每次设置此选项时,将使用提供的种子重置伪随机数生成器。例如,将其设置为’a’将导致math.random()返回0.43449421599986604每次设置选项后的首次通话。设置为null使用随机种子为伪随机数生成器设定种子。默认值是null。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/669039.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

医疗IT绝缘监测应用

近年来,随着医疗技术的迅猛发展,电子电气相关医疗设备在医院中的应用越来越广泛,各类疾病治疗也越来越依赖医疗电气设备 。人们对医院医疗环境提出更高要求,传统的建筑、电气等设计已难以充分保障其人身安全。患者及医务人员已深陷…

每日学术速递6.10

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Unifying (Machine) Vision via Counterfactual World Modeling 标题:通过反事实世界建模统一(机器)视觉 作者:Daniel M. Bear, K…

LFS11.3在VMware安装后需要做的准备

参考lfs 11.3和Blfs 11.3 先简单罗列一下要做的步骤,后续有机会再补充一下细节,遇到问题欢迎读者留言。 1、配置vmware中的网络连接 使用vmware net8 net模式,选用VMnet 配置网络连接/etc/sysconfig/ 目录下ifconfig.*** (***为…

RK3588平台开发系列讲解(AI 篇)什么是RKNPU

文章目录 一、RKNPU的发展历史二、RKNPU单核架构三、RKNPU性能计算四、RKNPU应用场景沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇章主要讲解什么是RKNPU。 一、RKNPU的发展历史 二、RKNPU单核架构 三、RKNPU性能计算 NPU算力是指每秒可以处理的运算次数,通常…

基于Hata模型的BPSK调制信号小区覆盖模拟matlab完整程序分享

基于Hata信道模型的BPSK调制信号小区覆盖模拟matlab仿真,对比VoIP, Live Video,FTP/Email 完整程序: clc; clear; close all; warning off; addpath(genpath(pwd)); % Random bits are generated here. bits = randi([0, 1], [50,1]); M = 2; t = 1:1:50; trans = pskmod(bi…

支持硬件加速的opencv编译

背景 为了降低cpu的使用率提升系统的接入能力,需要将编解码模块移至GPU处理,opencv默认的发行版中不支持GPU加速,所以需要重新编译opencv使其支持GPU硬件加速。 读者 本文的读者须具备一定的Linux使用经验,如常规软件安装等操作…

扫雷小游戏【C语言】

目录 前言 一、基本实现逻辑 二、实现步骤 1. 我们希望在进入游戏时有一个菜单让我们选择 2. 我们希望可以重复的玩(一把玩完了还可以接着玩) 3. 采用多文件形式编程 4.要扫雷先得有棋盘(创建棋盘R*N) 5.初始化棋盘 6.打…

0014-TIPS-pawnyable : Double-Fetch pt_regs

原文 Linux Kernel PWN | 040302 Pawnyable之双取 Double Fetch 题目下载 漏洞代码 #include <linux/module.h> #include <linux/kernel.h> #include <linux/cdev.h> #include <linux/fs.h> #include <linux/uaccess.h> #include <linux/sl…

chatgpt赋能python:Python搜索本地文件指南

Python搜索本地文件指南 在进行开发或者日常使用中&#xff0c;需要对本地的文件进行搜索操作是常见的需求。如果你正在学习Python编程&#xff0c;接下来的内容会为你提供一些如何使用Python进行本地文件搜索的指南。 搜索文件 在Python中搜索本地文件可以使用os模块。该模…

杂记 | 使用FRP搭建内网穿透服务

文章目录 01 需求场景02 项目地址03 文件介绍04 编写配置文件4.1 编写frps.ini4.2 编写frpc.ini 05 测试 01 需求场景 1、有一台云服务器&#xff0c;Linux&#xff08;CentOS7&#xff09;系统 2、云服务器有公网ip&#xff0c;公网可以访问 3、本地电脑是家用笔记本&#xf…

AN10833-MIFARE type identification procedure.pdf

1.2范围 本文档描述了如何区分MIFARE接口卡IC系列的成员。ISO/IEC 14443-3描述了类型A的初始化和防冲突程序&#xff0c;该程序为所有MIFARE卡提供卡类型信息。 MIFARE卡与ISO/IEC 14443-3兼容。因此&#xff0c;已经存在的应用可以很容易地扩展到分别使用较新的MIFARE芯片和所…

017、数据库管理之监控

监控工具 TiDB数据库的监控体系TiDB Dashboard数据库监控系统数据流转监控系统访问地址 报警系统报警级别指标系统常用监控指标Service Port Status 常用监控指标PD的常用监控指标TiDB-Server的常用监控指标TiKV 的常用监控指标Dashboard的常用指标 实验&#xff1a; 通过监控工…

Flink 学习六 Flink 窗口计算API

Flink 学习六 Flink 窗口计算API 1.窗口 (window)概念和分类 窗口 window 是处理无限流的核心就是把无界的数据流,按照一定的规则划分成一段一段的有界的数据流(桶),然后再这个有界的数据流里面去做计算; 2.分类体系 2.1 滚动窗口 相邻窗口之间是没有数据重合 window 大小…

Geocomputation (2)Attribute data operations

Geocomputation &#xff08;2&#xff09;Attribute data operations 属性数据操作 来源&#xff1a;https://github.com/geocompx/geocompy 1.准备 #| echo: false import pandas as pd import matplotlib.pyplot as plt pd.options.display.max_rows 6 pd.options.disp…

chatgpt赋能python:Python搜索函数:快速、高效的搜索利器

Python 搜索函数&#xff1a;快速、高效的搜索利器 如果你经常使用 Python 编程语言&#xff0c;那么你应该知道搜索数据集的重要性。用于搜索的函数在 Python 中是关键而常用的工具。Python 搜索函数是一种高效、快速的搜索利器&#xff0c;它可以让你轻松地找到你需要的数据…

C生万物 | 聊聊枚举与联合体的用法

文章目录 枚举1、枚举类型的定义2、枚举的使用3、枚举的优点 联合体1、联合体类型的定义2、联合体的特点3、联合体大小的计算一道经典面试题&#xff1a;判断当前计算机的大小端存储 总结与提炼 本文&#xff0c;我们就来谈谈C语言中的枚举和联合体&#xff0c;因为这两块知识点…

6月21日第壹简报,星期三,农历五月初四

6月21日第壹简报&#xff0c;星期三&#xff0c;农历五月初四坚持阅读&#xff0c;静待花开1. 中国LPR“对称降息”10个基点&#xff0c;房贷迎今年首次“降息”。2. 孟加拉国正式申请加入金砖国家&#xff0c;中方&#xff1a;欢迎更多伙伴早日加入金砖大家庭。3. 历时近2年波…

7、DuiLib动态创建控件

文章目录 1、动态创建控件2、纯代码方式动态创建控件3、基于构建好的 XML 动态创建控件&#xff08;CDialogBuilder&#xff09; 1、动态创建控件 在实际业务场景中&#xff0c;并不是所有界面元素都可以通过 XML 预先定义好的&#xff0c;有时候我们需要根据数据库或者服务器…

【计算机组成原理】主存储器

目录 一、存储体系基本概念 二、主存储器的基本组成 三、SRAM和DRAM 四、只读存储器ROM 五、主存储器与CPU的连接 六、双端口RAM和多模块存储器 一、存储体系基本概念 一个二进制位&#xff08;bit&#xff09;是构成存储器的最小单位&#xff1b;字节&#xff08;8bit&…

总结uwsgi的安装、配置与设置开机自启

一、uwsgi的安装与测试 1、uwsgi安装 pip install uwsgi# 查看uwsgi版本号 uwsgi –version 如果服务器安装anconda&#xff0c;有可能安装不上去&#xff0c;建议使用以下命令&#xff1a; conda install -c conda-forge uwsgi 2、测试uwsgi 创建test.py文件,并写下以下…