上流开源免费数学软件之 SageMath
最后更新于:2022年6月25日 下午
Sage 的是“ 圣”的意思,所以 SageMath 懂啥意思了吧,上流!哈哈。SageMath 整合了当前开源的所有高效包,用来取代 MATLAB(20G),Mathematics(5G)等商业软件。 而 SageMath 安装包仅 1G 不到,而且语言基于 Python,就很快乐。而且你还能免费注册账号用基于 Jupyter Notebook 的 SageMath 在线版: Cocalc
感谢知乎好友Vivr0 的推荐
SageMath 的安装,入门教程在 官网 很容易就找到了,而且下载提供国内镜像下载地址,特别友好。除了入门教程,还有专题教程。语言和 Python 几乎一致。不用一致 import,内建的特别好。文件格式:.sage
Macos or Linux 上用 sage 会更加快乐!WSL 就没法用 Jupyter 了,不过也还行!
SageMath 特征
- 交互界面下,有赋值就不输出,表达式会输出(调用
__repr__
方法) ZZ,QQ,RR,CC
分别表示整数,有理数,实数,复数- Tab 补全,vim 姿势退出,git 姿势复制粘贴,很上流
^
等同**
,^^
表示xor
,/
表示分数的除。其它和 Python 一致- (Python)函数和 SageMath 符号表达式是有本质区别的。
- 自带抽象代数:群,多项式环,\(\mathbb{Z}_n\) ,\(p\)-adic 数等等。上流
latex(expr)
:表达式的 latex 形式- 可以直接使用
oeis
- sage.arith.misc 各种杂类函数,sage.games 有几个有意思的。
%time
: 测时间,?
帮助文章并且可以定位到源码位置查看源码!- github 上查看 SageMath 模块源码
- 线性规划有包 MixIntegerLinearProgram
- To be Continue
Jupyter Notebook
Esc
进入命令模式,Enter
进入编辑模式。快捷键友好(工具栏最右边有快捷键查询)
命令模式常用快捷键(按 Esc 键开启)
快捷键 | 作用 | 说明 |
---|---|---|
S |
保存当前 NoteBook | |
Shift-Enter |
运行本单元,选中下个单元 | 新单元默认为命令模式 |
Ctrl-Enter |
运行本单元 | |
Alt-Enter |
运行本单元,在其下插入新单元 | 新单元默认为编辑模式 |
D,D |
删除选中的单元 | 连续按两个 D 键 |
Y |
单元转入代码状态 | |
M |
单元转入 markdown 状态 | |
R |
单元转入 raw 状态 | 保持原始格式 |
B |
当前行下方插入一行,并进入该行 | |
Shift-H |
清空所有输出 | 个人定制哈哈 |
编辑模式常用快捷键( 按 Enter 键启动)
快捷键 | 作用 | 说明 |
---|---|---|
Tab |
代码补全或缩进 | |
Shift-Tab |
提示 | |
Ctrl-] |
缩进 | 向右缩进 |
Ctrl-[ |
解除缩进 | 向左缩进 |
Ctrl-/ |
注释整行/撤销注释 | 仅代码状态有效 |
Ctrl-Z |
撤销 | |
Ctrl-ShiftZ |
重做 | |
Ctrl-Y |
重做 | |
Ctrl-Home |
跳到单元开头 | |
Ctrl-Up |
跳到单元开头 | |
Ctrl-End |
跳到单元末尾 | |
Ctrl-Down |
跳到单元末尾 |
Jupyter Notebook 在绘图方面特别方便,而且可以将代码和 Markdown 很清楚的写在一起
Jupyter 卡顿时候一定要强制中断!有数字的说明运行好了的!
SageMath 文档
模块索引(首字母) | 模块全名(sage. ) |
---|---|
a |
algebra, arith |
c |
calculus, categories, coding, combinat, cPython , crypto |
d |
date_structures, databases, docs, doctest, dynaimics |
e, f |
ext, features, finance, functions |
g |
game_theory, games, geometry, graphs, groups |
h, i |
knots, lfuntions libs, logic |
m |
manifolds, matrix, matroids media, misc, modular, modules, monoids |
n, p, q, r |
numerical, parallel, plot probability, quadratic_forms, quivers, repl, rings |
s, t |
sandpiles, sat, schemes, sets, stats, structure, symbolic, tensor, typeset |
记不清名字的时候多用代码补全!
先找对应名字,再找对应模块中的函数,最后看手册用的例子。
应用实例
文件保存为 .ipynb
而非 .sage
文件,方便在 VScode 中调用 jupyter(注意选择 kernel 为 Sage 即可,补全 tab 前要 esc)
多元多项式以某一个作为变量,其它看作常量的做法
二元的做法:
1 |
|
多元的做法:
1 |
|