搜档网
当前位置:搜档网 › SageMath简易入门手册

SageMath简易入门手册

SageMath简易入门指导

中国矿业大学(北京)理学院2014级创新小组编组长:孙裕道

组员:孟坤,尹娟,董光林,李欢,王思高

导师: 刘兰冬

前言

一些数学商业软件如Matlab、Maple、Mathematica需要下载到电脑上,而且这些软件在电脑中需要占用很大的内存,单说Matlab 在电脑中就会占用6.5G的内存左右,从官网下载该软件也会要下载半天,非常不方便。

互联网时代,在云端进行操作和存储事物已经成为一种趋势,SageMath软件就是顺应这种趋势的发展。 SageMath是网上免费的开源数学软件,注册一个SageMath的账号在云端就可以进行相关的操作,非常方便,所以我们创新小组决定学习SageMath.

SageMath的功能强大,可以求积分,求极限,求导等一些列高等数学的运算,并且可以对一些复杂问题进行SagaMath编程求解。

我们创新小组在刘兰冬老师的指导下,系统地学习SageMath软件的相关知识,使大家对SageMath的这门语言的一些基础语法和用法有了初步的了解,可以对一些数学问题进行编程求解。希望我们小组的这个SageMath简易入门指导可以对这门语言感兴趣的人,想学习这门语言的人有入门指导的帮助。

2014年11月1日

目录

1 SageMath的登陆方法 (4)

1.1进入官网 (4)

1.2 界面登陆 (5)

1.3创建账号 (5)

1.4创建工程 (6)

1.5工程搜索 (7)

1.6新建文件 (8)

1.7新建工作簿 (8)

1.8编辑界面 (9)

1.9进行操作 (9)

2.SageMath的基本语法 (12)

2.1基本命令语 (9)

2.1.1 加法 (10)

2.1.2 减法 (10)

2.1.3 乘法 (10)

2.1.4 除法 (10)

2.1.5 乘方 (10)

2.1.6 开方 (10)

2.2判断语句 (10)

2.2.1 if语句的用法 (10)

2.3循环语句 (11)

2.3.1 For循环语句 (11)

2.3.2 While循环语句 (11)

2.4 画图 (12)

2.4.1 plot语句 (12)

2.4.2 show语句 (12)

3.SageMath中的数学函数 (13)

3.1高等数学中的Sage命令 (13)

3.1.1函数表示 (13)

3.1.2复合函数 (13)

3.1.3微分 (14)

3.1.4Talor公式 (15)

3.1.6求极限 (16)

3.1.8数论素数分解 (16)

3.2线性方程组中常用命令 (16)

3.2.1矩阵运算 (16)

3.2.2逆矩阵 (17)

3.2.3求解方程组 (17)

4.Sage中的编程 (19)

4.1插值多项式 (19)

参考文献 (20)

SageMath简介

SageMath 是一个免费的、开源的数学软件系统,采用GPL协议。它整合了许多开源Python包,采用Python语言编写,但也支持其他语言。它的目标是创造一个可变的开源软件以替代Magma、Maple、Mathematica和Matlab。SageMath不仅是一个软件,也是一个编程环境,提供命令行模式、笔记本模式,可以编写编译型程序和解释型程序。目前SageMath支持Linux、Mac OS X、BSD、Solaris平台。SageMath采用浏览器作为GUI界面,融入了云计算的思想。学生不用再为写一次作业而装几G多的而苦恼了,他们可以不在电脑上面安装 SageMath 而使用它Matlab。

1 SageMath的登陆方法

1.1进入官网

首先登录 sage的官方网站: https://www.sodocs.net/doc/2019377624.html, 也可以通过搜索引擎通过搜索 sagemath 进行寻找。

1.2 界面登陆

using SageMath online 进入SageMath界面,然后你需要创建一个账号,下次登陆时直接登陆就可以了(Sign in)

1.3创建账号

请大家自己创建自己的账号,下一次用邮箱名登陆即可,邮箱可以任何自己已有的邮箱,QQ邮箱,网易邮箱,新浪邮箱都可以申请,申请完毕后需要在需要在邮箱激活账号。

1.4创建工程

登陆成功后进入以下界面,需要你创建自己的工程“Projects”,在Projects 上输入正确的字符字母,下划线,汉字等,但注意不能开头不能是数字

输入你的工程项目名,以下以“Step20150907”为例,建立一个新项目“New Project”

对新Project的描述,自己根据需要填写,比如你是2015年10月7日做的,即可以写成step_0151007,需要由英文,下划线,字符串组成

1.5工程搜索

在Projects中找到你要编辑的Project,例如:我要编辑“Exercise20160907”,双击进入即可,就能找到你之前编辑过的SageMath文本

1.6新建文件

点击New按钮,弹出界面,在Name your file文本框上输入正确的字符,如字母,下划线,汉字等,但注意不能开头不能是数字

