math.js

an extensive math library for JavaScript and Node.js

概要

Math.jsはJavaScriptとNode.jsの広範な数学ライブラリです。 柔軟な表現パーサを備えており、数値、大きな数値、複素数、単位、行列を扱う、強力で使いやすい統合ソリューションを提供します。

math.js は、javascript のグローバルオブジェクト Math の不満を解消してくれる数値計算ライブラリ。様々な数学の関数に対応している上に、直交性を重視して、多倍長演算(BigNumber) や 複素数(Complex) の属性を指定すれば、全ての関数がその演算をしてくれる。

特徴

基本動作

DEMO

以下の構文解釈を試してください。
フルアプリケーションはこちら → Math Notepad

loading...
ショートカットキー:
  • 入力フィールドにフォーカスを設定するために S キーを押す。
  • フルスクリーンを切り替える Ctrl+F11
  • 履歴を消去するには "clear" を入力。

BigNumbers

本家サイト


添付物

Examples

Browser examples

Advanced examples

参考サイト


リファレンス

定数 (constant)

Constant Description Value
e, E オイラーの数、自然対数の底。 e
i i * i = -1 と定義される虚数単位。複素数は a + b*i と表記され、a が実部、b が虚数部です。 sqrt(-1)
Infinity 無限大、浮動小数点数で処理できる最大数よりも大きい数。 Infinity
LN2 2の自然対数を返します。 LN2
LN10 自然対数10を返します。 LN10
LOG2E Eの底2の対数を返します。 LOG2E
LOG10E Eの底10の対数を返します。 LOG10E
NaN Not a number. NaN
null Value null. null
phi Phi は黄金比です。 比率が2つの数量のうちの大きい方と合計の比率と同じであれば、2つの数量は金の比率になります。 (1 + sqrt(5)) / 2 として定義されます。 phi
pi, PI 数 pi は、円の円周とその直径の比である数学定数です。 pi
SQRT1_2 1/2の平方根を返します。 SQRT1_2
SQRT2 2の平方根を返します。 SQRT2
tau Tau は円の円周に対する半径の比定数で、2*pi に等しい。 tau
uninitialized 新しいエントリを初期化しないように行列のサイズを変更するときのデフォルト値として使用される定数です。
version math.jsのバージョン番号を返します。 version

関数 (function)

Construction functions (組み立て)

Function Description
bignumber(x) 任意の精度で数値を格納できるBigNumberを作成します。
boolean(x) ブール値を作成するか、文字列または数値をブール値に変換します。
chain(value) 値に連鎖操作を実行できるように、チェーン内の値をラップします。
complex(re, im) 複素数を作成するか、値を複素数に変換します。
createUnit(units) ユーザー定義の単位を作成し、単位を登録します。
fraction(numerator, denominator) 分数を作成する。値を分数に変換する。
index(range1, range2, ...) インデックスを作成します。
matrix(x) 行列を作成します。
number(value) 数値を作成するか、文字列、ブール値、または単位を数値に変換します。
sparse(x) 疎行列を作成します。
splitUnit(unit, parts) 単位が元の単位に等しい単位の配列で単位を分割します。
string(value) 文字列を作成するか、任意のオブジェクトを文字列に変換します。
unit(x) ユニットを作成します。

Expression functions

Function Description
compile(expr) 式を解析してコンパイルします。
eval(expr [, scope]) 式を評価する。 scope は変数を式に持ち込むときに {k: k, sum: sum} のようにオブジェクトで渡す。
help(search) 関数またはデータ型のヘルプを取得します。
parse(expr [, scope]) 式を解析する。
parser() パーサーを作成します。

Algebra functions (代数)

Function Description
lsolve(L, b) 前方代入によって線形方程式系を解く。
lup(A) 部分ピボットを使用して行列LU分解を計算します。
lusolve(A, b) 線形連立方程式を解きます。A * x = bAは [n × n] の行列で、 b は [n] の列ベクトルです。
slu(A, order, threshold) フルピボットで疎行列 LU分解を計算します。
usolve(U, b) 後退代入によって線形方程式系を解く。

Arithmetic functions (算術)

