表达式化简器
使用 mathjs 基于规则的化简器简化含变量的代数表达式。它会合并同类项、合并常数、约去相同因子并保持分数精确,因此 2x + 3x - x/2 会化为 x * 9 / 2。结果会以文本和 LaTeX 格式显示;当结果不含变量时,还会显示按你选择的精度四舍五入后的十进制值。输入会在受限的沙盒中运行,并设有时间限制。适合练习代数和整理公式。
常见问题
会进行哪些类型的化简?
化简器会合并同类项,例如将 2x + 3y - x + y 化为 x + 4 * y,合并数值常量,将 x * x 转换为 x ^ 2,将 x / x 化简为 1,并保留有理系数的精确分数形式。它会反复应用 mathjs 的化简规则,直到结果不再变化。结果在数学上与输入等价。
它会展开或因式分解多项式吗?
不会,(x + 1)^2 这样的乘积和幂会保持原样,也不会对多项式进行因式分解,因此 (x^2 - 1) / (x - 1) 不会化简为 x + 1。mathjs 的规则侧重于合并和约分,而非展开。这样可以让长表达式的结果保持简洁。
会应用三角恒等式吗?
不会,sin(x)^2 + cos(x)^2 = 1 这样的恒等式不在规则集合中,因此这类项会保持不变。常量的函数会被求值,因此 log(e) 会变为 1。变量的函数会保留为符号形式。
为什么 sqrt(8) 会变成小数?
mathjs 会对参数全为数字的函数求值,因此 sqrt(8) 会变成 2.8284271247461903,而不是 2√2。数字之间的普通算术运算会保持精确,因此 2/4 + 1/4 会变成 3/4。所以,普通数字的根式会显示为小数,而变量的根式(例如 sqrt(x))会保留为符号形式。
如何输入表达式?
使用 ^ 表示乘方,使用 * 或空格表示乘法,使用 / 表示除法,并用括号分组,例如 3x^2 + 2x - x^2 / 2。变量名以字母开头,可以包含数字和下划线。请注意,xy 是名为 xy 的单个变量,因此乘积应写作 x*y。
什么是小数值行?
如果化简后的表达式不包含变量,工具还会对其求值,并按你选择的精度显示四舍五入后的小数值。对于 2/4 + 1/4,该值为 0.75。含变量的表达式只会显示符号形式的结果。
LaTeX 输出有什么用途?
LaTeX 行包含化简后表达式的 LaTeX 代码,可直接粘贴到论文、幻灯片或支持数学公式渲染的 Markdown 编辑器中。它由 mathjs 根据相同的结果生成。分数会写作 \frac。
可以使用哪些函数和常量?
允许使用三角函数、反函数和双曲函数、sqrt、cbrt、exp、log、log10、log2、abs、round、floor、ceil、factorial 等科学函数,以及常量 pi、e、tau、phi 和 i。内置函数的名称不能用作变量。未知函数会被拒绝,并显示其名称。
粘贴任何表达式都安全吗?
安全。表达式会先经过解析,并根据允许列表进行检查,然后才会运行。按照 mathjs 的安全指南,赋值、函数定义、字符串、范围、索引,以及 import、evaluate 和 parse 等函数都会被拒绝。计算在隔离的 worker 中运行,时限为 3 秒。
有文件大小限制吗?
表达式最多可包含 2000 个字符,嵌套深度最多为 64 层。非常长的表达式可能需要 mathjs 花费很长时间才能化简,因此超过 3 秒的计算会停止,并提示你缩短表达式。遇到这种情况,请将较大的表达式拆分成几部分。