1.7新建工作簿

点击Select the type 下面的按钮“SageMath Worksheet”,然后会弹出下面页面,然后再点击即可

1.8编辑界面

进入编辑界面,可以在上页面上进行数学运算,上面有一组工具栏,在这些工具栏可以找出各种数学运算的命令。

1.9进行操作

在此界面你可以完成你的计算任务

例1: 计算2的3次方,可以如下操作,点击Run界面

2.Sage的基本语法介绍

2.1基本命令语

2.1.1 加法

如我们想做8+3,在SageMath键入如下即可

2.1.2 减法

如我们想做6-3,在SageMath键入如下即可

2.1.3 乘法

如我们想做5*3,在SageMath键入如下即可

2.1.4 除法

8 ,在SageMath键入如下即可

如我们想做4

2.1.5乘方

如我们想做3的3次方,在SageMath键入如下即可

2.1.6 开方

如我们想做64的1/2次方,在SageMath键入如下即可

2.2判断语句

2.2.1 if语句的用法

编程用if语句判断奇偶性,并且用print语句输出它的奇数和偶数

注意事项:需要注意格式if语句要跟变量对齐,否则就会报错

2.3循环语句

2.3.1 For循环语句

用for循环语句,计算7的1/3次方到2015的1/3次方步长为1的加和,并输出结果

2.3.2 While循环语句

用while循环语句,计算2015到2025之间所有整数的之和

2.4 画图

2.4.1 plot语句

用plot语句来画出心形线,函数为

2.4.2 show语句

用show语句画出初始值为1到末位值为100之间,步长5的所有半径的圆,如下图

3.SageMath 中的数学函数

3.1高等数学中的Sage 命令 3.1.1函数表示

