Sage是一个覆盖许多数学功能的应用软件,包括代数、组合数学、图论、计算数学、数论、微积分和统计。
SAGE的第一个版本在GNU许可证下发布于2005年2月24日,最初的目标是创造一个“Maxima、Maple、Mathematica和MATLAB的开源替代品”。Sage的主导开发人员威廉·斯坦因是华盛顿大学的数学家。
Sage通常被称为sagemath,因为在英语中是一个常见词。
Sage的功能包括
虽然不是Sage直接提供的功能,但Sage可以从Mathematica内部调用。Mathematica的一个记事本可用于此。
威廉.斯坦在设计Sage时意识到了有不同的语言(包括有C 、C++、Fortran和Python)编写的大量现成的大型开源数学软件可用。
因此,Sage(用Python和Cython实现的)将所有专用的数学软件集成到一个通用的接口而不是从头开发。用户只需要了解Python。
Sage由学生和专业人士开发。Sage的开发由志愿工作和赠款支持。
二进制包和源代码都可以从Sage页面下载。如果从源代码构建,许多包含的库如Atlas、FLINT和NTL和都会针对该计算机考虑到处理器数量,缓存大小的,是否有硬件支持SSE指令等进行调整和优化。
Sage在GNU通用公共许可证2+下自由软件条款下发布 。Sage可通过多种方式获得:
如上所述,SAGE的理念是利用现有的任何开放源码库。因此,借用了许多项目。
x,a,b,c = var('x,a,b,c')log(sqrt(a)).simplify_log() # returns log(a)/2log(a/b).simplify_log() # returns log(a) - log(b)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)(a+b)ˆ5 # returns (b + a)ˆ5expand((a+b)ˆ5) # returns bˆ5 + 5*a*bˆ4 + 10*aˆ2*bˆ3 + # 10*aˆ3*bˆ2 + 5*aˆ4*b + aˆ5limit((xˆ2+1)/(2+x+3*xˆ2), x=infinity) # returns 1/3limit(sin(x)/x, x=0) # returns 1diff(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^3solve(a*x^2 + b*x + c, x) # returns f = xˆ2 + 432/xsolve(f.diff(x)==0,x) # returns