Loading AI tools
来自维基百科,自由的百科全书
SageMath(曾叫做Sage或SAGE,为“System for Algebra and Geometry Experimentation”的首字母缩写[2]),是一个覆盖许多数学功能的应用软件,包括代数、组合数学、图论、计算数学、数论、微积分和统计。
SAGE的第一个版本在GNU许可证下发布于2005年2月24日,最初的目标是创造一个“Magma、Maple、Mathematica和MATLAB的开源替代品”。Sage的主导开发人员威廉·斯坦因是华盛顿大学的数学家。
Sage的功能包括[3]
虽然不是Sage直接提供的功能,但Sage可以从Mathematica内部调用。Mathematica的一个记事本可用于此。
威廉.斯坦在设计Sage时意识到了有不同的语言(包括有C 、C++、Fortran和Python)编写的大量现成的大型开源数学软件可用。
因此,Sage(用Python和Cython实现的)将所有专用的数学软件集成到一个通用的接口而不是从头开发。用户只需要了解Python。
Sage由学生和专业人士开发。Sage的开发由志愿工作和赠款支持。 [4]
二进制包和原始码都可以从Sage页面下载。如果从原始码构建,许多包含的库如Atlas、FLINT和NTL和都会针对该电脑考虑到处理器数量,缓存大小的,是否有硬件支持SSE指令等进行调整和优化。
Sage在GNU通用公共许可证2+下自由软件条款下发布 。Sage可通过多种方式获得:
如上所述,SAGE的理念是利用现有的任何开放原始码库。因此,借用了许多项目。
代数 | GAP ,Maxima ,Singular |
代数几何 | Singular |
任意精度计算 | MPIR,MPFR,MPFI,NTL |
算术几何 | PARI/GP, NTL,mwrank,ecm |
微积分 | Maxima,SymPy,GiNaC |
组合数学 | Symmetrica,Sage-Combinat |
线性代数 | ATLAS,BLAS, LAPACK,NumPy,LinBox,IML,GSL |
图论 | NetworkX |
群论 | GAP |
数值计算 | GSL,SciPy,NumPy,ATLAS |
数论 | PARI/GP,FLINT,NTL |
统计计算 | R, SciPy |
命令行 | IPython |
数据库 | ZODB, Python Pickles,SQLite |
图形界面 | Sage Notebook, jsmath |
图像 | Matplotlib,Tachyon3d,GD, Jmol |
交互式编程语言 | Python |
网络 | Twisted |
x,a,b,c = var('x,a,b,c')
log(sqrt(a)).simplify_log() # returns log(a)/2
sin(a+b).simplify_trig() # returns cos(a)*sin(b) + sin(a)*cos(b)
cos(a+b).simplify_trig() # returns cos(a)*cos(b) - sin(a)*sin(b)
limit((xˆ2+1)/(2+x+3*xˆ2), x=infinity) # returns 1/3
limit(sin(x)/x, x=0) # returns 1
diff(acos(x),x) # returns -1/sqrt(1 - xˆ2)
f = exp(x)*log(x)
f.diff(x,3) # returns e^x*log(x) + 3*e^x/x - 3*e^x/x^2 + 2*e^x/x^3
solve(a*x^2 + b*x + c, x) # returns [x == (-sqrt(b^2 - 4*a*c) - b)/(2*a),
# x == (sqrt(b^2 - 4*a*c) - b)/(2*a)]
t = var('t') # define a variable t
x = function('x',t) # define x to be a function of that variable
DE = lambda y: diff(y,t) + y - 1
desolve(DE(x(t)), [x,t]) # returns '%e^-t*(%e^t+%c)'
A = Matrix([[1,2,3],[3,2,1],[1,1,1]])
y = vector([0,-4,-1])
A.solve_right(y) # returns (-2, 1, 0)
A.eigenvalues() # returns [5, 0, -1]
B = Matrix([[1,2,3],[3,2,1],[1,2,1]])
B.inverse() # returns [ 0 1/2 -1/2]
# [-1/4 -1/4 1]
# [ 1/2 0 -1/2]
# Call numpy for the Moore-Penrose pseudo-inverse,
# since Sage does not support that yet.
import numpy
C = Matrix([[1 , 1], [2 , 2]])
matrix(numpy.linalg.pinv(C.numpy())) # returns [0.1 0.2]
# [0.1 0.2]
prime_pi(1000000) # returns 78498, the number of primes less than one million
E = EllipticCurve('389a') # construct an elliptic curve from its Cremona label
P, Q = E.gens()
7*P + Q # returns (2869/676 : -171989/17576 : 1)
只列出了主要发布版本。Sage采用的“早发布,常发布”的理念,每两至三个星期发布一次。[5]
版本 | 发布日期 | 说明 |
---|---|---|
0.1 | 2005年1月 | 包括 Pari,但不包含GAP和 Singular |
0.2 - 0.4 | 2005年5-7月 | Cremona的数据库,多元多项式,大型有限域和更多的文档 |
0.5 - 0.7 | 2005年8-9月 | 向量空间,环,模块化符号和Windows使用 |
0.8 | 2005年10月 | 完整发布的GAP,和Singular |
0.9 | 2005年11月 | 添加了Maxima和clisp |
1.0 | 2006年2月 | |
2.0 | 2007年1月 | |
3.0 | 2008年4月 | |
4.0 | 2009年5月 | |
5.0 | 2012年5月 | 5.0里程碑(页面存档备份,存于互联网档案馆) |
6.0 | 2013年12月 |
2007年,Sage赢得自由软件的国际竞争中科学软件部分的Les Trophées du Libre首奖。 [6]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.