这个计算器能做什么
三变量函数表求值器会把同一个数学表达式 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 \char`^ 3 \char`^ 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 \cdot y + z\),对 2 3 5 这一行计算可得 $$2 \cdot 3 + 5 = 11.$$
常见问题
遇到除以零或对负数开平方会怎样?该行会被特别标记:除以零会显示 Infinity(无穷大),超出定义域的结果显示 NaN(非数值),而其他行仍会正常计算。
为什么超过 15 位之后数字就不再变化?标准双精度运算大约只能保留 15 到 16 位有效数字,所以即使要求更多位数也无法带来真正的精度提升。
如果某一行不足三个数字会怎样?该行会被报告为输入错误,因为 x、y、z 这三个值都必须齐全。