keisan生活や実務に役立つ高精度計算サイト

使い方

TOP/使い方

本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.計算精度の正しい桁までを自動判断で求めます。

設定結果
桁数 61-0.999876 =1.24000E-4
桁数 10gamma(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

テーブル計算結果

xsqrt(x)
21.41421
31.73205
42
52.23607
62.44949
[画像: image/sqrtx26.png] sqrt(x)グラフ x=2..6

4.式ライブラリーを利用できます。

式名内容
三角形の面積 (a,b,c)s=(a+b+c)/2; a=3; b=4; c=5; sqrt(s*(s-a)*(s-b)*(s-c))

計算式の記述規則

1.数値

0,1,2,3,4,5,6,7,8,9, .(小数点), E(指数部), i(虚数), +, -

入力例説明
12340.567891.234056789E4と同じ
E2100
1.23E+412300  E+の+は指数符号で省略可
1.23E-40.000123 E-の-は指数符号で省略不可
i0+1i
E+2i0+100i
1.23+4.56i複素数は括弧で括ると確実
1.23E3+4.56E2i1230+456i
1.23E-3-4.56E+2i0.00123-456i

注意:指数部は大文字 E を使用。(小文字 e は自然対数の底)

2.変数

英字又は漢字で始まり、英数字、漢字で構成。 特殊記号および予約語は使えない。

分類
変数名の例a sinx a3 利率 など
使えない例e i inf sin E などの予約語
使えない例#abc 3abc ab_c など

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

式を見易くする為に、スペースで間隔を空けて記述できる。

式の演算順序

  1. 優先順位の高い演算子から順に演算する。
  2. 同順位の演算子は、左側から演算する。※但し、べき乗演算子(^)のみ右側から演算する。
  3. 括弧内は優先して演算する。
  4. 多重括弧は、内側の括弧が優先される。

演算子の種類と優先順位

優先順位演算子意味
高い ↑関数組込み関数
!!, !, ^二重階乗、階乗、べき乗
*, /乗算、除算
+, -加算、減算
↓ 低い=代入

間違い易い式の記述事例

括弧の省略による演算順序

解釈説明
2+3*42+(3*4)加算より乗算が優先して計算
3*4^53*(4^5)乗算よりもべき乗が優先
sin(2)^3(sin(2))^3べき乗よりも関数が優先
1/2i1/(2i)虚数記号が優先
3!!!(3!!)!二重階乗が階乗より優先

乗算記号が省略された式

判定説明
3a3*a として計算
a3×a3 は変数名
a(b+c)×a*(b+c)でなく、a はユーザ定義関数
(a+b)(b+c)(a+b)*(b+c) として計算

数値・演算子及び定数

数値

種別予約語
数値12345678900 〜9
小数点0.123.
符号-123, +456+,-
指数1.23E-45E
虚数2+3ii

演算子

種別予約語
加算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 =1true
偽値false =0false

初等関数

対数関数と指数関数

関数名記号予約語
開平sqrt(x)
常用対数loglog(x)
自然対数lnln(x)
指数関数e^xe^x
べき乗関数x^yx^y

三角関数

関数名記号予約語
正弦関数sinsin(x)
余弦関数coscos(x)
正接関数tantan(x)
逆正弦関数sin⁻¹asin(x)
逆余弦関数cos⁻¹acos(x)
逆正接関数tan⁻¹atan(x)

双曲線関数

関数名記号予約語
双曲正弦sinhsinh(x)
双曲余弦coshcosh(x)
双曲正接tanhtanh(x)
逆双曲正弦sinh⁻¹asinh(x)
逆双曲余弦cosh⁻¹acosh(x)
逆双曲正接tanh⁻¹atanh(x)

組合せ・順列

関数名記号予約語
組合わせnCrcombination(n,r)
順列nPrpermutation(n,r)
階乗x!x!
2重階乗x!!x!!

数値関数(実数)

関数名予約語
x以下の最大整数int(4.2) =4, int(-4.2) =-5int(x)
x以上の最小整数ceiling(4.2) =5, ceiling(-4.2) =-4ceiling(x)
整数部分IP(4.2) =4, IP(-4.2) =-4IP(x)
小数部分FP(4.2) =0.2, FP(-4.2) =-0.2FP(x)
xをyで割った余りmod(9,5) =4, mod(-9,5) =1mod(x,y)
y*FP(x/y)remainder(9,5) =4, remainder(-9,5) =-4remainder(x,y)
四捨五入round(2.35,1) =2.4, round(-2.35,1) =-2.4round(x,n)
切捨てrounddown(2.34,1) =2.3, rounddown(-2.34,1) =-2.4rounddown(x,n)
切上げroundup(2.34,1) =2.4, roundup(-2.34,1) =-2.3roundup(x,n)
IP(x*10^n)/10^ntruncate(2.34,1) =2.3, truncate(-2.34,1) =-2.3truncate(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,-1sign(z)
共役複素数x+iy → x-iyconjugate(z)
実数部分x+iy → xRe(z)
虚数部分x+iy → ylm(z)
絶対値|z| =|re^(iθ)| =rabs(z)
偏角re^(iθ) → θargument(z)
直交座標変換re^(iθ) → x+iycartesian(z)
直交座標変換(r,θ) → x+iycartesian(r,θ)
極座標変換x+iy → re^(iθ)polar(z)
極座標変換(x,y) → re^(iθ)polar(x,y)

最大・最小

関数名予約語
最大値(引数最大20個)max(1,2,3,4) = 4max(a,b,c,d,...)
最小値(引数最大20個)min(1,2,3,4) = 1min(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⁻¹(0) s=1,2,.., f'⁻¹(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⁽¹⁾ν(x)hankelH1(ν,x) hankelH1df(ν,x)
第2種ハンケル関数H⁽²⁾ν(x)hankelH2(ν,x) hankelH2df(ν,x)

球ベッセル関数

関数名記号予約語
第1種球ベッセル関数jν(x)sphericalbesselj(ν,x) spherical besseljdf(ν,x) spherical besseljzeros(ν,s) spherical besseljdfzeros(ν,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⁽¹⁾ν(x)sphericalhankelH1(ν,x) sphericalhankelH1df(ν,x)
第2種球ハンケル関数h⁽²⁾ν(x)sphericalhankelH2(ν,x) sphericalhankelH2df(ν,x)

エアリー関数(f(x), f'(x), f⁻¹(0) s=1,2,.., f'⁻¹(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)
ポリガンマ関数Ψ⁽ⁿ⁾(a)polygamma(n,a)
2重階乗x!!x!!
ポッホハンマー関数(x)npochhammer(x,n)

ベータ関数

関数名記号予約語
ベータ関数B(a,b)beta(a,b)
不完全ベータ関数Ix(a,b)y: ibeta(x,a,b) x: ibetaix(y,a,b)
不完全ベータ関数I₁₋ₓ(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)
ベルヌーイ数Bnbernoulli(n)
ゼータ関数ζ(x)zeta(x)

プログラム

数値計算に特化したC言語ライクな簡易的なプログラム体系です。

実行制御文

予約語簡易説明
if(条件式){式;...} elseif(条件式){式;...} else{式;...}ifの条件式が真ならそのブロックを実行する 偽ならelseifの条件式で同様の処理を行う 該当ブロックを実行したらif文を終了する
while(条件式){式;...}条件式が真ならブロックを実行する これを繰返し条件式が偽になったら終了する
do{式;...} while(条件式);ブロックを無条件に実行する 条件式が真ならば再度ブロックを実行し、偽ならば終了する
for(変数=初期値; 条件式; 変数=変数+ステップ) {式;...}変数を初期化し、条件式が真なら処理を実行する 変数を増分し、再度条件式が真なら処理を繰り返し、条件式が偽になったら終了する
break無条件でループから抜ける
continue無条件でループの始めに戻る

表示制御文

予約語簡易説明
print(式1,式2,...)式を出力する
println(式1,式2,...)式を出力して改行する
/*コメント*/計算式や制御に関与しない

論理演算子と論理値

分類予約語簡易説明
論理演算子not優先順位 not>and>or
論理演算子and
論理演算子or
論理演算子==左式と右式は等しい =
論理演算子<>左式と右式は等しくない ≠
論理演算子=<, <=左式は右式と等しいか小さい ≦
論理演算子=>, >=左式は右式と等しいか大きい ≧
論理演算子<左式は右式より小さい <
論理演算子>左式は右式より大きい >
論理値truetrue=1(≠0)
論理値falsefalse=0

配列 (array)

予約語簡易説明
numeric 配列名[要素数]; numeric 配列名[要素数][要素数]; numeric 配列名[要素数][要素数][要素数]; ....配列を宣言する。numeric test1[4]; numeric test2[4][4]; numeric test3[4][4][4];
numeric 配列名[] = {数値1,数値2,...}; numeric 配列名[][] = {{....},{....}}; ....配列を宣言すると同時に初期化する。numeric test1[] = {1,2,3}; numeric test2[][] = {{1,2,3},{4,5,6}}; numeric test3[][][] = {{{1,2},{3,4}},{{5,6},{7,8}}};
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]); ..... }