例1:定义函数及画图。例如我们想定义函数x x x f -=3

)(以及

21)(x x g -=

,并求)0()2(g f +的值,还要画出)(x f 在[-2,2]上的图像,可

如下操作

3.1.2复合函数

例1:如我们定义了函数53)(+=x x f 以及

1)(3

+=x x g ,我们想要计算))(()(x g f x h =,如下操作即可。注意:))(())((x f g x g f ≠,我们这个例子中

8

3))((3+=x x g f ,而

126

225135271)53())((233+++=++=x x x x x f g

3.1.3微分

例1: 对x

e x x x x x x

f +++++=ln arctan 2sin cos )(2求一阶导数

例2:求二元函数

223),(y xy x y x f ++=的偏导数

3.1.4Talor 公式

例1: 求)sin()(x x f =的9阶泰勒多项式

3.1.5积分

例1:对分

)1/(3)(22/5x e x x f x +++=求不定积分

例2:求区间[0,3]的定积分2

2

2

)33()(+-=x x x x f

例3:求函数 xy y x f =),( 的二重积分

例4:求函数x z y x f =),,(

3.1.6求极限

例1:求极限

x x x

)

1

1(

lim+

3.1.7求方程根

例1:计算cosx-x=0 在区间(0,2)内的实根,敲入“find_root(cos(x)-x,0,2)”,#表示注释语句,点击Run界面,得到结果“0.7390851332151607”

3.1.8数论素数分解

例1:计算2015的素数分解,敲入“2015.factor()”,#表示注释语句,点击Run界面,得到结果“5*13*31”

3.2线性方程组中常用命令

3.2.1矩阵运算

例1:计算矩阵

⎪⎪

4

3

2

1

的平方矩阵,敲入“matrix([[1,2],[3,4]])^

(2)”,# #computes the square of a matrix 表示注释语句,点击Run 界面,得到结果 “[ 7 10] [15 22]”

3.2.2逆矩阵

例:计算矩阵

⎪⎪⎭⎫ ⎝⎛4321的逆矩阵,敲入“matrix ([[1,2],[3,4]])^(-1)”,# #computes the inverse of a matrix 表示注释语句,点击Run

界面,得到结果 [ -2 1]

[3/2 -1/2]

3.2.3求解方程组

例1:求解线性方程组Ax=b ,其中⎪

⎪⎭⎫

⎝⎛=⎪⎪⎭⎫

⎝⎛=31,4321b A ,求出的解为:⎪

⎪⎭⎫

⎝⎛=01x ,如下所示:

例2: 求解线性方程组Ax=b ,其中

⎪⎪

⎪⎭⎫ ⎝⎛-=⎪⎪⎪⎭⎫ ⎝⎛--=7514,112811543b A ,求出的解为:⎪⎪

⎪⎭

⎝⎛=103x ,我们也可采用把矩阵A 约化为单位矩阵的方法,约化后的右端

项就是所求解,即

()⎪⎪

⎭⎫ ⎝⎛→→⎪⎪⎪⎭⎫ ⎝⎛---=1100001030017112581114543, b A Sage 的操作如下所示:

例3: 线性方程组无解的情

⎪⎪

⎪⎭⎫ ⎝⎛=⎪⎪⎪⎭⎫ ⎝⎛=24167,987654321b A 况。求解线性方程组Ax=b ,其中 ,

我们仍可采用把矩阵A 约化为单位矩阵的方法,约化后得到()⎪⎪

⎭⎫ ⎝⎛-→→⎪⎪⎪⎭⎫ ⎝⎛=10000210010124987166547321, b A

最后一行对应矛盾方程0=1,所以无解,Sage 的操作如下所示:

请大家自己练习求解如下方程组,求解线性方程组Ax=b ,其中

⎪⎪

⎪⎭

⎫ ⎝⎛=⎪⎪⎪⎭⎫ ⎝⎛=25167,987654321b A

4.Sage中的编程

4.1插值多项式

def Newton_Interpolation(x):

f(x)=1/(1+25*x^2)

myPlot=plot(f(x),(x,-1,1),color='black')

colors=['orange','green','blue','orange']

step=0

for n in [4,8,16,32]:

points=[(((cos((2*i+1)*pi)/(2*n+2))).n(),f((cos((2*i+1)*pi)/(2*n+2))) .n()) for i in [0,1,..,n]]

p(x)=Newton_Interpolation(x)

myPlot+=plot(p(x),(x,-1,1),color=colors[step],legend_label="p"+str(n) +"(x)")

step=step+1

myPlot+=list_plot(points,color='red',size=70)

myPlot.show()

参考文献.

[1] Atkinson.K,Han.W. Elementary Numercial Analysis,3rd edn. Wiley,New York,2003

[2] Epperson,J.F. An Introuction to Numercial Mathematics and Analysis,revised edition.Wiley, Hobokoken,2007.

[3] Sage Cell Server. https://www.sodocs.net/doc/2019377624.html,/.Retrieved , 2014.

[4] Stein W.A. Sage for power users.https://www.sodocs.net/doc/2019377624.html,/book/sagebook.pdf, 2012.

SageMath简易入门手册

SageMath简易入门指导 中国矿业大学(北京)理学院2014级创新小组编组长:孙裕道 组员:孟坤,尹娟,董光林,李欢,王思高 导师: 刘兰冬

前言 一些数学商业软件如Matlab、Maple、Mathematica需要下载到电脑上,而且这些软件在电脑中需要占用很大的内存,单说Matlab 在电脑中就会占用6.5G的内存左右,从官网下载该软件也会要下载半天,非常不方便。 互联网时代,在云端进行操作和存储事物已经成为一种趋势,SageMath软件就是顺应这种趋势的发展。 SageMath是网上免费的开源数学软件,注册一个SageMath的账号在云端就可以进行相关的操作,非常方便,所以我们创新小组决定学习SageMath. SageMath的功能强大,可以求积分,求极限,求导等一些列高等数学的运算,并且可以对一些复杂问题进行SagaMath编程求解。 我们创新小组在刘兰冬老师的指导下,系统地学习SageMath软件的相关知识,使大家对SageMath的这门语言的一些基础语法和用法有了初步的了解,可以对一些数学问题进行编程求解。希望我们小组的这个SageMath简易入门指导可以对这门语言感兴趣的人,想学习这门语言的人有入门指导的帮助。 2014年11月1日 目录

1 SageMath的登陆方法 (4) 1.1进入官网 (4) 1.2 界面登陆 (5) 1.3创建账号 (5) 1.4创建工程 (6) 1.5工程搜索 (7) 1.6新建文件 (8) 1.7新建工作簿 (8) 1.8编辑界面 (9) 1.9进行操作 (9) 2.SageMath的基本语法 (12) 2.1基本命令语 (9) 2.1.1 加法 (10) 2.1.2 减法 (10) 2.1.3 乘法 (10) 2.1.4 除法 (10) 2.1.5 乘方 (10) 2.1.6 开方 (10) 2.2判断语句 (10) 2.2.1 if语句的用法 (10) 2.3循环语句 (11) 2.3.1 For循环语句 (11) 2.3.2 While循环语句 (11) 2.4 画图 (12) 2.4.1 plot语句 (12) 2.4.2 show语句 (12) 3.SageMath中的数学函数 (13) 3.1高等数学中的Sage命令 (13) 3.1.1函数表示 (13) 3.1.2复合函数 (13) 3.1.3微分 (14) 3.1.4Talor公式 (15) 3.1.6求极限 (16) 3.1.8数论素数分解 (16) 3.2线性方程组中常用命令 (16) 3.2.1矩阵运算 (16) 3.2.2逆矩阵 (17) 3.2.3求解方程组 (17) 4.Sage中的编程 (19) 4.1插值多项式 (19) 参考文献 (20)

相关主题