uWeb 中文文档 下载 App

符号演算与超级计算器——解方程、求积分、无限精度

为什么普通计算器不够用

手机上的计算器 App 能做:

但做不了:

uWeb + Termux + SymPy 的组合能做。

基础用法

无限精度计算

!pi 10000

得到 π 的前 10000 位数字。普通计算器只给 10~20 位。

!factorial 100

100! 的精确值(158 位大整数)。普通计算器在 20! 就溢出了。

!gcd 48 18

最大公约数(6)。

解方程

!solve x**2 - 5*x + 6

解 x² - 5x + 6 = 0,结果是 x = 2 和 x = 3。

!solve x**3 - 6*x**2 + 11*x - 6

三次方程的三个根。

求不定积分

!integrate x**2

∫x² dx = x³/3 + C

!integrate sin(x)

∫sin(x) dx = -cos(x) + C

求导数

!diff x**3

d(x³)/dx = 3x²

!diff sin(x)*exp(-x)

复合函数的导数。

分解因式

!factor x**2 - 1

x² - 1 = (x - 1)(x + 1)

!factor x**3 - 3*x**2 + 3*x - 1

完全分解:(x - 1)³

原理

这个功能基于 Python 的 SymPy 符号计算库:

前置条件

Termux 里需要安装:

pkg install python
pip install sympy

更多 SymPy 能力

SymPy 能做的远不止上面举例的这些。你可以在 Termux 里写 Python 脚本,然后用 !python3 script.py 的形式调用:

极限

from sympy import limit, symbols
x = symbols('x')
result = limit(sin(x)/x, x, 0)  # x→0 时 sin(x)/x = 1
print(result)

矩阵运算

from sympy import Matrix
A = Matrix([[1, 2], [3, 4]])
print(A.inv())  # 逆矩阵
print(A.det())  # 行列式

级数展开

from sympy import series, symbols
x = symbols('x')
print(series(exp(x), x, 0, 10))  # e^x 的泰勒展开到 x¹⁰ 项

微分方程

from sympy import Function, symbols, dsolve
x = symbols('x')
f = Function('f')
print(dsolve(f(x).diff(x) - f(x), f(x)))

实际使用场景

场景 1:数学/物理作业

场景 2:编程中的算法分析

场景 3:教育场景

注意事项

下一章