SageMath 初学者指南 | 安装及基本使用
唠唠闲话
在数学研究领域,计算和推导是不可或缺的环节。从上世纪 60 年代开始,数学家就开始使用计算机辅助发现数学模式和猜想。如今,专业的数学编程语言如 Mathematica,Maple,SageMath,GAP4 等应运而生,极大地拓展了人类的计算能力。这些工具不仅加快了数学计算的速度,也使得一些传统手算无法完成的任务成为可能。
数学编程语言众多,如果感兴趣,可以在共享文档 AI for Math Resources 中找到一个整理过的列表:
本文我们将重点关注 SageMath,介绍其安装方法和基本用法。
SageMath 是一个基于 Python 的免费开源数学软件系统,它建立在多个现有的开源软件包之上,比如 NumPy、SciPy、Matplotlib、Sympy、Maxima、GAP、FLINT、R 等。SageMath 提供了一系列统一的接口,旨在整合并扩展现有的数学编程工具,为用户提供一体化的解决方案。
一个简单的例子
举个例子,打印李代数 A3 的正根系:
1 | A3 = RootSystem("A3") |
命令行的执行结果:
现阶段,模型在专业数学编程能力上,已经具备了相当程度的训练,能够有效调用这些数学对象。上面的示例是由模型 glm-4-plus 生成的,同样的任务,deepseek/gpt-4o 也能够轻松理解和生成。
也就是说,模型对于相关工具,语法,以及可调用的对象已经有了一定的认知。进一步的挑战在于模型如何利用这些工具去解决实际的数学问题。
当然,本篇作为介绍,将先从 SageMath 的安装和配置讲起。
安装教程
Windows 用户可以直接从 SageMath 官网 下载并安装。
本文将介绍如何在 Ubuntu 上通过源码安装 SageMath,以启用最新功能。内容参考官方文档 Install from Source Code。
环境准备
测试环境 Ubuntu22:
1 | ❯ lsb_release -a |
先安装基础环境的依赖项:
1 | sudo apt-get install -y bc binutils bzip2 ca-certificates cliquer cmake curl \ |
接下来是用于 SageMath 开发的工具:
1 | sudo apt-get install -y autoconf automake gh git gpgconf libtool \ |
此外,安装 LaTeX 相关工具的依赖,以支持 SageMath 的 Tex 功能:
1 | sudo apt-get install -y default-jdk dvipng ffmpeg fonts-freefont-otf \ |
还有一些可选依赖,如果未安装,SageMath 会在构建过程中自行尝试安装:
1 | sudo apt-get install -y 4ti2 clang coinor-cbc coinor-libcbc-dev fricas \ |
源码安装
环境准备完毕后,我们开始安装 SageMath。
注意:如果使用 conda,请确保退出 conda 环境后再执行以下命令。
将 SageMath 的源码库克隆到目标安装目录:
1 | git clone https://github.com/sagemath/sage.git |
生成编译配置,默认将构建到 SAGE_ROOT/local
目录:
1 | # export SAGE_ROOT=$(pwd) # 默认为当前目录 |
执行后可能会提示缺少某些可选依赖,可以忽略。
配置完成后,开始编译和构建,这需要较长的时间。建议使用 tmux 或其他方法在后台运行:
1 | make -j$(nproc) |
安装完成后,创建快捷方式:
1 | ln -sf `pwd`/sage $HOME/.local/bin |
如果希望为所有用户提供可用性,可以全局安装,并将软链接放在 /usr/local/bin
下。
最后,通过运行 sage -v
来测试安装是否成功。使用 sage
命令进入 SageMath 的交互环境。
配置 Jupyter
内容参考官方文档:Launching SageMath with Jupyter。
查看 SageMath 内核描述的位置:
1 | sage -sh -c 'ls -d $SAGE_VENV/share/jupyter/kernels/sagemath' |
激活 Jupyter 所在的 Python 环境,例如 Conda,查看系统内的所有内核:
1 | jupyter kernelspec list |
将 SageMath 添加为 Jupyter 内核:
1 | jupyter kernelspec install --user $(sage -sh -c 'ls -d $SAGE_VENV/share/jupyter/kernels/sagemath') --name sagemath-dev |
小结
以上,我们简单介绍了数学编程语言 SageMath,以及其安装和初步使用方法。