Function Description
abs(x) 数値の絶対値を計算します。
add(x, y) 2つの数を加算します。 x + y
cbrt(x [, allRoots]) 値の3乗根を計算します。
ceil(x) プラスの無限大に向かって値を丸める。x が複素数なら、実部と虚部ともにプラスの無限大に向かって値を丸める。
cube(x) 値の三乗を計算。x * x * x
divide(x, y) 2数の割り算。 x / y
dotDivide(x, y) 2つの行列を要素ごとに分割します。
dotMultiply(x, y) 2つの行列を要素ごとに掛け合わせます。
dotPow(x, y) 行列 x の各要素を y 乗します。(pow は、行列自体の掛け算を行います)
exp(x) 値の指数を計算します。
fix(x) ゼロに向かって値を丸めます。
floor(x) 値を負の無限大の方に丸めます。
gcd(a, b) つ以上の値または配列の最大公約数を計算します。
hypot(a, b, ...) リストの値の hypotenusa(斜辺) を計算します。
lcm(a, b) 2つ以上の値または配列の最小公倍数を計算します。
log(x [, base]) 値の対数を計算します。
log10(x) 値の10を底とした対数を計算します。
mod(x, y) modulus(剰余)を計算します。
multiply(x, y) 2つ以上の値の乗算。 x * y
norm(x [, p]) 数値、ベクトルまたは行列のノルムを計算します。
nthRoot(a) 値のn乗根を計算します。
pow(x, y) x の y乗を計算します。 x ^ y
round(x [, n]) 最も近い整数に値を丸めます。
sign(x) 値の符号を計算します。
sqrt(x) 値の平方根を計算します。
square(x) 値の平方を計算します。 x * x
subtract(x, y) 2つの値を減算します。 x - y
unaryMinus(x) 値の符号を反転し、単項マイナス演算を適用します。
unaryPlus(x) 単項プラス演算。
xgcd(a, b) 2つの値の拡張最大公約数を計算します。

Bitwise functions

Function Description
bitAnd(x, y) 2つの値のビット単位の AND。 x & y
bitNot(x) 値のビット単位の NOT。 ~x
bitOr(x, y) 2つの値のビット単位の OR。 x | y
bitXor(x, y) 2つの値のビット単位の XOR。 x ^ y
leftShift(x, y) x の値を y ビットだけ、論理左シフト。 x << y
rightArithShift(x, y) x の値を y ビットだけ、算術右シフト。 x >> y
rightLogShift(x, y) x の値を y ビットだけ、論理右シフト。 x >>> y

Combinatorics functions (組合せ論)

Function Description
bellNumbers(n) ベル数(Bell number)は、n個のものを分割する方法の総数。 bellNumbers(6) bellNumbers(12)
catalan(n) カタラン数(Catalan number)は、さまざまなタイプの組み合わせ構造を列挙します。 catalan(6), catalan(20)
composition(n, k) n 個の集まりを、k 個の部分に分けるやり方の総数。 composition(3, 2) composition(6, 2), composition(8, 3)
stirlingS2(n, k) 第2の種類のスターリング数は、n個のラベル付きオブジェクトのセットをk個の空でないラベルなしサブセットに分割する方法の数を数えます。    stirlingS2(10,3)

Complex functions (複素数)

Function Description
arg(x) 複素数の偏角を計算します。 c=5+3i; arg(c)
conj(x) 複素値の複素共役(Complex conjugate)を計算します。 c=5+3i; conj(c)
im(x) 複素数の虚部を取得します。 c=5+3i; im(c)
re(x) 複素数の実部を取得します。 c=5+3i; re(c)

Geometry functions (幾何学)

Function Description
distance([x1, y1], [x2, y2]) 計算:2次元空間と3次元空間における2点間の距離。 distance([0,0], [1,1]) distance([0,0,0], [1,1,1])
intersect(endPoint1Line1, endPoint2Line1, endPoint1Line2, endPoint2Line2) 2次元または3次元の2つの線と、3次元の線と平面の交点を計算します。 intersect([0, 0], [10, 10], [10, 0], [0, 10]) intersect([0, 0, 0], [10, 10, 0], [10, 0, 0], [0, 10, 0])

Logical functions

Function Description
and(x, y) Logical and.
not(x) Logical not.
or(x, y) Logical or.
xor(x, y) Logical xor.

Matrix functions (行列)

