使い方
本keisanサービスは、桁数可変型演算技術を応用して精度保証の実現をめざした計算サービスです。
keisanの特徴
1.計算式の演算桁数を変えて計算できます。
(演算桁数の設定は、"桁数"指定で行います)
桁数 6 | √5 =sqrt(5) =2.23607 |
---|---|
桁数 14 | √5 =sqrt(5) =2.2360679774998 |
keisan | (0.9-0.3*3) =0 |
---|---|
Excel | (0.9-0.3*3) =1.11022E-16 (2進10進変換誤差) |
2.計算精度の正しい桁までを自動判断で求めます。
桁数 6 | 1-0.999876 =1.24000E-4 |
---|---|
桁数 10 | gamma(3.5) =3.323350970 |
3.複素数、統計関数、特殊関数、テーブル計算が扱えます。
[桁数 6 で設定] | |
複素数計算 | (1+i)^(1+i) =0.273957+0.583701i |
誤差関数 | x =0.1 erf(x) =0.112463 |
テーブル計算 | sqrt(x) x =2,1,5 |
x | sqrt(x) |
---|---|
2 | 1.41421 |
3 | 1.73205 |
4 | 2 |
5 | 2.23607 |
6 | 2.44949 |
4.式ライブラリーを利用できます。
三角形の面積 (a,b,c) |
s=(a+b+c)/2; a=3; b=4; c=5; sqrt(s*(s-a)*(s-b)*(s-c)) |
---|
参考資料
特許登録: | "keisan"サービスの十進計算装置 |
---|---|
日本 | 特許4483491(2010/4/2登録) |
米国 | USP7716267(2010/5/11登録) |
計算式の記述規則
1.数値
0,1,2,3,4,5,6,7,8,9, .(小数点), E(指数部), i(虚数), +, -
入力例 | 説明 |
---|---|
12340.56789 | 1.234056789E4と同じ |
E2 | 100 |
1.23E+4 | 12300 E+の+は指数符号で省略可 |
1.23E-4 | 0.000123 E-の-は指数符号で省略不可 |
i | 0+1i |
E+2i | 0+100i |
1.23+4.56i | 複素数は括弧で括ると確実 |
1.23E3+4.56E2i | 1230+456i |
1.23E-3-4.56E+2i | 0.00123-456i |
注意:指数部は大文字 E を使用。(小文字 e は自然対数の底)
2.変数
英字又は漢字で始まり、英数字、漢字で構成。
特殊記号および予約語は使えない。
変数名の例 | a sinx a3 利率 など |
---|---|
使えない例 | e i inf sin E などの予約語 |
#abc 3abc など |
3.関数
関数名と括弧に囲まれた1個以上の引数で構成。
2個以上の引数の場合は、カンマ","で区切る。
引数は、数値、変数、関数、式が記述できる。
例) | sin(x) normalcd(x,μ,2) normalcd(x+y,ln(12),σ) |
---|
引数の無い定数は、括弧をつけない。
例) | pi inf e |
---|
4.演算子
演算子には、+ , - , * , / , ^ ,! , = があり、
数値、変数、関数の各要素間での演算を指示する。
演算例 | 説明 |
---|---|
要素1 + 要素2 | 要素1 と要素2 を加算する |
要素1 - 要素2 | 要素1 から要素2 を減算する |
要素1 * 要素2 | 要素1 と要素2 を乗算する( * は省略可) |
要素1 / 要素2 | 要素1 を要素2 で除算する |
要素1 ^ 要素2 | 要素1 を要素2 だけべき乗する |
要素1 ! | 要素1 を階乗する(1要素だけの演算) |
要素1 = 要素2 | 要素2の演算結果を要素1に代入する。 従って要素1は変数でなければならない。 |
5.式
数値、変数、関数の各要素を演算子で結合したもの。
式を一要素として、更に演算子で結合できる。
演算順序は、後述の「式の演算順序」に従う。
例) 要素1 + 要素2 - 要素3 * 要素4 / 要素5 ^ 要素6 ! + ・・・
6.その他
-(マイナス)は、指数部表現を除き2項演算子とみなされる。
但し、式の最初、開き括弧とカンマの直後は数値符号とみなす。
例) | -a+b → (0-a)+b -a^b → 0-(a^b) a^-b → Error a^(-b) → a^(0-b) a*b;-a*b → a*b;0-(a*b) a*-b → Error |
---|
式を見易くする為に、スペースで間隔を空けて記述できる。
式の演算順序
- 優先順位の高い演算子から順に演算する。
- 同順位の演算子は、左側から演算する。※但し、べき乗演算子(^)のみ右側から演算する。
- 括弧内は優先して演算する。
- 多重括弧は、内側の括弧が優先される。
演算子の種類と優先順位
優先順位 | 演算子 | 意味 |
---|---|---|
高い ↑ ↓ 低い |
関数 | 組込み関数 |
!!, !, ^ | 二重階乗、階乗、べき乗 | |
*, / | 乗算、除算 | |
+, - | 加算、減算 | |
= | 代入 |
間違い易い式の記述事例
2+3*4 | → | 2+(3*4) | 加算より乗算が優先して計算 |
3*4^5 | → | 3*(4^5) | 乗算よりもべき乗が優先 |
sin(2)^3 | → | (sin(2))^3 | べき乗よりも関数が優先 |
1/2i | → | 1/(2i) | 虚数記号が優先 |
3!!! | → | (3!!)! | 二重階乗が階乗より優先 |
3a | ○ | 3*a として計算 |
a3 | × | a3 は変数名 |
a(b+c) | × | a*(b+c)でなく、a はユーザ定義関数 |
(a+b)(b+c) | ○ | (a+b)*(b+c) として計算 |
数値・演算子及び定数
関数名および機能 | 予約語 | ||
---|---|---|---|
数値 | |||
数値 | 1234567890 | 0 ~9 | |
小数点 | 0.123 | . | |
符号 | -123, +456 | +,- | |
指数 | 1.23E-45 | E | |
虚数 | 2+3i | i | |
演算子 | |||
加算 | x+y | + | |
減算 | x-y | - | |
乗算 | x*y | * | |
除算 | x/y | / | |
べき乗 | x^y | ^ | |
階乗 | n! | ! | |
2重階乗 | n!! | !! | |
代入 | a=123 | = | |
マルチ式 | |||
式の区切り | a=2+3; b=4/7 | ; | |
定数 | |||
自然対数の底 | e =2.71828... | e | |
無限大 | ∞ | inf | |
円周率 | π =3.14159.. | pi | |
オイラー数 | γ =0.5772... | euler | |
真値 | true =1 | true | |
虚値 | false =0 | false |
初等関数
関数名および機能 | 予約語 | ||
---|---|---|---|
対数関数と指数関数 | |||
開平 | √ | sqrt(x) | |
常用対数 | log | log(x) | |
自然対数 | ln | ln(x) | |
指数関数 | ex | e^x | |
べき乗関数 | xy | x^y | |
三角関数 | |||
正弦関数 | sin | sin(x) | |
余弦関数 | cos | cos(x) | |
正接関数 | tan | tan(x) | |
逆正弦関数 | sin-1 | asin(x) | |
逆余弦関数 | cos-1 | acos(x) | |
逆正接関数 | tan-1 | atan(x) | |
双曲線関数 | |||
双曲正弦 | sinh | sinh(x) | |
双曲余弦 | cosh | cosh(x) | |
双曲正接 | tanh | tanh(x) | |
逆双曲正弦 | sinh-1 | asinh(x) | |
逆双曲余弦 | cosh-1 | acosh(x) | |
逆双曲正接 | tanh-1 | atanh(x) | |
組合せ・順列 | |||
組合わせ | nCr | combination(n,r) | |
順列 | nPr | permutation(n,r) | |
階乗 | x! | x! | |
2重階乗 | x!! | x!! | |
数値関数(実数) | |||
x以下の最大整数 | int(4.2) =4 int(-4.2) =-5 |
int(x) | |
x以上の最小整数 | ceiling(4.2) =5 ceiling(-4.2) =-4 |
ceiling(x) | |
整数部分 | IP(4.2) =4 IP(-4.2) =-4 |
IP(x) | |
小数部分 | FP(4.2) =0.2 FP(-4.2) =-0.2 |
FP(x) | |
xをyで割った余り | mod(9,5) =4 mod(-9,5) =1 |
mod(x,y) | |
y*FP(x/y) | remainder(9,5) =4 remainder(-9,5) =-4 |
remainder(x,y) | |
四捨五入 | round(2.35,1) =2.4 round(-2.35,1) =-2.4 |
round(x,n) | |
切捨て | rounddown(2.34,1) =2.3 rounddown(-2.34,1) =-2.4 |
rounddown(x,n) | |
切上げ | roundup(2.34,1) =2.4 roundup(-2.34,1) =-2.3 |
roundup(x,n) | |
IP(x*10n)/10n | truncate(2.34,1) =2.3 truncate(-2.34,1) =-2.3 |
truncate(x,n) | |
実数のランダム | random decimal number in [0,1] | random_f() | |
実数のランダム | random decimal number in [a,b] | random_f(a,b) | |
整数のランダム | random integer number in [a,b] | random_i(a,b) | |
数値関数(複素数) | |||
符号 | sign(z) =1,0,-1 | sign(z) | |
共役複素数 | x+iy → x-iy | conjugate(z) | |
実数部分 | x+iy → x | Re(z) | |
虚数部分 | x+iy→ y | lm(z) | |
絶対値 | |z| =|reiθ| =r | abs(z) | |
偏角 | reiθ → θ | argument(z) | |
直交座標変換 | reiθ → x+iy | cartesian(z) | |
直交座標変換 | (r,θ) → x+iy | cartesian(r,θ) | |
極座標変換 | x+iy → reiθ | polar(z) | |
極座標変換 | (x,y) → reiθ | polar(x,y) | 最大・最小 |
最大値(引数最大20個) | max(1,2,3,4) = 4 | max(a,b,c,d,...) | |
最小値(引数最大20個) | min(1,2,3,4) = 1 | min(a,b,c,d,...) |
統計関数
関数名 | 予約語 |
---|---|
Q: 上側累積確率 f: 確率密度 x: パーセント点 λ: 非心率 |
|
標準正規分布 | Q: normalcd(x) f: normalpd(x) x: normalicd(Q) |
正規分布 | Q: normalcd(x,μ,σ) f: normalpd(x,μ,σ) x: normalicd(Q,μ,σ) |
対数正規分布 | Q: lognormalcd(x,μ,σ) f: lognormalpd(x,μ,σ) x: lognormalicd(Q,μ,σ) |
カイ2乗分布 | Q: chi2cd(x,ν) f: chi2pd(x,ν) x: chi2icd(Q,ν) |
スチューデントのt分布 | Q: tcd(x,ν) f: tpd(x,ν) x: ticd(Q,ν) |
F分布 | Q: fcd(x,ν1,ν2) f: fpd(x,ν1,ν2) x: ficd(Q,ν1,ν2) |
非心カイ2乗分布 | Q: ncchi2cd(x,ν,λ) f: ncchi2pd(x,ν,λ) x: ncchi2icd(Q,ν,λ) λ: ncchi2il(P,x,ν) |
非心t分布 | Q: nctcd(x,ν,λ) f: nctpd(x,ν,λ) x: ncticd(Q,ν,λ) λ: nctil(Q,x,ν) |
非心F分布 | Q: ncfcd(x,ν1,ν2,λ) f: ncfpd(x,ν1,ν2,λ) x: ncficd(Q,ν1,ν2,λ) λ: ncfil(Q,x,ν1,ν2) |
一様分布 | Q: uniformcd(x,a,b) f: uniformpd(x,a,b) x: uniformicd(Q,a,b) |
指数分布 | Q: exponentialcd(x,b) f: exponentialpd(x,b) x: exponentialicd(Q,b) |
ワイブル分布 | Q: weibullcd(x,a,b) f: weibullpd(x,a,b) x: weibullicd(Q,a,b) |
ガンマ分布 | Q: gammacd(x,a,b) f: gammapd(x,a,b) x: gammaicd(Q,a,b) |
ベータ分布 | Q: betacd(x,a,b) f: betapd(x,a,b) x: betaicd(Q,a,b) |
ラプラス分布 | Q: laplacecd(x,a,b) f: laplacepd(x,a,b) x: laplaceicd(Q,a,b) |
コーシー分布 | Q: cauchycd(x,a,b) f: cauchypd(x,a,b) x: cauchyicd(Q,a,b) |
ロジスティック分布 | Q: logisticcd(x,α,β) f: logisticpd(x,α,β) x: logisticicd(Q,α,β) |
パレート分布 | Q: paretocd(x,xm,α) f: paretopd(x,xm,α) x: paretoicd(Q,xm,α) |
一般化パレート分布 | Q: gparetocd(x,μ,σ,ξ) f: gparetopd(x,μ,σ,ξ) x: gparetoicd(Q,μ,σ,ξ) |
レヴィ分布 | Q: levycd(x,μ,c) f: levypd(x,μ,c) x: levyicd(Q,μ,c) |
注)下側累積確率Pは上記予約語末尾にlowerを付加 例)P=normalcdlower(x), x=normalicdlower(P) |
関数名 | 予約語 |
---|---|
Q: 上側累積確率 f: 確率密度 x: パーセント点 λ: 非心率 |
|
ポアソン分布 | Q: poissoncd(x,λ) f: poissonpd(x,λ) x: poissonicd(Q,λ) λ: poissonil(Q,x) |
二項分布 | Q: binomialcd(x,n,p) f: binomialpd(x,n,p) x: binomialicd(Q,n,p) |
負の二項分布 | Q: negbinomialcd(x,k,p) f: negbinomialpd(x,k,p) x: negbinomialicd(Q,k,p) |
幾何分布 | Q: geometriccd(x,p) f: geometricpd(x,p) x: geometricicd(Q,p) |
超幾何分布 | Q: hypgeometriccd(x,n,M,N) f: hypgeometricpd(x,n,M,N) |
注)下側累積確率Pは上記予約語末尾にlowerを付加 例)P=poissoncdlower(x,λ), x=poissonicdlower(P,λ), λ=poissonillower(P,x) |
ベッセル関数
関数名 | 予約語 | |
---|---|---|
f(x) f '(x) f-1(0), s=1,2,.. f '-1(0), s=1,2,.. |
||
第1種 ベッセル関数 |
Jν(x) | besselj(ν,x) besseljdf(ν,x) besseljzeros(ν,s) besseljdfzeros(ν,s) |
第2種 ベッセル関数 |
Yν(x) | bessely(ν,x) besselydf(ν,x) besselyzeros(ν,s) besselydfseros(ν,s) |
第1種 変形ベッセル関数 |
Iν(x) | besseli(ν,x) besselidf(ν,x) |
第2種 変形ベッセル関数 |
Kν(x) | besselk(ν,x) besselkdf(ν,x) |
第1種 ハンケル関数 |
H(1)ν(x) | hankelH1(ν,x) hankelH1df(ν,x) |
第2種 ハンケル関数 |
H(2)ν(x) | hankelH2(ν,x) hankelH2df(ν,x) |
関数名 | 予約語 | |
---|---|---|
f(x) f '(x) f-1(0), s=1,2,.. f '/sup>-1(0), s=1,2,.. |
||
第1種 球ベッセル関数 |
jν(x) | sphericalbesselj(ν,x) sphericalbesseljdf(ν,x) sphericalbesseljzeros(ν,s) sphericalbesseljdfzeros(ν,s) |
第2種 球ベッセル関数 |
yν(x) | sphericalbessely(ν,x) sphericalbesselyjdf(ν,x) sphericalbesselyzeros(ν,s) sphericalbesselydfzeros(ν,s) |
第1種 変形球ベッセル関数 |
iν(x) | sphericalbesseli(ν,x) sphericalbesselidf(ν,x) |
第2種 変形球ベッセル関数 |
kν(x) | sphericalbesselk(ν,x) sphericalbesselkdf(ν,x) |
第1種 球ハンケル関数 |
h(1)ν(x) | sphericalhankelH1(ν,x) sphericalhankelH1df(ν,x) |
第2種 球ハンケル関数 |
h(2)ν(x) | sphericalhankelH2(ν,x) sphericalhankelH2df(ν,x) |
関数名 | 予約語 | |
---|---|---|
f(x) f '(x) f-1(0), s=1,2,.. f '-1(0), s=1,2,.. |
||
エアリー関数 | Ai(x) | airyai(x) airyaidf(x) airyaizeros(s) airyaidfzeros(s) |
エアリー関数 | Bi(x) | airybi(x) airybidf(x) airybizeros(s) airybidfzeros(s) |
関数名 | 予約語 | |
---|---|---|
f(x) f '(x) |
||
第1種ケルビン関数 | berν(x) | ber(ν,x) berdf(ν,x) |
第1種ケルビン関数 | beiν(x) | bei(ν,x) beidf(ν,x) |
第2種ケルビン関数 | kerν(x) | ker(ν,x) kerdf(ν,x) |
第2種ケルビン関数 | keiν(x) | kei(ν,x) keidf(ν,x) |
第3種ケルビン関数 | herν(x) | her(ν,x) herdf(ν,x) |
第3種ケルビン関数 | heiν(x) | hei(ν,x) heidf(ν,x) |
特殊関数
関数名 | 予約語 | |
---|---|---|
ガンマ関数 | Γ(a) | gamma(a) |
第1種 不完全ガンマ関数 |
γ(a,x) | igamma1(a,x) |
第2種 不完全ガンマ関数 |
Γ(a,x) | igamma2(a,x) gamma(a,x) |
第1種 正規化ガンマ関数 |
γ(a,x)/Γ(a) | gammap(a,x) |
第2種 正規化ガンマ関数 |
Γ(a,x)/Γ(a) | gammaq(a,x) |
ログガンマ関数 | lnΓ(a) | lngamma(a) |
ディガンマ関数 | Ψ(a) | polygamma(a) |
ポリガンマ関数 | Ψ(n)(a) | polygamma(n,a) |
2重階乗 | x!! | x!! |
ポッホハンマー関数 | (x)n | pochhammer(x,n) |
関数名 | 予約語 | |
---|---|---|
ベータ関数 | Β(a,b) | beta(a,b) |
不完全ベータ関数 | Ix(a,b) | y: ibeta(x,a,b) x: ibetaix(y,a,b) |
不完全ベータ関数 | I1-x(a,b) | y: ibetac(x,a,b) x: ibetacix(y,a,b) |
関数名 | 予約語 | |
---|---|---|
誤差関数 | erf(x) | y: erf(x) x: erfix(y) |
誤差補関数 | erfc(x) | y: erfc(x) x: erfcix(y) |
虚数誤差関数 | erfi(x) | y: erfi(x) |
関数名 | 予約語 | |
---|---|---|
指数積分 | Ei(x) | Ei(x) |
指数積分 | En(x) | Ei(n,x) |
対数積分 | li(x) | li(x) |
正弦積分 | Si(x) | Si(x) |
余弦積分 | Ci(x) | Ci(x) |
双曲線正弦積分 | Shi(x) | Shi(x) |
双曲線余弦積分 | Chi(x) | Chi(x) |
フレネル正弦積分 | S(x) | fresnelS(x) |
フレネル余弦積分 | C(x) | fresnelC(x) |
関数名 | 予約語 | |
---|---|---|
第1種完全楕円積分 | K(k) | ellipticK(k) |
第2種完全楕円積分 | E(k) | ellipticE(k) |
第3種完全楕円積分 | Π(n,k) | ellipticPi(n,k) |
第1種不完全楕円積分 | F(x,k) | ellipticF(x,k) |
第2種不完全楕円積分 | E(x,k) | ellipticE(x,k) |
第3種不完全楕円積分 | Π(x,n,k) | ellipticPi(x,n,k) |
エスエヌ関数 | sn(u) | jacobiSN(u,k) |
シーエヌ関数 | cn(u) | jacobiCN(u,k) |
ディーエヌ関数 | dn(u) | jacobiDN(u,k) |
振幅関数 | am(u) | jacobiAM(u,k) |
関数名 | 予約語 | |
---|---|---|
エルミート多項式 | Hn(x) | hermiteH(n,x) |
第1種チェビシェフ多項式 | Tn(x) | chebyshevT(n,x) |
第2種チェビシェフ多項式 | Un(x) | chebyshevU(n,x) |
ルジャンドル多項式 | Pn(x) | legendreP(n,x) |
ルジャンドル陪多項式 | Pn(m,x) | legendreP(n,m,x) |
ラゲール多項式 | Ln(x) | laguerreL(n,x) |
ラゲール陪多項式 | Ln(α,x) | laguerreL(n,α,x) |
ゲーゲンバウアー多項式 | Cn(λ,x) | gegenbauerC(n,λ,x) |
ヤコビ多項式 | Pn(α,β,x) | jacobiP(n,α,β,x) |
関数名 | 予約語 | |
---|---|---|
合流型超幾何関数 | 1F1(a;b;x) | F11(a,b,x) |
合流型超幾何関数 | U(a;b;x) | FU11(a,b,x) |
ガウス型超幾何関数 | 2F1(a,b;c;x) | F21(a,b,c,x) |
ベルヌーイ数 | Bn | bernoulli(n) |
ゼータ関数 | ζ(x) | zeta(x) |
プログラム
数値計算に特化したC言語ライクな簡易的なプログラム体系です。
予約語 | 簡易説明 |
---|---|
if(条件式){式;...} elseif(条件式){式;...} else{式;...} |
ifの条件式が真ならそのブロックを実行する 偽ならelseifの条件式で同様の処理を行う 該当ブロックを実行したらif文を終了する |
while(条件式){式;...} | 条件式が真ならブロックを実行する これを繰返し条件式が偽になったら終了する |
do{式;...} while(条件式); |
ブロックを無条件に実行する 条件式が真ならば再度ブロックを実行し、 偽ならは終了する |
for(変数=初期値; 条件式; 変数=変数+ステップ) {式;...} |
変数を初期化し、条件式が真なら処理を実行する 変数を増分し、再度条件式が真なら処理を繰り返し、条件式が偽になったら終了する |
break | 無条件でループから抜ける |
continue | 無条件でループの始めに戻る |
予約語 | 簡易説明 |
---|---|
print(式1,式2,...) | 式を出力する |
println(式1,式2,...) | 式を出力して改行する |
/*コメント*/ | 計算式や制御に関与しない |
分類 | 予約語 | 簡易説明 |
---|---|---|
論理演算子 条件式が 真であれば true 真でなければ false を返す |
not | 優先順位 not>and>or |
and | ||
or | ||
== | 左式と右式は等しい = | |
<> | 左式と右式は等しくない ≠ | |
=<,<= | 左式は右式と等しいか小さい ≦ | |
=>,>= | 左式は右式と等しいか大きい ≧ | |
< | 左式は右式より小さい < | |
> | 左式は右式より大きい > | |
論理値 | true | true=1(≠0) |
false | false=0 |
予約語 | 簡易説明 | 例 |
---|---|---|
numeric 配列名[要素数]; numeric 配列名[要素数][要素数]; numeric 配列名[要素数][要素数][要素数]; .... |
配列を宣言する。 | numeric test1[4]; numeric test2[4][4]; numeric test3[4][4][4]; |
numeric 配列名[] = {数値1,数値2,数値3,....}; numeric 配列名[][] = {{....},{....}}; numeric 配列名[][][] = {{....},{....},{....}}; .... |
配列を宣言すると同時に初期化する。 | numeric test1[] = {1,2,3}; numeric test2[][] = {{1,2,3},{4,5,6}}; |
kei_length(a) | 配列の要素数を取得する。 | numeric test[4]; n = kei_length(test); |
function 関数名(numeric k[]){...} | 関数の引数に配列を指定する。 | numeric test[]={0,1,2,3}; func1(test); function func1(numeric k[]) { print(k[0]); ..... } |