Android 上的科学
我已经介绍过许多不同的可在 Linux 下使用的科学软件包,但重点一直放在运行在桌面机器上的 Linux 系统。然而,这是相当短视的,因为许多其他平台也提供了 Linux,不应被忽视。因此,在本文中,我开始研究您可以在 Android 平台上进行的科学类型。在接下来的几篇文章中,我计划偶尔介绍一些您可能会觉得有用的 Android 应用程序。
我想探索的第一个应用程序是 Android 版 Maxima。Maxima 自 20 世纪 60 年代以来一直在麻省理工学院开发,至今仍在开源许可下继续开发。它是一个完整的计算机代数系统,用 Common Lisp 编写。幸运的是,Embeddable Common Lisp 已经被移植到 Android,这为运行 Maxima 引擎提供了所需的 Lisp 引擎。
在您的 Android 设备上安装 Maxima 分为两个步骤。第一步是从 Google Play 商店安装基础应用程序。一旦安装完成并在您首次运行时,应用程序将解压缩应用程序的大部分内容。由于这部分内容非常大,应用程序会询问您将其解压缩到哪里,因此如果您在内部存储中没有太多空间,您可以将其放在其他介质上。
当您最初启动 Maxima 时,您会看到许可信息和版本号的显示,然后会看到一个标记为“(%i1)”的输入提示符。根据您使用的设备和您眼睛的年龄,您可能很难看清屏幕上显示的输出。如果是这样,您可以像在其他 Android 应用程序中一样,用两指捏合或缩放来放大和缩小。您的另一个选择实际上是更改字体大小。您可以使用命令 textSize:XX
,其中 XX 是您想要使用的字体大小(以像素为单位)。建议的范围是 10-50 像素。

图 1. 当您启动 Maxima 时,您会获得标准的许可和版本信息。
在屏幕底部,您会找到一个橙色边框的文本输入框。您可以在此处输入要运行的 Maxima 命令。一旦您输入命令并按下 Enter 键,它将与结果一起显示在主窗口中。MathJax 库处理此数学信息的漂亮打印显示。为了重用以前的命令而使用的历史记录机制非常直观。当您点击以前的命令时,它会被复制并粘贴到文本输入命令框中,以便您在再次执行之前进行任何必要的编辑。
Android 版本的 Maxima 包含全套文档,您可以通过点击菜单图标并选择“Manual”选项来访问这些文档。在手册的每个部分中都有许多示例供您尝试。假设这将是人们想要做的常见事情,您可以简单地点击您想要使用的示例,这将把该示例复制到命令文本输入框中。这样,您可以找到一个与您想要尝试做的事情接近的示例,并轻松地将其复制到命令框中。然后,您可以编辑它并在运行之前进行任何必要的更改。这确实可以加快您使用 Maxima 进行的任何研究工作。
还有一个名为 example()
的函数。如果您在不带任何参数的情况下调用 example
,它将生成一个包含所有提供示例的主题的列表。然后,您可以通过使用命名主题调用 example
来查看特定主题的示例。例如,您可以使用命令 example(arrays)
了解有关数组的信息。这将调出并运行一系列关于如何在 Maxima 中使用数组的示例。
另一个用于加速研究的有用功能是加载 Maxima 命令文件的能力。当您尝试加载文件时,Android 版 Maxima 会自动在主下载目录中查找。此外,以“.txt”文件名结尾的文件会被找到并加载,而无需包含文件结尾。这意味着如果您在下载目录中有一个名为“my_script.txt”的文件,您可以使用命令 load(my_script)
加载它。如果您使用 Dropbox 并同步下载目录,您可以轻松地在您的 Android 设备和桌面之间来回移动文件。
尚未完全实现的一个主要领域是用于绘图和图形的图形系统。但是,每个新版本都会添加新功能。图形功能实际上由 gnuplot 提供。当前实现的功能有 plot2d
、plot3d
、implicit_plot
、contour_plot
、draw
、draw2d
和 draw3d
。这些命令会弹出一个新窗口来显示 plot
命令的结果。
由于 Android 上的一切都是全屏显示,您需要点击返回图标才能返回到主 Maxima 窗口。如果您想再次查看绘图,您可以点击菜单并选择“Graph”选项。这将重新打开上一个绘图窗口。
另一个主要问题是 lapack 库。尝试加载它会导致错误,因此您将无法访问通过 lapack 提供的优化线性代数函数。
当您进行复杂的研究时,您可能需要在流程中途停止,并在稍后再次继续。这通过会话的概念来处理。点击菜单图标,您可以选择“Session”选项。这将弹出一个子菜单,您可以在其中选择“Save”、“Restore”或“Playback”您的会话。但是,您一次只有一个保存的会话状态,因此它仅在您需要在工作流程中途停止时才真正有用。
如果您正在处理一个大型项目,并且在很长一段时间内使用相同的库,您可以设置在 Maxima 启动时运行的初始化代码。此代码需要存储在文件 /data/local/tmp/maxima-init.mac 中。任何任意的 Maxima 代码都可以放在这里,因此您可以根据需要初始化一个相当复杂的环境。
现在您可以将 Maxima 随身携带在口袋里,随时解决日常生活中出现的那些棘手问题。因此,您将没有任何借口不解决您需要的方程,以便在上班的火车上绘制出您的太空旅行路线。只要答应做好事,并且不要试图在你的下一次物理考试中使用它。