Quantcast
Channel: 少数派
Viewing all articles
Browse latest Browse all 13778

PCalc 进阶用法:新建自定义函数 f(x)

$
0
0

关于 PCalc 基础用法以及如何自定义按键布局,详见:PCalc 入门用法


(为了避免翻译造成误解,文中部分词语仍以英文表达或中文旁备注英文。)

作为一个机械系「攻城狮」,经常需要查询螺纹的基础数据,比如最常用的螺纹大径、中径和小径(如图,d 为外螺纹大径,d2 为中径,d3 为小径)。在电脑前,可以直接用 Excel 公式计算获得,但很多时候在生产现场就马上需要某种螺纹规格数据,随身带着袖珍版纸质标准既不方便也不效率。

螺纹基本参数

上图中 d1、d2 可根据 d (已知数值参数,不要问为什么,这和本文无关 :P)和螺距 P(你就理解为另外一个已知数值参数)查询标准得出。

纸质标准数据


这很不效率,通过手机利用公式自动计算数据才是最佳方案, 随拿随用,用完放兜。

既然是计算数据,自然是用计算器喽。计算器 App 林林种种,能计算公式的也不少,但 PCalc 三点特性使其更适合用于工程领域。

  1. 高开放性,所有按键可自定义,根据不同领域定制最合适的布局;
  2. 高效率性,丰富的 URL Scheme 以及对 3D Touch 的支持。平时作为普通计算器使用,通过 3D Touch 快速切换到自定义布局进行工程计算;
  3. 可编程性1 ,丰富的运算法则让你得心应手,编写出更强大的函数。
看下 PCalc 查询效果,数据和标准是一致的。

PCalc 快速查询螺纹数据
如何新建自定义函数

新建函数必须通过 f(x) 按键 进入函数界面,编辑添加新函数类别New Category),应用会自动建立 New Function并附带一个「Multiply X by 42」。

PCalc 新建函数

「Multiply X by 42」就是一个乘法「运算命令 Command」,即 X 乘以 42。而 X 称为「变量 Variable」。

PCalc 之所以强大是因为它有着丰富的变量和完善的运算命令。

丰富的变量 Variable

PCalc 所有函数变量

变量可以分为以下六类:

  1. X、Y
    • 当前输入行的数值即为 X,比如输入「42」,X 的值就是42;
    • 在代数模式(algebraic mode)下,通过 xy按键(Swap x and y)来分别输入 Y 和 X 值。
  2. Memory 0 ~ 9
    • 当函数运算前需要输入多个基础数据时,这些数据可先存储在 Memory 中;
      Memory 相关命令按钮
    • Memory 0 ~ 9 可以通过 Memory 相关命令按钮操作,用 reg按键 进入「registers section」界面查看具体数值。
      「registers section」界面
  3. RPN Stack 1 ~ 9
    • RPN 模式2 下堆栈位,功能类似 Memory。
  4. Register 0 ~ 9,A ~ F
    • 功能同 Memory。但是,对于需要输入较多基础数据的函数,建议把 Memory 的值赋给 Register,并用 Register 替代 Memory 参与函数的运算。虽然不这么做对最终运算结果没有影响,但万一运算结果有误,你无法判断是数值输入错误还是函数运算过程不对;
    • Register 0 ~ 9,A ~ F 只能通过运算命令 Command 调用,无法在「registers section」界面查看;
    • PCalc 不会在函数运行后清除 Registers 被赋的值。
  5. Tax Rate
    • 税率,可实时更新。只能通过运算命令 Command 调用,无法在「registers section」界面查看;
  6. Clipboard
    • 提取剪贴板数据。

完善的运算命令 Command

通俗点讲,运算命令就是运算法则,加减乘除、平方、立方、对数、指数、三角函数等。以下列出所有 PCalc 支持的运算命令。

PCalc 函数运算命令 1


PCalc 函数运算命令 2

运算命令按需要输入的参数数量分为四类:

1. 只有 command 本身,比如 Switch to Decimal

Switch to Decimal

2. command 及一个参数,比如 Clear

Clear

3. command 及两个参数,比如 Set

Set

4. command 及三个参数,比如 Skip If Greate Than。Skip 值是跳过该 if command 后面的 commands 数量。

Skip If Greate Than


每个运算命令中,Register 一栏是目标参数,Value 是被运算参数,比如 Set X to 42,即把 42 赋值给 x,x=42。 

函数运作模式

我们通过 App 自带的 Special Category 里面的解一元二次方程来了解函数运作模式.。

一元二次方程

一元二次方程通用求根公式(中学知识,应该都知道吧): 

一元二次方程求根公式

函数步骤如下:

