私用を目的にしたJavascriptのライブラリですので品質保証はしません。誤差を考慮していないので厳密解、実務的な大規模な問題には使えません。
(トレース版)は、作成時のデバッグに使ったものですが、処理経過がわかり、初心者向けの教育用に使えると思います。
mathlib.jsを外部jsとして使うときは、次のように指定してください。
<script src="http://www.kogures.com/hitoshi/javascript/mathlib.js"></script>
分野・機能 | ソース | 一般形 | 備考 |
●代数系 | |||
方程式の根(はさみうち法) | ○ | x = xFx(fx, xmin, xmax[, eps]) | |
方程式の根(ニュートン法) | ○ | x = xFxNewton(fx, x0[, eps]) | |
(トレース版) | ○ | x = xFxNewton(表示場所, fx, x0[, eps]) | |
3次以下の方程式の複素根 | ○ | ary = xFx3(a0, a1,..., a3) | 一つの実根をニュートン法で得て2次方程式にする |
(トレース版) | ○ | ary = xFx3(表示場所, a0, a1,..., a3) | |
数式 f(x) を最小にするx | ○ | x = xminFx(fx, xmin, xmax [, eps]) | |
数式 f(x) を最大にするx | ○ | x = xmaxFx(fx, xmin, xmax [, eps]) | |
微分(はさみうち法) | ○ | a = dFx(fx, x [, d, eps]) | |
定積分(シンプソン則) | ○ | x = sFx(fx, xmin, xmax[, n2, eps]) | n2はキザミ数 |
●多点系 | |||
補間(配列入力) | ○ | polArray(n, m, xa, ya) | n:次数、m:補間するxの個数、xa, yaは配列 |
補間( (x,y)入力) | ○ | y = polPoints(x, x0,y0, x1,y1, x2,y2, ..., xn,yn) | x:補間点、(xi,yi):曲線が通る点 |
最小二乗法(高次式:y=a0+a1x +...+anxn) | ○ | LeastSquare(n, p, f, xa, ya, aa) | n:次数、p:観測点個数、f:内外挿点個数、aa:出力配列,係数ai |
(トレース版) | ○ | LeastSquareTrace(表示場所, n, p, f, xa, ya, aa) | トレース表示場所:HTMLで<div id="表示場所"></div>で指定 |
●配列・行列系 | |||
配列のソート(行) | ○ | sortMatrix(a, keycol [, desc [, fixrow]]) | 配列a[i][j]を、列j=keycolをキーにして昇順/降順でソート |
配列の順位付け | ○ | ary = orderMatrix(a, keycol [, desc [, fixrow]]) | 配列はそのままで、ary[k]にk番目の配列a[i][j]のiが戻される。 |
連立一次方程式 | ○ | ary = GaussJordan(a, b [, n]) | ax = b の解xを配列 ary に戻す。実行後もa、bは変化しない。 |
(トレース版) | ○ | GaussJordanTrace(表示場所, a, b, n) | |
逆行列 | ○ | invMatrix(n, a [, x]) | xに逆行列が入る。省略するとaに入る |
(トレース版) | ○ | invMatrixTrace(表示場所, n, a) | |
線形計画法(LP) | ○ | ary = LP(m, n, a) | m:制約式数、n:変数個数、a:行列配列(a[0][j]:目的関数、a[i][0]:定数項 |
(トレース版) | ○ | ary = LP(表示場所, m, n, a) | |
輸送問題 | ○ | ary = TLP(m, n, a) | m:供給地数、n:需要地数, a:輸送費用(a[i][0]:供給量,a[0][j]:需要量) |
(トレース版) | ○ | ary = TLP(表示場所, m, n, a) | |
●複素数系 | |||
-. i[i倍], conj[共役], e^(exp) (単項演算子:単一複素数出力) |
○ | z = complex(op, a) | 例:a=(3+4i) →a[0]=3, a[1]=4 z=complex("i",a) → z=(-4 + 3i) → z[0]=-4, z[1]=3 |
+, -, *, /, ^ (二項演算子:単一複素数出力) |
○ | z = complex(a, op, b) | 例:a=(1+2i), b=(3+4i) → a[0]=1, a[1]=2, b[0]=3, b[1]=4 z=complex(a, "+" ,b); → z=(4+6i) → z[0]=4; z[1]=6; ★"^"では、a[0] ≦0 のときは開発中です。 |
Σ(sum), Π(prod) (単項演算子:複数複素数入力) |
○ | z = complex(op, d) | 例:d=[ [1,2],[3,4],[5,6] ] z=complex("Σ", d); → z[0]=9. z[1]=12 |
|(abs), θ(atan) (単項演算子:実数スカラー出力) |
○ | x = complex(op, a) | 例:a=(3+4i) → a[0]=3, a[1]=4 x=complex("abs",a); → x=√(32 + 42)→ x=5 |
√(sqrt) (単項演算子:複数複素数出力) |
○ | d = complex(op, a) | 例:d=√(-3+4i) → a[0]=-3, a[1]=4, d=complex("sqrt",a); →(1+2i),(-1-2i) → d[0][0]=1, d[0][1]=2, d[1][0]=-1, d[1][1]=-2 (2個の複素数になる) |
●基本統計量 | |||
基本統計量:一変数 | ○ | ary = basicStat(x1, x2, ..., xn) | aryは連想配列:ary["合計"], ary["標準偏差"] など |
基本統計量:一変数(配列入力) | ○ | ary = basicStatArray(x[, n]) | x[0]~x[n-1]が対象のときnを指定、省略時はx.length |
基本統計量:2変数 | ○ | ary = basicStat2(x1,y1, x2,y2, ..., xn,yn) | aryは連想配列:ary["共分散"], ary["相関係数"] など |
基本統計量:2変数(配列入力) | ○ | ary = basicStatArray(x, y[, n]) | |
●確率分布系 | |||
正規分布:確率密度 | ○ | p = pNormalDist(x [, μ, σ]) | |
正規分布:累積確率関数(標準形) | ○ | s = sNormalDistStd(x) | 正規分布(0,1)の範囲-∞~xの累積値 |
正規分布:累積確率関数(一般形) | ○ | s = sNormalDist(x [, μ, σ]) | |
正規分布:区間内累積確率 | ○ | s = sNormalDistMinmax(xmin, xmax [, μ, σ]) | |
正規分布:累積確率密度の逆関数(標準形) | ○ | x = invNormalDistStd(p) | 正規分布(0,1)の累積確率がpとなる点x |
正規分布:累積確率密度の逆関数(一般形) | ○ | x = invNormalDist(p [, μ, σ]) | |
二項分布・二項係数(組合せの数)nCx | ○ | m = nCx(n, x) | nCx = n!/x!(n-x)! |
二項分布・確率密度 | ○ | p = pBinDist(x, n, p) | 発生確率pの事象がn回の試行でx回発生する確率 |
二項分布・累積確率 | ○ | s = sBinDist(x, n, p) | |
負の二項分布・確率密度 | ○ | p = pBinNegDist(x, n, p) | 発生確率pの事象がはじめてx回発生したときの試行回数nの確率分布 |
負の二項分布・累積確率 | ○ | s = sBinNegDist(x, n, p) | n回以内である確率 |
幾何分布・確率密度 | ○ | p = pGeoDist(n, p) | 発生確率pの事象がはじめて発生したときの試行回数nの確率分布 |
幾何分布・累積確率 | ○ | s = sGeoDist(n, p) | |
超幾何分布・確率密度 | ○ | p = pHyperGeoDist(a, b, α, β) | Aがa個、Bがb個から、α+β個とりだしたときAがα個である確率 |
超幾何分布・累積確率 | ○ | s = sHyperGeoDist(a, b, α, β) | |
指数分布・確率密度 | ○ | p = pExpDist(t, λ) | 平均λの指数分布で、t=t のときの確率密度 |
指数分布・累積確率 | ○ | s = sExpDist(t, λ) | 区間 t=0~t の累積確率 |
指数分布・区間内累積確率 | ○ | s = sExpDistMinmax(tmin, tmax, λ) | 区間 t=tmin~tmax の累積確率 |
指数分布・累積確率の逆関数 | ○ | t = invExpDist(p, λ) | sExpDistの逆関数。累積確率がpとなるtの値 |
ポアソン分布・確率密度 | ○ | p = pPoissonDist(x, λ) | 平均λの発生事象がx回発生する確率 |
ポアソン分布・累積確率 | ○ | s = sPoissonDist(x, λ) | |
ポアソン分布・累積確率の逆関数 | ○ | x = invPoissonDist(p, λ) | |
三角分布・確率密度 | ○ | p = pTriDist(x, xmin, xmax, xmod) | 最小値xmin, 最大値xmin, 最頻値xmin |
三角分布・累積確率 | ○ | s = sTriDist(x, xmin, xmax, xmod) | |
三角分布・累積確率の逆関数 | ○ | x = invTriDist(p, xmin, xmax, xmod) | |
●乱数系 | |||
一様分布・連続 | ○ | x = xRandomUni(xmin, xmax) | |
一様分布・整数 | ○ | i = iRandomUni(imin, imax) | |
正規分布・連続 | ○ | x = xRandomNormal(μ, σ) | 正規分布累積確率逆関数 invNormaiDist を利用 |
正規分布・連続 | ○ | x = xRandomNormal12(μ, σ) | 12個のMath,Random()の和が正規分布になることを利用 |
正規分布・整数 | ○ | i = iRandomNormal(μ, σ) | |
正規分布・連続・区間指定 | ○ | x = xRandomNormalMinmax(xmin, xmax, μ, σ) | |
正規分布・整数・区間指定 | ○ | i = iRandomNormalMinmax(imin, imax, μ, σ) | |
指数分布・連続 | ○ | x = xRandomExp(λ) | 単位時間内の発生回数が平均λの事象が、x単位時間に発生する確率の乱数 |
指数分布・整数 | ○ | i = iRandomExp(λ) | |
指数分布・連続・区間指定 | ○ | x = xRandomExpMinmax(xmin, xmax, λ) | |
指数分布・整数・区間指定 | ○ | i = iRandomExpMinmax(xmin, xmax, λ) | |
三角分布・連続 | ○ | x = xRandomTri(xmin, xmax, xmod) | |
三角分布・整数 | ○ | i = iRandomTri(xmin, xmax, xmod) |