跳转至

字符串解析(输入标准)

本页是所有文本框输入的共同标准。掌握这些规则,求导、积分、方程、几何等所有功能都能正确解析你的输入。

〇、可视化公式输入(v1.6.4 新增)

除直接打字输入外,点击任意输入框右侧的键盘图标按钮,可打开基于 pyqt5-math-widget 的图形化公式编辑器。通过工具栏选择数学结构、运算符或函数,编辑完成后公式自动转换为 SymPy 表达式并填入输入框。

工具栏分组包括:结构(分式、根号、幂次等)、希腊字母运算符函数(sin、cos、log、lim 等)和编辑工具。

一、LaTeX 代码直接输入(v1.6.1 新增)

除标准 Python/SymPy 语法外,还支持直接输入 LaTeX 代码:在表达式前加半角美元符号 $ 作为标识,系统会自动将 LaTeX 转换为 SymPy 表达式。

数学含义 LaTeX 输入 等价 SymPy 输入
二分之 x $\frac{x}{2} x/2
x 的平方 $x^{2} x**2
根号 x $\sqrt{x} sqrt(x)
sin(x) $\sin{x} sin(x)
自然对数 ln(x) $\ln{x} log(x)
圆周率 π $\pi pi
无穷大 ∞ $\infty oo

Warning

必须以 $ 开头且为半角美元符号。不以 $ 开头时,系统按原有 SymPy/Python 语法解析。 LaTeX 解析支持常见数学符号与结构,复杂表达式也可混合使用 LaTeX 与 SymPy 语法。

二、数学符号输入标准

  • 加减乘除:+ - * /
  • 乘方:**(如 x**2
  • 根号:sqrt()
  • 绝对值:abs()
  • 普通对数 log_a(x):log(x, a)
  • 自然对数 ln(x):log(x)
  • 三角函数:sin() cos() tan() cot() sec() csc()
  • 反三角函数:asin() acos() atan() acot()
  • 双曲函数:sinh() cosh() tanh()
  • 自然常数:e
  • 圆周率:pi
  • 正 / 负无穷:oo / -oo
  • 括号:全部使用圆括号 ()
  • 虚数单位:I

示例

数学含义 应输入的表达式
2x 2*x
x 的平方 x**2
x 的算术平方根 sqrt(x)
以 2 为底 x 的对数 log(x,2)
自然对数 ln(x) log(x)
x 的正弦值 sin(x)

三、集合 / 区间输入标准

  • 列举法:FiniteSet(1,2,3)
  • 描述法:ImageSet(Lambda(x, f(x)), Domain)
  • 内置集合:
  • 实数集 Reals、复数集 Complexes、自然数集 Naturals、正整数集 Naturals0、整数集 Integers、有理数集 Rationals、空集 EmptySet
  • 区间:
  • 闭区间 [x,y]Interval(x,y)
  • 左开右闭 (x,y]Interval.Lopen(x,y)
  • 左闭右开 [x,y)Interval.Ropen(x,y)
  • 开区间 (x,y)Interval.open(x,y)
  • 并集:Union(A,B)
  • 交集:Intersection(A,B)
  • 补集 / 差集:Complement(A,B)(A 为全集)

示例

数学含义 应输入的表达式
集合 FiniteSet(1,2)
区间 [1,2] Interval(1,2)
区间 [1,2) Interval.Ropen(1,2)
区间 (1,2) Interval.open(1,2)
并集 {0}∪[1,2] Union(FiniteSet(0),Interval(1,2))
交集 {1,2}∩{2,3} Intersection(FiniteSet(1,2),FiniteSet(2,3))
补集 R[-1,1] Complement(Reals,Interval(-1,1))

FiniteSet 使用案例

  • "定义"页面的函数定义域中输入 FiniteSet(1,2,3) 将定义域限定为离散点集 {1,2,3}
  • "方程"页面的主元取值范围中输入 FiniteSet(0,1) 限定只求解该集合中的根
  • 组合:Union(Interval(0,1), FiniteSet(2)) 表示 [0,1] 与点 2 的并集

ImageSet 使用案例

  • 映射集合:ImageSet(Lambda(x, x**2), Interval(0, 5)) 表示 {x² | x∈[0,5]}
  • 周期解:sin(x)=0 的解集可表示为 ImageSet(Lambda(n, n*pi), Integers)
  • 定义域描述:ImageSet(Lambda(x, 2*x+1), Integers) 表示所有奇数

四、函数输入标准

对于在"定义"页面已定义的函数,可在其余大多数输入框直接使用:

  • 作为符号参与运算:已定义 g(x)=x**2,输入 g+1/g 得到 x**2 + 1/x**2
  • 以函数调用形式传参:已定义 f(x)=x**2,输入 f(3) 自动计算 3**2=9;支持嵌套调用如 f(g(2))

五、分母有理化

在求导、积分、方程求解、表达式变形等模块中,若结果分母含根号,系统自动执行分母有理化,将结果化简为分子分母均为整式或根式的最简形式。

Example

计算 1/sqrt(2) 时,结果自动显示为 sqrt(2)/2,而非 1/sqrt(2)

六、微分方程输入标准

微分方程的输入不符合上面的函数输入标准,因为微分方程的解在求解前未知。系统解析时会排除所有已定义的函数避免干扰,待求解函数固定为 f(x)

使用 f(x).diff(x,n) 表示对 x 的 n 阶导数,可省略 1,直接写 f(x).diff(x) 表示一阶导数。

Example

勾选"微分方程",左式输入 f(x).diff(x,1),右式输入 f(x)+1, 即完成方程 f'(x)=f(x)+1 的输入,求解得到 f(x)=C1*exp(x)-1