このツールでできること
このツールは、自分で定義した1つの数式 f(x, y) を、数値データ表の各行にまとめて計算します。1列目に x の値、2列目に y の値を入力すると、各行ごとにその行の値で評価した f(x, y) の結果が1つ出力されます。純粋な数式の評価ツールなので、国や通貨に依存するルールは一切なく、どなたでもそのままお使いいただけます。
使い方
f(x, y) = の欄に、変数 x と y を使って数式を入力します。演算子は + - * / ^ とかっこ、さらに次のような関数が使えます:sqrt, exp, ln, log, sin, cos, tan, asin, acos, atan, abs, floor, ceil, round。続いて表の欄にデータを入力します。1行につき2つの数値を、スペース・タブ・カンマのいずれかで区切って並べてください。表示する有効桁数を選べば、各行の結果がまとめて計算されます。
計算のしくみ
入力された数式は最初に一度だけトークン列に解析され、内部的な評価順序(操車場アルゴリズム)に変換されます。各行 \(i\) について、その行の値を代入して \(\text{result}_i = f(x_i,\, y_i)\) を求めます。行ごとに変わるのは代入する値だけで、解析済みの構造はそのまま再利用されます。そのため、大きな表でも高速かつ一貫した計算が可能です。
計算例
初期設定の数式 x^2*y+x*y^2(因数分解すると x*y*(x+y))と、初期データを使った例です。
1行目:x=1, y=2 → $$1\cdot 2 + 1\cdot 4 = 6$$ 2行目:x=2, y=3 → $$12 + 18 = 30$$ 3行目:x=3, y=4 → $$36 + 48 = 84$$ 結果の列は [6, 30, 84] となります。因数分解した形で検算すると、$$1\cdot 2\cdot 3 = 6,\quad 2\cdot 3\cdot 5 = 30,\quad 3\cdot 4\cdot 7 = 84$$ となり、すべて一致します。
よくある質問
どの変数が使えますか? 使えるのは x と y、それに定数の pi と e だけです。これら以外の文字は、対応する関数名でない限り解析エラーとして扱われます。
ゼロ除算や負の数の平方根のときはどうなりますか? その行だけ「undefined(未定義)」や「infinity(無限大)」と表示され、ほかの行はそのまま正常に計算されます。
有効桁数の設定で計算結果そのものは変わりますか? いいえ。あくまで表示の整形を行うだけです。内部の計算は常に倍精度(double)でフルに行われています。