這個工具的功能
這款計算器會把你自訂的一條數學函數 \(f(x, y)\) 套用到整張數值資料表的每一列。第一欄放 x 值,第二欄放 y 值,每一列都會輸出一個結果,也就是該列代入 \(f(x, y)\) 後算出的數值。它是純數學的算式求值器,因此通用於任何情境,不涉及任何地區規定或貨幣換算。
使用方式
在 f(x, y) = 欄位中,用變數 x 與 y 輸入算式。你可以使用運算子 + - * / ^ 與括號,以及常見函數:sqrt、exp、ln、log、sin、cos、tan、asin、acos、atan、abs、floor、ceil、round。接著在資料表方塊中輸入資料,每行一列,每行兩個數字,以空白、Tab 或逗號分隔。選好要顯示幾位有效數字後,工具就會逐列計算結果。
公式說明
系統會先把算式解析成一串 token,並轉換為內部的運算順序(調度場演算法,shunting-yard)。對於每一列 i,引擎會代入該列的數值,計算 \(result_{i} = f(x_{i}, y_{i})\)。各列之間唯一改變的只有代入的數值;已解析好的結構會重複使用,因此面對龐大的資料表也能保持快速又一致。
$$z = f(x,\,y)\Big|_{(x,\,y)\,\in\,\text{Table}}$$實際範例
以預設算式 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\)、\(2\cdot 3\cdot 5 = 30\)、\(3\cdot 4\cdot 7 = 84\)——完全吻合。
常見問題
我可以使用哪些變數?只有 x 和 y,加上常數 pi 與 e。其他字母除非是支援的函數名稱,否則都會被視為解析錯誤。
遇到除以零或對負數開平方根會怎樣?只有那一列會顯示「undefined」(未定義)或「infinity」(無限大),其餘各列仍會正常計算。
調整有效位數會改變計算結果嗎?不會。它只影響顯示出來的數值格式,底層運算一律以完整的雙精度進行。