這個計算機能做什麼
表格函數計算機可將同一條數學運算式 f(x, y, z) 套用到三欄資料表的每一列。每一列提供三個數字,分別對應變數 x(第 1 欄)、y(第 2 欄)與 z(第 3 欄)。系統會先把公式解析一次,接著對每一列分別求值,並回傳每列一個結果。它是單變數、雙變數表格函數工具的三變數版本,也是一個通用的批次運算式引擎。
使用方式
在 f(x, y, z) = 欄位輸入你的運算式,接著貼上資料:每行一列,每列三個數字,數字之間以空格、逗號或 Tab 分隔。你可以指定輸出顯示的有效位數(底層運算一律以完整的雙精度浮點數進行)。可使用的符號包含 + - * / ^、括號、常數 pi 與 e,以及 sqrt、abs、exp、ln、log、log10、sin、cos、tan、asin、acos、atan、sinh、cosh、tanh、floor、ceil、round、pow、min、max、mod 等函數。
公式說明
對於第 i 列,結果就是 $$\text{results}_i = f(x_i, y_i, z_i)$$ 運算式會透過遞迴下降解析器轉換成抽象語法樹(AST),並遵循標準的運算子優先順序(先是單元負號,再來是 ^,接著是 * 與 /,最後是 + 與 -),因此 \(2 + 3 \times 4\) 的結果為 14,而 \(2 ^ 3 ^ 2\) 則依照右結合的乘冪規則運算。
實例演算
以預設的 \(f(x, y, z) = \sqrt{x} + \sqrt{y} + \sqrt{z}\) 為例,資料列為 1 4 9、16 25 36 與 0 100 4:第一列得 $$1 + 2 + 3 = 6$$ 第二列得 $$4 + 5 + 6 = 15$$ 第三列得 $$0 + 10 + 2 = 12$$ 若改用 \(f(x, y, z) = x \times y + z\),套用到資料列 2 3 5,則得 $$2 \times 3 + 5 = 11$$
常見問題
遇到除以零或對負數開平方根會怎樣?該列會被標記出來:除以零會顯示 Infinity(無限大),超出定義域的結果則顯示 NaN(非數值),其餘各列仍會正常計算。
為什麼超過 15 位之後數字就不再變動?標準的雙精度浮點運算大約只能保留 15 到 16 位有效數字,因此就算要求更多位數,也無法增加真正的精度。
如果某一列的數字少於三個會怎樣?該列會被回報為輸入錯誤,因為 x、y、z 三個值都必須提供。