20.3 科研和专业工具
Calibre 文档管理(EPUB、MOBI、AZW3 等格式)
使用过 Kindle 的用户通常对 Calibre 这款软件并不陌生。
Calibre 可以在多种文档格式之间进行转换,还支持自定义 CSS 样式。
安装 Calibre
使用 pkg 安装:
# pkg install calibre使用 Ports 安装:
# cd /usr/ports/deskutils/calibre/
# make install clean使用 Calibre

代数学
简单的计算器 bc 和 dc 无需额外安装,属于 FreeBSD 基本系统内置工具。
其源代码位于存储库 https://github.com/freebsd/freebsd-src/tree/main/contrib/bc。
bc(Basic Calculator)简单的计算器
dc(Desktop Calculator)桌面计算器
后缀表示法(逆波兰表示法,Reverse Polish Notation,RPN)
我们从接触数学伊始,用的计算表达方式就是中缀表示法。如,要计算 3 和 4 的和,写作 3 + 4,操作符(本例是 +)处于操作数(即 3 和 4)的中间。
而在后缀表示法中,操作符置于操作数之后。如上式若改用后缀表示法,则写作 3 4 +。如果有多个操作符,操作符则置于第二个操作数的后面,所以常规中缀表示法的 3 - 4 + 5 在后缀表示法里写作 3 4 - 5 + 。
乍看之下,后缀表示法不直观,但这种方法更容易被计算机处理,并可利用堆栈结构减少内存访问。
有一例中缀表达式 5 + ((1 + 2) * 4) - 3,改为后缀表示法为 5 1 2 + 4 * + 3 -。
下表给出了从左至右求值的过程,堆栈栏给出了中间值,用于跟踪算法。
5
入栈
5
1
入栈
5, 1
2
入栈
5, 1, 2
+
加法运算
5, 3
1, 2 出栈,让结果 3 入栈
4
入栈
5, 3, 4
*
乘法运算
5, 12
3, 4 出栈,让结果 12 入栈
+
加法运算
17
5, 12 出栈,让结果 17 入栈
3
入栈
17, 3
-
减法运算
14
17, 3 出栈,让结果 14 入栈
计算完成时,栈内只有一个操作数,这就是表达式的结果 14。
dc 是采用后缀表示法的开源计算器,传统上,采用中缀表示法的 bc 计算器程序是在 dc 之上实现的。
对于上述示例,我们可以使用 dc 进行计算,在终端中输入以下命令:
使用 dc 计算表达式 5 + ((1 + 2) × 4) − 3,并输出计算结果。
计算结果为 14。问题得解。
几何学
几何绘图软件 GeoGebra
使用 pkg 安装:
或者使用 Ports 安装:

线性规划
GLPK
使用 pkg 安装 GLPK:
或者使用 ports 安装:
在线性规划中,经常会使用 单纯形法。在计算机应用层面,有多种软件可以辅助求解问题,例如可以在 Microsoft Excel 的“规划求解”功能中获得解答。
这里我们简单介绍一下免费的命令行线性规划软件包 GLPK 的使用方法。希望读者能够触类旁通,举一反三。
下面给出一个示例,取自希利尔(Hillier),F. S.,希利尔(Hillier),M. S. 著,李勇建、徐芳超 译,《数据、模型与决策:基于电子表格的建模和案例研究方法》(原书第 6 版)[M],北京:机械工业出版社,2021-12,ISBN:9787111696278,例题 2.4-1。
有一家银行计划放贷,预计最高投放 1200 万。下表显示了相关的数据。
个人
0.14
0.1
汽车
0.13
0.07
家用
0.12
0.03
农业
0.125
0.05
商业
0.1
0.02
坏账意味着不产生利润,本金也无法收回。为了同其它商业机构竞争,农业贷款和商业贷款之和不少于全部贷款的 40% ;为了振兴房地产业,个人贷款、家用贷款和个人贷款三项总计中,其中的个人贷款占比不少于 50% ;银行坏账率最高允许为全部贷款的 4%。
求解银行能获得最高利润的分配方式。
下面逐步进行分析,设个人、汽车、家用、农业及商业贷款的贷款量分别为 x1、x2、x3、x4 和 x5。
利润 = 0.14 · 0.9 x1 + 0.13 · 0.93 x2 + 0.12 · 0.97 x3 + 0.125 · 0.95 x4 + 0.1 · 0.98 x5
本金损失 = 0.1 x1 + 0.07 x2 + 0.03 x3 + 0.05 x4 + 0.02 x5
由此得到目标函数:max z = 利润 − 本金损失。
接下来,读者可根据题意找出约束条件。
由以上的目标函数和约束条件,我们可以给出以下数学模型:
touch example 新建一个文本文件(命名为 example),输入:
保存文件后,在终端中输入以下命令。
使用 GLPK 求解模型文件 example,并将结果输出到 example.out:
查看 example.out 文件内容:
可查看解答值为:x3 = 720,x5 = 480,其余各项值为 0。
至此,问题得到解决。
物理和化学
元素周期表 GPeriodic
GPeriodic使用 pkg 安装:
或者使用 ports 安装:

天文地理
星图软件 Stellarium
使用 pkg 安装:
或者使用 Ports 安装:


技巧
默认会进入全屏模式,按 F11 可退出全屏模式以退出软件。
Gnome 地图
使用 pkg 安装:
或者使用 Ports 安装:

地图数据整体较新,但无法显示街道的详细信息。
艺术
音乐
MIDI 编曲软件 LMMS
LMMS使用 pkg 安装:
或使用 Ports 安装:
软件支持中文,设置后需要重启一下才能使用中文。

制谱软件 MuseScore
MuseScore使用 pkg 安装:
或者使用 Ports 安装:

三维图像
3D 建模 Blender
Blender使用 pkg 安装:
或者使用 Ports 安装:
软件支持简体中文。如果无法直接显示简体中文,可先切换为繁体中文,再切换回简体中文。

绘画
Krita
使用 pkg 安装:
或者使用 Ports 安装:

工具与软件
科学计算软件 GNU Octave
使用 pkg 安装:
或者使用 Ports 安装:
统筹学
计算机代数系统 wxMaxima
使用 pkg 安装:
或使用 ports 安装:
上一节我们使用 GLPK 求解线性规划问题,本节我们使用性能更加强大的 wxMaxima 来解决问题。以下代码仅供参考,如果想深入了解,可查看 官方文档。

在界面中点击红框标示的位置即可执行指令,软件给出的解答为:[436.608,[x5=480.0,x4=0,x3=720.0,x2=0,x1=0]],可见该结果与 GLPK 求得的解一致。
最后更新于
这有帮助吗?