简介:Math Studio是一款体积仅1M但功能异常强大的手机数学计算工具,这份中文教程正是为其编写的内置函数全翻译手册。资源将软件中上百种函数逐一给出中文释义,涵盖了代数、基础运算、微积分、计算机代数系统(CAS)等类别,并把最大公约数、方程求解、积分、拉普拉斯变换等常用函数的英文名称、功能说明与适用场景逐项讲清,适合学生、教师及科研工作者在手机上快速掌握函数用法、解决各类数学问题。资源仅包含1个docx文档,压缩包大小约55KB,文档按函数类别分章节整理,目录结构清晰,便于按需查阅定位。目前已有2281人学习下载。通过这份教程,读者无需依赖英文界面即可理解上百个内置函数的含义与调用方式,还可以结合手机端Catalog与官网手册进一步拓展,显著提升移动端数学计算与学习效率。
1. Math Studio 中文教程:一个 1MB 的计算 App 为什么值得你收藏一份函数翻译
Math Studio 中文教程这份资源,解决的是手机数学计算软件里最现实的问题:Math Studio 功能强,但只有英文界面,内置上百种函数全是英文缩写,第一次打开的人看着 Catalog 里密密麻麻的函数列表基本就放弃了。我在手机上装过不少计算类工具,体积从几十 MB 到上百 MB 的都有,真正能在普通安卓机上流畅完成求导、矩阵分解、傅里叶变换的,反而是这个安装包只有 1MB 的软件。这套中文教程把内置函数按代数、微积分、矩阵、特殊函数等类别逐条翻译,适合两类人:学生用来判断某个数学运算该调哪个函数,做数值验证的工程师用来在手机上快速算公式。配合官网 Manual,基本可以当一本随身数学手册用。
2. 入门第一步:跑通内置 9 个教程,再看 Catalog 反查函数
2.1 菜单与文件操作:New、Open、Save 和 More 的层级关系
安装后打开 App,按下安卓的菜单键,会弹出 New、Open、Save、Save as、Exit、More 这一串选项。这个软件没有一个传统意义上的“计算器界面”,所有的计算都以表达式文件为单位,所以文件操作反而是使用频率最高的入口。
- New:新建一个表达式文件,相当于给当前计算开一张白纸
- Open:读取之前保存的计算文件,适合把做了一半的推导存下来第二天继续
- Save / Save as:保存当前文件,Save as 可以另存为其他名字,避免覆盖原文件
- More:里面藏着教程、设置和一部分辅助功能,后面单独说
这里容易踩的第一个坑是:很多人装完软件直接在主界面输数字,发现回车后什么反应都没有。其实主界面那些空白区域就是表达式输入区,先写表达式,再点对应的执行按钮或者用菜单里的相关命令,结果才会出现在下方。文件这个概念贯穿整个软件,这一点和 Windows 计算器完全是两种思路。
2.2 九个内置教程:为什么我建议先全部运行一遍
点击 More,从下往上数第 4 个就是 Tutorials。点进去之后能看到 9 个教程项目,把它们全部选中,直接 Launch tutorials,软件会依次运行这些示例文件。
More -> Tutorials -> 全选 9 个项目 -> Launch tutorials这一步不要偷懒只跑第一个教程。9 个项目覆盖了表达式输入、绘图、矩阵、字符串、时间绘图、脚本这些核心模块,每个教程会先显示一段说明文字,再给出一个可以实际运行的计算或绘图示例。我建议按这样的顺序完整看一遍:
- 先看 Entering Expressions,理解表达式是怎么写进去的
- 再看 Graphing Equations,搞清楚绘图是怎么触发的
- 然后过一遍 Lists 和 Matrices,了解数据结构
- 最后看 Time Graphing 和 Creating Scripts,知道进阶功能长什么样
全选运行的好处在于,软件会按顺序展示一个完整的“输入—计算—输出”闭环,你不需要自己猜。跑完这些示例再回去看 Catalog,很多函数签名就能对应上实际用法了。我第一次用的时候就是跳过教程直接查函数,结果连怎么绘图都没搞明白,后来把教程过了一遍,很多疑问自然就解开了。
2.3 Catalog 的正确用法:按分类找函数,按签名反查参数
手机上点开 Catalog,看到的就是这份中文教程末尾那一大串函数列表,从 Abs 到 Zeta 按字母排开。Catalog 的作用是反查函数签名,而中文教程的作用是告诉你这个签名里的每个字母是什么意思。
举例来说,你在 Catalog 里看到 DSolve(equation, dependent(independent), values, mode=1),如果只看这个签名完全不知道 equation 该写什么格式。这时回到中文教程的 CALCULUS 分类,看到“求解微分方程,可带初始条件”,基本就明白 equation 是微分方程表达式,values 可以用来放初始条件。
我一般会这样组合使用:
第一步:确定需要的数学运算,例如“求矩阵的特征值” 第二步:去 MATRIX 分类找 Eigenvalues 第三步:回到 Catalog 确认签名为 Eigenvalues(A) 第四步:用 Matrix 函数生成矩阵 A,再套进 EigenvaluesCatalog 里绝大多数函数旁边都标注了可选参数,用方括号包起来的都是可以不写的。比如 D(f(x), x, [n]),n 不写默认就是一阶导,写 2 就是二阶导。翻译文档里没有把每个默认值都标出来,这部分建议以官网 Manual 为准,我在后面第 5 章也会专门说几个容易弄错的默认行为。
2.4 理解表达式文件:把手机当成一张无限大的草稿纸
跑完教程之后,你会对 Math Studio 的工作模式有个直观感受:所有东西都组织在一个表达式文件里,一行一行往下追加,就像一张无线长的草稿纸。这种设计有两个好处,一是每一步中间结果都保留在屏幕上,方便回头看;二是可以用前面的输出作为后面函数的输入,形成一条计算链。
我常用的做法是:
- 第一行用 Matrix 定义矩阵 A
- 第二行用 Eigenvalues(A) 求特征值
- 第三行用 Eigenvectors(A) 看特征向量
- 最后把结果存成文件,命名成“xx题验证”
这套流程在手机上操作比在电脑上开 Mathematica 快得多,尤其是坐地铁或者开会时突然要验证一个公式,摸出手机点几下就有答案了。
3. 微积分与微分方程实战:Diff、Integrate、DSolve 的典型用法与边界
3.1 求导与积分:Diff、D、Integrate、NIntegrate 的参数分工
中文教程的 CALCULUS 分类里,Diff 和 D 是两个最容易搞混的函数。Diff(f(x), x) 求一阶导,D(f(x), x, [n]) 求指定阶导。参数顺序都是先表达式后变量,D 多一个可选阶数 n。
Diff(x^3 - 4*x + 2, x)输出结果是 3x^2 - 4。这里第一个参数 x^3 - 4x + 2 是完整表达式,第二个参数 x 是求导变量。要注意的是写法上乘号不能省,x^3 - 4x + 2 这种带省略乘号的写法在大多数情况下会报错,老老实实写成 4*x 最稳。
D(x^4 - 2*x, x, 2)输出是 12*x^2。三个参数分别是被导表达式、求导变量、求导阶数。如果你只想要二阶导但只写两个参数,软件会默认返回一阶导,这个默认行为容易让人误以为函数没生效。
积分方面,不定积分和定积分共用 Integrate 这一个函数:
Integrate(2*x, x)输出 x^2。第一个参数是被积表达式,第二个参数是积分变量。带上下限的定积分写法是 Integrate(2*x, x, 0, 1),第三、四个参数对应积分下限和上限。
遇到求不出解析解的被积函数,就用 NIntegrate 做数值积分。NIntegrate(f(x), x, a, b) 的参数和 Integrate 的定积分形式完全一致,只是内部改成数值方法计算。我的经验是,先试着用 Integrate,如果软件返回原表达式或者报错信息看不懂,再换 NIntegrate 兜底。数值积分的结果会有误差,但对大多数工程验算场景精度足够。
3.2 极限、级数与求和:Limit、Series、Sum 的边界条件
Limit 函数的签名是 Limit(function, variable, point, [direction]),前三个参数必填,方向参数可选。
Limit((sin(x))/x, x, 0)输出 1。这个经典的极限如果手算要绕一圈,手机上直接出结果。第四个参数 direction 用来指定趋近方向,比如求 x 从右侧趋近 0 时 1/x 的极限,需要用方向参数控制左右极限,否则软件可能返回一个不存在的结论或者直接报错。
Series 函数用于把给定函数展开成指定阶数的麦克劳林级数:
Series(exp(z), z, 5)第一个参数是被展开的函数,第二个参数是展开变量,第三个参数是展开阶数。从签名可以看出第三个参数传的是阶数而不是展开点,说明这个函数只做麦克劳林展开,也就是在 0 点附近展开。如果你想做在 a 点附近的泰勒展开,需要先做变量替换,把 z-a 作为新变量再调 Series。
Sum 和 Product 分别处理数列求和与连乘积:
Sum(k^2, k, 1, 10)输出 1^2 + 2^2 + ... + 10^2 的和。Product(f(n), n, start, end) 的用法一致,只是把累加换成累乘。这两个函数在验证数列规律、计算级数部分和时非常好用,配合前面说的表达式文件,可以一行行比较不同上限下的结果。
3.3 微分方程与数值迭代:DSolve、RK4、RK45 的适用场景
DSolve 是中文教程里少数几个能直接解微分方程的函数,签名是 DSolve(equation, dependent(independent), values, mode=1)。
第一个参数是微分方程本身,第二个参数是依赖变量的写法,比如 y(x) 表示 y 是 x 的函数,第三个可选参数 values 用于传入初始条件。第四个 mode 参数看起来控制求解模式,但这个参数的具体取值我也没有完全试透,常规使用建议不要动它。
常见做法是先试着用 DSolve 求解析解,解不出来再转数值方法。RK4 和 RK45 是两个数值解常微分方程的函数:
RK4(function, t, y, a, b, y0, N=10)参数从左到右分别是微分方程右端函数、自变量、因变量、区间起点、区间终点、初始值、步数。我一般会先用 N=10 跑通整个流程,确认参数没写错,再把 N 调到 50 或 100 看数值是否稳定。RK45 的签名里带有 Tol、hmax、hmin 这些自适应步长控制的参数,适合对精度要求更高的场景。
用数值方法解微分方程时,最需要警惕的是初值给错或区间写反,这两个错误会导致结果整体偏移,而且不太容易一眼看出来。
3.4 向量微积分:Gradient、Divergence、Curl 的输入输出模式
向量微积分这一组函数在手机计算器里很少见,Math Studio 却做得很完整。Gradient(function, [varlist], [mode]) 计算梯度,第一个参数是标量函数,第二个参数是变量列表,用方括号包起来。
Gradient(x^2 + y^2, [x, y])输出向量的两个分量分别是对 x 和 y 的偏导。注意 Divergence 的参数顺序不一样,它的签名是 Divergence([varlist], vector, [mode]),变量列表放在了第一个参数位置,向量表达式放在第二个位置。Curl 的签名则是 Curl(vector, [varlist], [mode]),变量列表又回到了第二个位置。这三个函数参数顺序不统一,是这类工具里少有的反直觉设计,写的时候一定要对着 Catalog 核对。
4. 矩阵、数论与统计函数:从 Det 到 SVD 的移动端数值验证
4.1 矩阵基本操作:Matrix、Det、Inverse、Transpose 的配合
矩阵在 Math Studio 里通过 Matrix 函数创建。Matrix(2, 2) 生成一个 2 行 2 列的矩阵模板,填入元素后就能参与运算。实际使用中,我一般先把矩阵定义在表达式文件的某一行,后面所有矩阵函数都引用这个变量。
矩阵相关的函数签名都比较简单,Det(A) 求行列式,Inverse(A) 求逆矩阵,Transpose(A) 求转置,Identity(n) 生成 n 阶单位矩阵。这几个函数不需要额外参数,只要 A 是合法的矩阵。
A = Matrix(2, 2)Det(A)第一行定义矩阵变量 A,第二行为空,第三行直接调用 Det(A)。需要注意的是,矩阵变量名在 Math Studio 里不区分大小写可能会出问题,我习惯统一用大写字母命名矩阵,避免和后面要说的复数单位 i 冲突。
4.2 特征值、SVD 与 LU 分解:返回值结构的三个坑
Eigenvalues(A) 返回矩阵的特征值列表,Eigenvectors(A) 返回特征向量。这两个函数对矩阵维数没有硬性限制,但 3 阶以上的矩阵在手机上计算时耗时会明显增加。
LUDecomposition 的返回值结构比较特殊,从中文教程的说明来看,它返回一个包含三个元素的列表:第一个元素是上三角和下三角矩阵的组合,第二个元素是用于绕轴旋转的行向量,第三个元素是 L∞ 条件数的估计。这个返回结构不像 Det 那么直观,新手容易只取第一个元素然后发现结果不对。
SVD(A) 做奇异值分解,返回的是奇异值分解后的矩阵组。这个函数对性能要求更高,我通常在 3 阶以下的小矩阵上使用,大矩阵在手机上是真的会卡。
4.3 数论与组合计数:Divisors、IsPrime、Catalan 的参数与输出
数论这组函数几乎都是单参数,不需要太复杂的说明。Divisors(n) 返回给定整数的所有因数,nFactors(n) 和它作用相同,两者任选其一即可。
Divisors(12)输出结果是 1、2、3、4、6、12 这个因数列表。IsPrime(n) 用于判断质数,返回 1 表示是质数,返回 0 表示不是,这个 1/0 的返回值设计来自 C 语言传统。
Catalan(n) 返回第 n 个加泰罗尼亚数,Pochhammer(n, k) 计算 n*(n+1)(n+2)...*(n+k-1) 这个连乘序列,Multinomial(nList) 计算多项式系数。这几个组合数学函数在做概率计算和数列推导时特别有用。
Pi_Digits(n) 显示圆周率的前 n 位小数,这个函数在验证算法精度时很好用,可以拿来和手算结果比对。Random(min, max) 生成指定范围内的随机数,第一次用的时候注意它包含两端还是只包含一端,建议先跑两次边界值确认随机范围,避免在统计模拟里出偏差。
4.4 统计分布函数:CDF 与 PDF 的命名规律和参数顺序
Math Studio 的统计分布函数覆盖了正态、二项、泊松、卡方、几何、F 分布等常用分布。命名规律很统一:PDF 结尾的是概率密度函数,CDF 结尾的是累积分布函数。
这里最需要警惕的是正态分布两个函数的参数顺序完全不同。NormalPDF(x, mu, sigma) 是常规写法,先写变量再写均值和标准差。NormalCDF(lower, upper, [mu], [sigma]) 则先写区间下限和上限,再写均值和标准差,它计算的是落在区间 [lower, upper] 内的概率,而不是小于某个值的概率。
分布函数参数对照表:
| 分布 | 概率密度函数 | 累积分布函数 |
|---|---|---|
| 正态 | NormalPDF(x, mu, sigma) | NormalCDF(lower, upper, mu, sigma) |
| 二项 | BinomialPDF(n, p, x) | BinomialCDF(n, p, x) |
| 泊松 | PoissonPDF(mu, x) | PoissonCDF(mu, x) |
| 卡方 | ChiSquarePDF(x, df) | ChiSquareCDF(lower, upper, df) |
参数顺序在 CDF 函数里特别容易被忽略,我吃过一次亏:用 NormalCDF(1.96, 0, 1) 想算标准正态小于 1.96 的概率,结果怎么都不对。后来仔细看签名才发现这函数要的是区间上下限,正确写法是 NormalCDF(-1.96, 1.96, 0, 1)。如果你需要单尾概率,可以写成 NormalCDF(-100, 1.96, 0, 1),用负大数当下限,或者用 InverseNormal 反推分位点。
5. 避坑与常见问题:大小写、参数顺序、复数符号与性能瓶颈的排查记录
5.1 现象:diff 输不出求导结果,原样返回或报错
你输入 diff(x^3, x),软件不执行求导,而是把 diff 当成一个未定义的符号变量原样返回。
原因:Math Studio 绝大多数函数首字母必须大写,Diff 才是求导函数,小写 diff 不被识别为内置函数。这是软件词法分析的设计,不是你的操作问题。少数函数首字母大小写无区别,比如 Det 和 det 都可以用,但这类豁免的函数极少。
解决:养成所有函数统一大写首字母的习惯。我后来所有的表达式都强制自己首字母大写,反而避免了这种困惑。写完后如果结果里出现函数名原样保留,第一反应就去看首字母是否大写。
5.2 现象:Integrate 求定积分没有结果,或者返回的表达式很奇怪
你写 Integrate(2*x, 0, 1),软件没有给出预期的积分值 1,而是报参数数量错误。
原因:Integrate 的签名是 Integrate(f(x), x, [a], [b]),积分变量 x 是必填的第二参数,即使你要算定积分也必须写出来。少了积分变量这个参数,软件不知道对哪个变量积分,自然就出错了。
解决:改成 Integrate(2*x, x, 0, 1)。类似的问题也出现在 Sum 和 Product 上,变量参数必须显式给出,不能因为表达式里只有一个变量就省略。
5.3 现象:NormalCDF 算出来的概率不是预期值,甚至出现异常结果
你用 NormalCDF(1.96, 0, 1) 想算标准正态分布小于 1.96 的概率,结果和统计表对不上。
原因:NormalCDF 的签名是 NormalCDF(lower, upper, [mu], [sigma]),前两个参数是区间端点,第三个参数才是均值,第四个是标准差。你只填了三个参数,软件理解为均值是 1.96,标准差是 0,而标准差为 0 的正态分布不是合法输入。
解决:按签名写参数,单尾概率可以用负大数当区间下限,写成 NormalCDF(-100, 1.96, 0, 1)。所有 CDF 类函数都建议先核对签名里前两个参数是变量还是区间端点,再填数值。
5.4 现象:Laplace 变换的结果里混入了上一次计算的值
你在做拉普拉斯变换,表达式里用了变量 s,但算出来的结果总是带上之前赋值过的常数。
原因:Math Studio 的变量是持久的,之前某一步给 s 赋过值,之后再用 s 就会被替换成旧值。这属于符号计算工具的常见“变量污染”问题,我在电脑端的其他数学软件里也遇到过。
解决:在脚本或表达式文件开头加一行 Clear(s),把所有要用的符号变量先清理一遍。中文教程里专门列出了 Clear(variable, ...) 这个函数,就是干这个用的。从那以后我每次新建表达式文件,都强制先执行一次 Clear,把所有用到的变量名全部清干净再做计算。
5.5 现象:FractalPlot 绘制分形图时手机卡死或长时间无响应
你按照教程画分形图形,图形很美,但手机在计算时几乎完全卡住,等了很久都没有结果。
原因:分形绘图需要大量迭代计算,对手机 CPU 和内存压力很大。配置一般的手机调用这个函数确实容易彻底卡死,这是性能限制,不是软件 bug。
解决:尽量避免在手机上做大范围高密度的分形绘图。如果确实想看效果,先把绘图范围缩小,或者降低参数精度,跑一个低分辨率的预览。同样的道理也适用于 Plot3D 和 VectorPlot3D,这类 3D 绘图在手机上不要追求高精度,够用就行。
6. 进阶技巧:用 Plot、Scroll 与 Animate 把静态公式变成动态演示
6.1 用 Scroll 滚动条驱动参数,动态观察函数变化
Scroll(variable, start, end, [step], [initial value]) 是中文教程 SCRIPTING 分类里被低估的函数。它的作用是在界面生成一个滚动条,拖动时参数按步长变化,从而实现参数的连续调节。
Scroll(a, 1, 10, 0.5, 2)这段代码创建一个从 1 到 10、步长 0.5、初始值为 2 的滚动条,变量名是 a。把它和 Plot 组合起来,就可以实时观察参数变化对函数曲线的影响,比静态改参数要直观得多。
6.2 把 Scroll 与 Plot 组合,做一个可以拖动的参数动画
最典型的场景是观察二次函数 y = a*x^2 的开口变化:
Scroll(a, -5, 5, 0.1, 1)Plot(a*x^2, x)Scroll 固定在表达式文件里的位置,拖动画块时 Plot 的曲线会跟着刷新。几个注意事项:Scroll 的参数范围要和 Plot 的自变量范围分开设置,避免把滚动条的初始值误当成绘图区间;步长不要设太小,否则滑动时刷新太频繁导致卡顿;如果曲线不刷新,检查 Scroll 和 Plot 里是否用了同一个变量名。
6.3 保存表达式文件,形成自己的参数模板库
这套组合最实用的用法是做参数模板。比如我经常需要验证不同阻尼比下的二阶系统响应曲线,就建一个固定格式的表达式文件:第一行定义阻尼比滚动条,第二行定义频率参数,第三行写传递函数,第四行 Plot 输出。每次要用时复制一份,只改函数表达式,参数直接拖滚动条就行。
比 Animate 的自动动画更实用的是 Scroll 的手动控制,可以精确停在某个参数值上读曲线。从那以后我每次遇到参数化公式,都强制自己走一遍“Clear 清变量加 Scroll 建参数加 Plot 出图”的流程,手机就成了一个随时能调参的图形计算器。希望这份使用思路能帮到你。
本文还有配套的精品资源,点击获取