Sage

设计理念

威廉.斯坦在设计Sage时意识到了有不同的语言（包括有C 、C++、Fortran和Python）编写的大量现成的大型开源数学软件可用。
因此，Sage（用Python和Cython实现的）将所有专用的数学软件集成到一个通用的接口而不是从头开发。用户只需要了解Python。
Sage由学生和专业人士开发。Sage的开发由志愿工作和赠款支持。

性能

二进制包和源代码都可以从Sage页面下载。如果从源代码构建，许多包含的库如Atlas、FLINT和NTL和都会针对该计算机考虑到处理器数量，缓存大小的，是否有硬件支持SSE指令等进行调整和优化。

微积分

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 [x == (-sqrt(b^2 - 4*a*c) - b)/(2*a),
 # x == (sqrt(b^2 - 4*a*c) - b)/(2*a)]f = xˆ2 + 432/xsolve(f.diff(x)==0,x) # returns [x == 3*sqrt(3)*I - 3,
 # x == -3*sqrt(3)*I - 3, x == 6]

微分方程

t = var('t') # define a variable tx = function('x',t) # define x to be a function of that variableDE = lambda y: diff(y,t) + y - 1desolve(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 numpyC = 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 millionE = EllipticCurve('389a') # construct an elliptic curve from its Cremona labelP, Q = E.gens()7*P + Q # returns (2869/676 : -171989/17576 : 1)