Basics 


sage: 1+1 2 sage: V = QQ^3 sage: V.[tab key] ... V.base_ring V.basis V.coordinates ... 
SageMath uses the basic userinterface principle of "question and answer" found in many
other software systems. You enter an expression and after pressing the Return key in the command line interface or hitting Shift+Return in the notebook interface, SageMath evaluates your expression and
returns the answer. – read more
Tabcompletion helps you enter commands. On the commandline, it also provides history and
reverse lookup search. – read more

Classes of Objects 

sage: R = RealIntervalField(100) sage: R Real Interval Field with 100 bits of precision sage: a = R((1,0)); a 1.? sage: b = sin(a); b 1.? sage: c = a*b; c.diameter() 0.84147098480789650665250232163 
As you can see in the previous example, SageMath knows about mathematical objects embedded into
the Python language. Every quantity  a real number, a polynomial, a matrix, and so on 
belongs to a parent, and this tells SageMath how to perform operations on the quantity.
In the example on the left, R is defined as the class of all intervals of real values with
100 bits of precision. Then an interval is created and stored in a, the function sin is applied and stored in
b. In the end they are multiplied and the diameter is calculated.
sin is a function that "knows" about intervals, as well
as the multiplication does, and diameter() is a method of an
interval instance object.

Interactive Help 

sage: c.diameter? Docstring: If 0 is in "self", then return "absolute_diameter()", otherwise return "relative_diameter()". EXAMPLES: sage: RIF(1, 2).diameter() 0.666666666666667 ... 
The example above shows that there are thousands of functions and methods. SageMath comes with
a builtin help system and you do not have to memorize them all.
Entering a question mark after a method shows the description and additional information
about that method. The example on the left shows the documentation for the diameter method from the previous example.

Symbolic Maths 

sage: f = 1  sin(x)^2 sage: f sin(x)^2 + 1 sage: unicode_art(f) # pretty printing 2 1  sin (x) sage: f.simplify_trig() cos(x)^2 sage: f(x=pi/2) 0 sage: f(x=pi/3) 1/4 sage: integrate(f, x).simplify_trig() 1/2*sin(x)*cos(x) + 1/2*x sage: unicode_art(integrate(f, x).simplify_trig()) x sin(x)⋅cos(x) ─ + ───────────── 2 2 sage: f.differentiate(2).substitute({x: 3/pi}) 2*sin(3/pi)^2  2*cos(3/pi)^2 sage: unicode_art(f.differentiate(2).substitute({x: 3/pi})) 2⎛3⎞ 2⎛3⎞  2⋅cos ⎜─⎟ + 2⋅sin ⎜─⎟ ⎝π⎠ ⎝π⎠ 
Here we define a function $$f$$, simplify it, evaluate it at $$\pi/2$$ and $$\pi/3$$ and
integrate it with simplification. After that, $$f$$ is differentiated two times and $$x$$ is
substituted by $$3/\pi$$.

Numerical Maths 

sage: g = sin(x) + (1 x^2) sage: find_root(g, 0, 2) 1.4096240040025754 sage: var('x y z') (x, y, z) sage: f = (1 + (y+x^2)^2 + (1+z+y^2)^2)^2 sage: f 2 2 2 2 2 ((z + y + 1) + (y + x ) + 1) sage: minimize(f,[1,2,3],algorithm='powell',verbose=1) Optimization terminated successfully. Current function value: 1.000059 Iterations: 2 Function evaluations: 84 (0.000607497243458, 0.00486816565959, 1.00243223164) 
On the left side, a root of the function
$$g(x) = sin(x) + (1x^2)$$ is found numerically.
Below, the function
$$f(x,y,z) = (1 + (y + x^2)^2 + (1+z+y^2)^2)^2$$ is minimized using the "powell" algorithm. 