Commands
Switch to Decimal切换到十进制
Set R1 to XR1 = X
Set R2 to YR2 = Y
Negate R2R2 = -Y
Set R3 to M0R3 = M0 = m (m 值存储在 Momery 0 中)
Set R4 to R2R4 = R2 = -Y
R4 to Power of 2R4 = Y^2
Multiply R3 by R1R3 = R3 * R1 = Xm
Multiply R3 by 4R3 = R3 * 4 = 4Xm
Subtract R3 from R4R4 = R4 - R3 = Y^2 - 4Xm
R4 To Power of 0.5R4 = (Y^2 - 4Xm)^0.5
Set X to R2X = R2 = -Y
Add R4 to XX = X + R4 = -Y + (Y^2 - 4Xm)^0.5
Divide X by 2X = X / 2 = (-Y + (Y^2 - 4Xm)^0.5) / 2
Divide X by R1X = X / R1 = (-Y + (Y^2 - 4Xm)^0.5) / 2X (根1)
Set Y to R2Y = R2 = -Y
Subtract R4 from YY = Y - R4 = -Y - (Y^2 - 4Xm)^0.5
Divide Y by 2Y = Y / 2 = (-Y - (Y^2 - 4Xm)^0.5) / 2
Divide Y by R1Y = Y / R1 = (-Y - (Y^2 - 4Xm)^0.5) / 2X (根2)
Set M0 to 0M0 = 0


我们来试着解下述一元二次方程。

一元二次方程实例

使用自带的 「Retro 按键布局」且关闭「Multiple Memories」选项时,输入过程3 为: 

2x~y3+/-x~m1f(x)→Special→Solve X*x2+Y*x+m=0 
此时根 1(也就是 X 值)直接显示在界面上,根 2(即 Y 值)需要通过 reg 按键 在「registers section」界面查看。

registers section」界面查看两根

如何更效率地编辑函数

如果函数步骤不多,在 PCalc 中一个个拖动编辑 command 也还能忍受。当建立复杂函数时,其 command 数量会多得吓人,你不仅得有十足的耐心,更需要十分的小心,避免遗漏或弄错 command。

幸运的是,自定义函数可以以 .pcalcfunctions 文件形式通过系统 Share 传到电脑,然后用 plist 编辑器修改。

新建计算圆面积函数 π*X^2 及其 plist 代码如下图。

计算圆面积函数


圆面积函数 plist 代码

pwr x 2; mul x pi即运算步骤,command 需缩写。这里列出部分 command 对应的缩写形式4 。

1.set x 42      # Set X to 42
2.clr x # Clear X
3.add x 42 # Add 42 to X
4.sub x 42 # Subtract 42 from X
5.mul x 42 # Multiply X by 42
6.div x 42 # Divide X by 42
7.neg x # Negate X
8.inv x # Invert X
9.pwr x 42 # Raise X to the power of 42
10.roo x 42 # Raise X to the power of 1/42
11.sin x # Sine of X
12.cos x # Cosine of X
13.tan x # Tangent of X
14.asn x # Arcsine of X
15.acs x # Arccosine of X
16.atn x # Arctangent of X
17.ln x # Natural log of X
18.log x # Base 10 log of X
19.exp x # e to the power of X
20.e10 x # 10 to the power of X
21.fac x # Factorial of X
22.rnd x # Round X to nearest integer
23.trn x # Truncate X to nearest integer
24.hyp x 42 # Hypotenuse of triangle with legs X and 42
25.leg x 42 # Leg of triangle with hypotenuse and other leg of X and 42
26.dec # Decimal mode
27.hex # Hex mode
28.oct # Octal mode
29.bin # Binary mode
30.deg # Degrees mode
31.rad # Radians mode
32.jmp 1 # Skip 1 step
33.beq x 42 1 # Skip 1 step if X is equal to 42
34.bne x 42 1 # Skip 1 step if X is not equal to 42
35.bgt x 42 1 # Skip 1 step if X is greater than 42
36.bge x 42 1 # Skip 1 step if X is greater than or equal to 42
37.blt x 42 1 # Skip 1 step if X is less than 42
38.ble x 42 1 # Skip 1 step if X is less than or equal to 42
39.stp # Stop

总结

正所谓「工欲善其事必先利其器」,如果你经常需要使用计算器,老牌 PCalc 绝对算得上是易用性和开放程度最高的一款(至少目前是)。通过设置每个按键大小、样式和功能,完全可以打造一个最顺手的计算器。同时,其强大的自建函数功能更会让你觉得物超所值,而且作者从 2012 年开始不断地更新添加新功能。

了解更多关于 PCalc 的评测、用法和技巧,见 此博客 并搜索 PCalc (搜索需带梯子),博主是个工程师,从 PCalc 早期版本就在使用。




Viewing all articles
Browse latest Browse all 13778

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>