SageMath 初学者指南 | 安装及基本使用

在数学研究领域,计算和推导是不可或缺的环节。从上世纪 60 年代开始,数学家就开始使用计算机辅助发现数学模式和猜想。如今,专业的数学编程语言如 Mathematica,Maple,SageMath,GAP4 等应运而生,极大地拓展了人类的计算能力。这些工具不仅加快了数学计算的速度,也使得一些传统手算无法完成的任务成为可能。

数学编程语言众多,如果感兴趣,可以在共享文档 AI for Math Resources 中找到一个整理过的列表:

20241101135342

本文我们将重点关注 SageMath,介绍其安装方法和基本用法。

SageMath 是一个基于 Python 的免费开源数学软件系统,它建立在多个现有的开源软件包之上,比如 NumPy、SciPy、Matplotlib、Sympy、Maxima、GAP、FLINT、R 等。SageMath 提供了一系列统一的接口,旨在整合并扩展现有的数学编程工具,为用户提供一体化的解决方案。

一个简单的例子

举个例子,打印李代数 A3 的正根系:

A3 = RootSystem("A3")

# 获取正根系
positive_roots = A3.root_lattice().positive_roots()

# 打印正根系
print("正根系 of A3:")
for root in positive_roots:
    print(root)

命令行的执行结果:

20241101161901

目前的模型在专业数学编程能力上,已经具备了相当程度的训练,能够有效调用这些数学对象。上面的示例是由模型 glm-4-plus 生成的,同样的任务,deepseek/gpt-4o 也能够轻松理解和生成。

也就是说,模型对于相关工具,语法,以及可调用的对象已经有了一定的认知。进一步的挑战在于模型如何利用这些工具去解决实际的数学问题。

当然,本篇作为介绍,将先从 SageMath 的安装和配置讲起。

安装教程

Windows 用户可以直接从 SageMath 官网 下载并安装。本篇主要介绍如何在 Ubuntu 上通过源码安装 SageMath,以启用最新的代码功能。内容参考官方文档 Install from Source Code

环境准备

测试环境 Ubuntu22:

❯ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04 LTS
Release:        22.04
Codename:       jammy

先安装基础环境的依赖项:

sudo apt-get install -y bc binutils bzip2 ca-certificates cliquer cmake curl \
    ecl eclib-tools fflas-ffpack g++ gap gcc gengetopt gfan gfortran \
    glpk-utils gmp-ecm lcalc libatomic-ops-dev libboost-dev \
    libbraiding-dev libbrial-dev libbrial-groebner-dev libbz2-dev \
    libcdd-dev libcdd-tools libcliquer-dev libcurl4-openssl-dev libec-dev \
    libecm-dev libffi-dev libflint-dev libfplll-dev libfreetype-dev \
    libgap-dev libgc-dev libgd-dev libgf2x-dev libgiac-dev libgivaro-dev \
    libglpk-dev libgmp-dev libgsl-dev libhomfly-dev libiml-dev \
    liblfunction-dev liblinbox-dev liblrcalc-dev liblzma-dev libm4ri-dev \
    libm4rie-dev libmpc-dev libmpfi-dev libmpfr-dev libncurses5-dev \
    libntl-dev libopenblas-dev libpari-dev libplanarity-dev libppl-dev \
    libprimecount-dev libprimesieve-dev libpython3-dev libqhull-dev \
    libreadline-dev librw-dev libsingular4-dev libsqlite3-dev libssl-dev \
    libsuitesparse-dev libsymmetrica2-dev libz-dev libzmq3-dev m4 make \
    maxima maxima-sage meson nauty ninja-build openssl palp pari-doc \
    pari-elldata pari-galdata pari-galpol pari-gp2c pari-seadata patch \
    patchelf perl pkg-config planarity ppl-dev python3 python3-setuptools \
    python3-venv qhull-bin singular singular-doc sqlite3 sympow tachyon \
    tar texinfo tox xcas xz-utils

接下来是用于 SageMath 开发的工具:

sudo apt-get install -y autoconf automake gh git gpgconf libtool \
    openssh-client pkg-config

此外,安装 LaTeX 相关工具的依赖,以支持 SageMath 的 Tex 功能:

sudo apt-get install -y default-jdk dvipng ffmpeg fonts-freefont-otf \
    imagemagick latexmk libavdevice-dev libjpeg-dev pandoc tex-gyre \
    texlive-fonts-recommended texlive-lang-cyrillic texlive-lang-english \
    texlive-lang-european texlive-lang-french texlive-lang-german \
    texlive-lang-italian texlive-lang-japanese texlive-lang-polish \
    texlive-lang-portuguese texlive-lang-spanish texlive-latex-extra \
    texlive-luatex texlive-xetex xindy

还有一些可选依赖,如果未安装,SageMath 会在构建过程中自行尝试安装:

sudo apt-get install -y 4ti2 clang coinor-cbc coinor-libcbc-dev fricas \
    graphviz libfile-slurp-perl libgraphviz-dev libigraph-dev libisl-dev \
    libjson-perl libmongodb-perl libnauty-dev libperl-dev libpolymake-dev \
    libsvg-perl libtbb-dev libterm-readkey-perl libterm-readline-gnu-perl \
    libxml-libxslt-perl libxml-writer-perl libxml2-dev lrslib pari-gp2c \
    pdf2svg polymake r-base-dev r-cran-lattice sbcl

源码安装

环境准备完毕后,我们开始安装 SageMath。

注意:如果使用 conda,请确保退出 conda 环境后再执行以下命令。

将 SageMath 的源码库克隆到目标安装目录:

git clone https://github.com/sagemath/sage.git

生成编译配置,默认将构建到 SAGE_ROOT/local 目录:

# export SAGE_ROOT=$(pwd) # 默认为当前目录
cd sage
make -j$(nproc) configure
./configure # --prefix=$SAGE_ROOT/local

执行后可能会提示缺少某些可选依赖,可以忽略。

配置完成后,开始编译和构建,这需要较长的时间。建议使用 tmux 或其他方法在后台运行:

make -j$(nproc)

安装完成后,创建快捷方式:

ln -sf `pwd`/sage $HOME/.local/bin

如果希望为所有用户提供可用性,可以全局安装,并将软链接放在 /usr/local/bin 下。

最后,通过运行 sage -v 来测试安装是否成功。使用 sage 命令进入 SageMath 的交互环境。

配置 Jupyter

内容参考官方文档:Launching SageMath with Jupyter

查看 SageMath 内核描述的位置:

sage -sh -c 'ls -d $SAGE_VENV/share/jupyter/kernels/sagemath'

激活 Jupyter 所在的 Python 环境,例如 Conda,查看系统内的所有内核:

jupyter kernelspec list

将 SageMath 添加为 Jupyter 内核:

jupyter kernelspec install --user $(sage -sh -c 'ls -d $SAGE_VENV/share/jupyter/kernels/sagemath') --name sagemath-dev

小结

以上,我们简单介绍了数学编程语言 SageMath,以及其安装和初步使用方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

致宏Rex

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值