0x01 参考攻略
给出部分参考到的攻略,如果下面写的不清楚或者帮助有限可以去看看。
0x02 安装sage
1. 源码准备
我使用的是 Linux
Mint22,其实是可以直接找ubuntu的安装包的,不过源码构建也不难,所以我选择了后者。
首先在官网下载sage压缩包,
不开发的话选择stable版本准没错,选择有阿里云、中科大和南大的仓库。Anyway,
将源码下载到本地并解压到某个目录下,不妨命名为sage。
或者是通过git进行,如下:
1
| git clone https://github.com/sagemath/sage.git
|
2. 必需依赖项的安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| sudo apt update && sudo apt upgrade -y 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
|
3. 构建安装
1 2 3 4
| export SAGE_ROOT=$(pwd) cd sage make -j$(nproc) configure ./configure --prefix=$SAGE_ROOT/local
|
1
| sudo ln -sf `pwd`/sage /usr/local/bin
|
info
Linux创建快捷方式一般用软链接到下面的目录中
-
/usr/bin 一般是通过包管理器安装的标准程序,不建议乱放
-
/usr/local/bin
存放系统管理员或用户手动编译、安装或脚本创建的本地程序,作用于所有用户
-
$HOME/.local/bin 存放用户个人的本地程序,作用于该用户
0x03 配合jupyter
这个我选择最简单的方式,直接在sage里面安装(不用和apt斗智斗勇)
1
| sage -pip install jupyterlab notebook
|
然后直接执行下面的命令就好了
1
| sage -n jupyter # 指定端口用 --port <port>
|
最后在jupyter notebook中设置内核是sage就好了。
运行下面的代码展示成果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| x = var('x')
f(x) = sin(x) * exp(-x/2)
df_dx = diff(f(x), x)
F_x = integrate(f(x), x)
print("Original Function: f(x) = ", f(x)) print("First Derivative: f'(x) = ", df_dx) print("Indefinite Integral: ∫f(x)dx = ", F_x)
plot_f = plot(f(x), (x, -2*pi, 4*pi), legend_label='f(x)', color='blue') plot_df = plot(df_dx, (x, -2*pi, 4*pi), legend_label="f'(x)", color='red')
show(plot_f + plot_df)
|
sage画图