Function Description
concat(a, b, c, ... [, dim]) 2つ以上の行列を連結する。
cross(x, y) 3次元空間内の2つのベクトルの外積を計算します。
det(x) 行列の行列式を計算します。
diag(X) 対角行列を作成するか、行列の対角を取り出す \(x\) がベクトルの場合、対角にベクトル \(x\) を持つ行列が返されます。
dot(x, y) 2つのベクトルの内積を計算します。
eye(n) サイズ \(m \times n\) または \(n \times n \) の2次元単位行列を作成します。
filter(x, test) 配列または1次元の行列の項目をフィルタリングします。
flatten(x) 多次元行列を一次元の行列にまとめる。
forEach(x, callback) 行列/配列のすべての要素を繰り返し処理し、与えられたコールバック関数を実行します。
inv(x) 正方行列の逆行列を計算します。
map(x, callback) 行列/配列の各エントリで実行されるコールバック関数の結果を使用して、新しい行列または配列を作成します。
ones(m, n, p, ...) 1で満たされた行列を作成します。
partitionSelect(x, k) アレイまたは1Dマトリックスのパーティションベースの選択。
range(start, end [, step]) 範囲から配列を作成します。
resize(x, size [, defaultValue]) 行列のサイズを変更します。
size(x) 行列またはスカラーのサイズを計算します。
sort(x) 行列内のアイテムをソートします。
squeeze(x) 行列を絞って、行列から内側と外側の単一次元を削除します。
subset(x, index [, replacement]) 行列または文字列のサブセットを取得または設定します。
trace(x) 行列のトレースを計算する:正方行列の主対角線上の要素の合計。
transpose(x) 行列を転置する。
zeros(m, n, p, ...) ゼロで埋められた行列を作成します。

Probability functions (確率)

Function Description
combinations(n, k) \(n\) から \(k\) を選ぶ組み合わせの数。 \(_n C _k\)
factorial(n) 値の階乗を計算する階乗は整数値のみを引数としてサポートします。
gamma(n) 小さな値に対してはLanczos近似を使用し、大きい値に対しては拡張スターリング近似を使用して、値のガンマ関数を計算します。
kldivergence(x, y) 2つの分布の間のKullback-Leibler(KL)の相違を計算します。
multinomial(a) 多項係数は、a1、a2、...を選ぶ方法の数を計算します。
permutations(n [, k]) \(n\) 要素の集合から \(k\) 要素の順序付き部分集合を得る方法の数を計算する。\(_n P _r\)
pickRandom(array) 1次元配列から、ランダムに1つ以上の値を選択します。
random([min, max]) 一様分布を使用して、 min かつ max 未満の乱数を返します。
randomInt([min, max]) 一様分布を使用して、 min かつ max 未満のランダムな整数を返します。

Relational functions (比較)

Function Description
compare(x, y) 2つの値を比較します。
deepEqual(x, y) 2つの行列が等しいかどうか、要素をテストする。
equal(x, y) 2つの値が等しいかどうかをテストします。
larger(x, y) 値 \(x\) が \(y\) より大きいかどうかをテストします。
largerEq(x, y) 値 \(x\) が \(y\) より大きいか等しいかどうかをテストします。
smaller(x, y) 値 \(x\) が \(y\) より小さいかどうかをテストします。
smallerEq(x, y) 値 \(x\) が \(y\) より小さいか等しいかどうかをテストします。
unequal(x, y) 2つの値が等しくないかどうかをテストします。

Special functions (特殊)

Function Description
erf(x) さまざまな間隔のxについて合理的なチェビシェフ近似を使用して、値のerf関数を計算します。

Statistics functions (統計)

Function Description
max(a, b, c, ...) 値を持つ行列またはリストの最大値を計算します。
mean(a, b, c, ...) 行列の平均値または値を持つリストを計算します。
median(a, b, c, ...) 値を持つ行列またはリストの中央値を計算します。
min(a, b, c, ...) 行列の最大値または値のリストを計算します。
mode(a, b, c, ...) 数値または数値(数値または文字)を含むリストのモードを計算します。
prod(a, b, c, ...) 値を持つ行列またはリストの積を計算します。
quantileSeq(A, prob[, sorted]) 行列または確率リストの PROB注文分位(prob order quantile) を計算します。
std(a, b, c, ...) マトリクスまたはリストの標準偏差を値で計算します。
sum(a, b, c, ...) 値を持つ行列またはリストの和を計算します。
var(a, b, c, ...) 値を持つ行列またはリストの分散を計算します。

String functions

Function Description
format(value [, precision]) 任意の型の値を文字列にフォーマットします。
print(template, values [, precision]) 値を文字列テンプレートに補間する。

Trigonometry functions (三角関数)

