sagemath入门

sagemath简介

SageMath 是一个基于GPL协议的开源数学软件。它使用Python作为通用接口,将现有的许多开源软件包整合在一起,构建一个统一的计算平台

官网:http://www.sagemath.org/
中文版官网:http://www.sagemath.org/zh/
中文版的SageMath入门手册: http://ai7.org/wp/html/682.html

sagemath安装

MACos

下载地址:http://www.sagemath.org/download-mac.html

选择一个服务器进行下载,这里我们选清华的服务器,然后选择cpu,一般是inter,然后选择是app还是命令行的,我选择app的,最后下载地址:

https://mirrors.tuna.tsinghua.edu.cn/sagemath/osx/intel/sage-8.0-OSX_10.11.6-x86_64.app.dmg

打开,进入设置,改一下sage的执行命令为对应的可执行文件,然后加入环境变量

其实也就是做了个软链接,现在可以输入sage,进入交互命令行

终端选择iterm

kali

选择sage-8.1-Ubuntu_16.04-x86_64.tar.bz2下载:

https://mirrors.tuna.tsinghua.edu.cn/sagemath/linux/64bit/sage-8.1-Ubuntu_16.04-x86_64.tar.bz2

然后解压出来,进入解压目录

1
2
tar -jxvf sage-8.1-Ubuntu_16.04-x86_64.tar.bz2
cd SageMath/

先运行一遍,第一次运行要等一会,然后编辑sage中的SAGE_ROOT,为你解压目录

1
2
./sage
gedit sage

复制到可执行目录

1
cp ./sage /usr/local/bin/sage

输入sage看能不能正常进入,大功告成

运行

提供4种方式运行

  • Notebook 图形界面
  • 交互命令行
  • 程序:在 Sage 中编写解释型或者编译型的程序
  • 脚本:在独立的 Python 脚本中调用 Sage 库文件

如果设置好环境变量了,可以输入sage进入交互命令行

在命令行中输入notebook()进入Notebook 图形界面

输入sage do_some_math.sage执行脚本

一些基本语法

这里给出部分和python2.7不一样的地方,大部分语法和python类似

基础运算

1
2
3
4
5
6
7
8
9
10
sage: 2ˆ3
8
sage: 10/4
5/2
sage: 10//4
2
sage: sqrt(3.4)
1.84390889145858
sage: sin(5.135)
-0.912021158525540

n()取精确值

1
2
3
4
5
6
7
8
9
10
11
12
sage: n(pi)
3.14159265358979
sage: sin(pi/3)
1/2*sqrt(3)
sage: sqrt(pi).numerical_approx()
1.77245385090552
sage: sin(10).n(digits=5)
-0.54402
sage: N(sin(10),digits=10)
-0.5440211109
sage: numerical_approx(pi, prec=200)
3.1415926535897932384626433832795028841971693993751058209749

进制转换

1
2
3
4
sage: 8.str(2)
'1000'
sage: 8.str(7)
'11'

内置文档

函数名加?,键q退出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
sage: exp?
Type: Function_exp
String form: exp
File: /Applications/SageMath-8.0.app/Contents/Resources/sage/local/lib/python2.7/site-packages/sage/functions/log.py
Docstring:
The exponential function, exp(x) = e^x.

EXAMPLES:

sage: exp(-1)
e^(-1)
sage: exp(2)
e^2
......

解方程

1
2
3
4
5
6
7
8
9
sage: x = var('x')
sage: solve(x^2 + 3*x + 2, x)
[x == -2, x == -1]
sage: x, b, c = var('x b c')
sage: solve([x^2 + b*x + c == 0],x)
[x == -1/2*b - 1/2*sqrt(b^2 - 4*c), x == -1/2*b + 1/2*sqrt(b^2 - 4*c)]
sage: x, y = var('x, y')
sage: solve([x+y==6, x-y==4], x, y)
[[x == 5, y == 1]]

更多特性

sage的中文文档讲的十分详细了,如果感兴趣可以自己读下文档

Sage Tutorial 中文版(HTML):

http://www.ai7.org/wp/wp-content/uploads/2010/01/html.zip

Sage Tutorial 中文版(PDF):

http://www.ai7.org/wp/wp-content/uploads/2010/01/pdf.zip

附上文档目录