Function Description
acos(x) 値の逆余弦を計算します。
acosh(x) \( acosh(x) = \log(sqrt(x^2 - 1) + x) \) と定義された値の双曲線逆コサインを計算します。
acot(x) \( acot(x) = atan(1/x) \) と定義された値の逆コタンジェントを計算します。
acoth(x) \( acoth(x) = atanh(1/x) = \frac{1}{2} \left ( \log \frac{x+1}{x} + \log \frac{x}{x-1} \right ) \) と定義される値の双曲線逆タンジェントを計算する。
acsc(x) \( acsc(x) = asin(1/x) \) と定義された値の逆コセカントを計算します。
acsch(x) \(acsch(x) = asinh(1/x) = \log( \frac{1}{x} + \sqrt{\frac{1}{x^2} + 1})\) と定義された値の双曲線逆コセカントを計算します。
asec(x) ある値の逆セカントを計算します。
asech(x) \( asech(x) = acosh(1/x) = \log( \sqrt(\frac{1}{x^2} - 1) + \frac{1}{x} ) \) と定義された値の双曲線逆セカントを計算します。
asin(x) 値の逆サインを計算します。
asinh(x) \( asinh(x) = \log (x + \sqrt{x^2 + 1}) \) と定義された値の双曲線逆サインを計算します。
atan(x) 値の逆タンジェントを計算します。
atan2(y, x) 2つの引数 y / x を使用して逆タンジェントを計算します。
atanh(x) \( atanh(x) = \log(\frac{1 + x}{1 - x}) / 2 \) と定義された値の双曲線逆タンジェントを計算する。
cos(x) 値のコサインを計算します。
cosh(x) \( cosh(x) = \frac{1}{2} (e^x + e^{-x}) \) と定義された値の双曲線コサインを計算する。
cot(x) 値のコタンジェントを計算します。
coth(x) \( coth(x) = 1 / tanh(x) \) と定義された値の双曲線コタンジェントを計算します。
csc(x) \( csc(x) = 1/sin(x) \) と定義された値のコセカントを計算します。
csch(x) \( csch(x) = 1 / sinh(x) \) と定義された値の双曲線コセカントを計算する。
sec(x) \( sec(x) = 1/cos(x) \) と定義された値のセカントを計算します。
sech(x) \( sech(x) = 1 / cosh(x) \) と定義された値の双曲線セカントを計算します。
sin(x) 値のサインを計算します。
sinh(x) \( sinh(x) = \frac{1}{2} (e^x - e^{-x}) \) として定義される値の双曲線サインを計算します。
tan(x) 値のタンジェントを計算します。
tanh(x) \( tanh(x) = \frac{e^{2x} - 1}{e^{2x} + 1} \) と定義された値の双曲線タンジェントを計算する。

Unit functions (単位)

Function Description
to(x, unit) 値の単位を変更します。

Utils functions

Function Description
clone(x) オブジェクトをクローンします。
isInteger(x) 値が整数かどうかをテストします。
isNaN(x) 値がNaN(数値ではない)かどうかをテストします。
isNegative(x) 値が負であるかどうかをテストする:ゼロより小さい。
isNumeric(x) 値が数値かどうかをテストします。
isPositive(x) 値が正であるかどうかをテストする:ゼロより大きい。
isPrime(x) 値が素数かどうかをテストする:それ自身と1以外の除数はない。
isZero(x) 値がゼロかどうかをテストします。
typeof(x) 変数の型を決定します。

単位 (units)

Math.js comes with the following built-in units.

Base Unit
Length meter (m), inch (in), foot (ft), yard (yd), mile (mi), link (li), rod (rd), chain (ch), angstrom, mil
Surface area m2, sqin, sqft, sqyd, sqmi, sqrd, sqch, sqmil, acre, hectare
Volume m3, litre (l, L, lt, liter), cc, cuin, cuft, cuyd, teaspoon, tablespoon
Liquid volume minim (min), fluiddram (fldr), fluidounce (floz), gill (gi), cup (cp), pint (pt), quart (qt), gallon (gal), beerbarrel (bbl), oilbarrel (obl), hogshead, drop (gtt)
Angles rad (radian), deg (degree), grad (gradian), cycle, arcsec (arcsecond), arcmin (arcminute)
Time second (s, secs, seconds), minute (mins, minutes), hour (h, hr, hrs, hours), day (days), week (weeks), month (months), year (years), decade (decades), century (centuries), millennium (millennia)
Frequency hertz (Hz)
Mass gram(g), tonne, ton, grain (gr), dram (dr), ounce (oz), poundmass (lbm, lb, lbs), hundredweight (cwt), stick, stone
Electric current ampere (A)
Temperature kelvin (K), celsius (degC), fahrenheit (degF), rankine (degR)
Amount of substance mole (mol)
Luminous intensity candela (cd)
Force newton (N), dyne (dyn), poundforce (lbf), kip
Energy joule (J), erg, Wh, BTU, electronvolt (eV)
Power watt (W), hp
Pressure Pa, psi, atm, torr, bar, mmHg, mmH2O, cmH2O
Electricity and magnetism ampere (A), coulomb (C), watt (W), volt (V), ohm, farad (F), weber (Wb), tesla (T), henry (H), siemens (S), electronvolt (eV)
Binary bit (b), byte (B)

The following decimal prefixes are available.

Name Abbreviation Value
deca da 1e1
hecto h 1e2
kilo k 1e3
mega M 1e6
giga G 1e9
tera T 1e12
peta P 1e15
exa E 1e18
zetta Z 1e21
yotta Y 1e24
Name Abbreviation Value
deci d 1e-1
centi c 1e-2
milli m 1e-3
micro u 1e-6
nano n 1e-9
pico p 1e-12
femto f 1e-15
atto a 1e-18
zepto z 1e-21
yocto y 1e-24

The following binary prefixes are available.
They can be used with units bit (b) and byte (B).

Name Abbreviation Value
kibi Ki 1024
mebi Mi 1024^2
gibi Gi 1024^3
tebi Ti 1024^4
pebi Pi 1024^5
exi Ei 1024^6
zebi Zi 1024^7
yobi Yi 1024^8
Name Abbreviation Value
kilo k 1e3
mega M 1e6
giga G 1e9
tera T 1e12
peta P 1e15
exa E 1e18
zetta Z 1e21
yotta Y 1e24

Physical Constants

Math.js includes the following physical constants. See Wikipedia for more information.

Universal constants

Name Symbol Value Unit
speedOfLight c 299792458 m · s-1
gravitationConstant G 6.6738480e-11 m3 · kg-1 · s-2
planckConstant h 6.626069311e-34 J · s
reducedPlanckConstant h 1.05457172647e-34 J · s

Electromagnetic constants

Name Symbol Value Unit
magneticConstant μ0 1.2566370614e-6 N · A-2
electricConstant ε0 8.854187817e-12 F · m-1
vacuumImpedance Z0 376.730313461 Ω
coulomb κ 8.9875517873681764e9 N · m2 · C-2
elementaryCharge e 1.60217656535e-19 C
bohrMagneton μB 9.2740096820e-24 J · T-1
conductanceQuantum G0 7.748091734625e-5 S
inverseConductanceQuantum G0-1 12906.403721742 Ω
magneticFluxQuantum f0 2.06783375846e-15 Wb
nuclearMagneton μN 5.0507835311e-27 J · T-1
klitzing RK 25812.807443484 Ω

Atomic and nuclear constants

Name Symbol Value Unit
bohrRadius a0 5.291772109217e-11 m
classicalElectronRadius re 2.817940326727e-15 m
electronMass me 9.1093829140e-31 kg
fermiCoupling GF 1.1663645e-5 GeV-2
fineStructure α 7.297352569824e-3 -
hartreeEnergy Eh 4.3597443419e-18 J
protonMass mp 1.67262177774e-27 kg
deuteronMass md 3.3435830926e-27 kg
neutronMass mn 1.6749271613e-27 kg
quantumOfCirculation h / (2me) 3.636947552024e-4 m2 · s-1
rydberg R 10973731.56853955 m-1
thomsonCrossSection 6.65245873413e-29 m2
weakMixingAngle 0.222321 -
efimovFactor 22.7 -

Physico-chemical constants

Name Symbol Value Unit
atomicMass mu 1.66053892173e-27 kg
avogadro NA 6.0221412927e23 mol-1
boltzmann k 1.380648813e-23 J · K-1
faraday F 96485.336521 C · mol-1
firstRadiation c1 3.7417715317e-16 W · m2
loschmidt n0 2.686780524e25 m-3
gasConstant R 8.314462175 J · K-1 · mol-1
molarPlanckConstant NA · h 3.990312717628e-10 J · s · mol-1
molarVolume Vm 2.241396820e-10 m3 · mol-1
sackurTetrode -1.164870823 -
secondRadiation c2 1.438777013e-2 m · K
stefanBoltzmann σ 5.67037321e-8 W · m-2 · K-4
wienDisplacement b 2.897772126e-3 m · K

Adopted values

Name Symbol Value Unit
molarMass Mu 1e-3 kg · mol-1
molarMassC12 M(12C) 1.2e-2 kg · mol-1
gravity gn 9.80665 m · s-2
atm atm 101325 Pa

Natural units

Name Symbol Value Unit
planckLength lP 1.61619997e-35 m
planckMass mP 2.1765113e-8 kg
planckTime tP 5.3910632e-44 s
planckCharge qP 1.87554595641e-18 C
planckTemperature TP 1.41683385e+32 K