Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download
Views: 1428
Kernel: SageMath (stable)

%html

Tutorial: Using the Sage notebook, navigating the help system, first exercises

This worksheet is based on William Stein's JPL09__intro_to_sage.sws worksheet and the Sage days 20.5_demo worksheet and aims to be an interactive introduction to Sage through exercises.

You will learn how to use the notebook and call the help.

%html

Entering, Editing and Evaluating Input

To evaluate code in the Sage Notebook, type the code into an input cell and press shift-enter or click the evaluate link. Try it now with a simple expression (e.g., 2+32 + 3). The first time you evaluate a cell takes longer than subsequent times since a new Sage process is started:

2 + 3

%html

Create new input cells by clicking blue line that appears between cells when you move your mouse around. Try it now:

1 + 1

%html

You can go back and edit any cell by clicking in it (or using the keyboard to move up or down). Go back and change your 2+2 above to 3 + 3 and re-evaluate it.

%html

You can also edit this text right here by double clicking on it. You will be able to edit the html code directly. You can even put embedded mathematics like this sin(x)y3\sin(x) - y^3 just like with LaTeX.

%html

Help systems

There are various ways of getting help in Sage.

  • navigate through the documentation (there is a link Help at the top right of the worksheet),
  • tab completion,
  • contextual help.

We detail in what follows the two last methods through examples.

Completion and contextual documentation

Start typing something and press the tab key. The interface tries to complete it with a command name. If there is more than one completion, then they are all presented to you. Remember that Sage is case sensitive, e.g. it differentiates lower case from lower case. Hence the tab completion of klein won't show you the KleinFourGroup command that build the group Z/2×Z/2\ZZ/2 \times \ZZ/2 as a permutation group. Try it on the next cells

klein
Klein

%html

To see documentation and examples for a command, type a question mark ? at the end of the command name and press the tab key as

KleinFourGroup?<tab>
# edit here

%html

Exercise A: What is the largest prime factor of 600851475143600851475143?

factor?<tab>
# edit here

%html

In the above exercise we do not store any mathematical data for later use. This can be done in Sage with the = symbol as in:

a = 3 b = 2 print a+b

%html

This can be understood as Sage evaluating the expression to the right of the = sign and creating the appropriate object, and then associating that object with a label, given by the right hand side. Multiple assignments can be done simultaneously:

a,b = 2,3 print a,b

%html

This allows us to swap variables directly:

a,b = 2,3 a,b = b,a print a,b

%html

Note that when we use the word variable in the computer-science sense we mean "a label associated to some data stored by Sage". Once an object is created, some methods apply to it. This means functions but instead of writing f(my_object) you write my_object.f().:

p = 17 p.is_prime()

%html

To know all methods of an object you can still use tab-completion. Write the name of the object followed by a dot and then press tab.:


a.<tab>
# edit here
# edit here

%html

Exercise B: Create the Permutation 51324 and assign it to the variable p.

Permutation?<TAB>
# edit here

%html

What is the inverse of p ?

# edit here

%html

Does p have the pattern 123 ? What about 1234 ? And 312 ? (even if you don't know what a pattern is, you should be able to find a command that does this).

# edit here

%html

Some linear algebra

Exercise C: Use the matrix command to create the following matrix.

\[
    M = \left(\begin{array}{rrrr} 
    10 & 4 & 1 & 1 \\
    4 & 6 & 5 & 1 \\
    1 & 5 & 6 & 4 \\
    1 & 1 & 4 & 10
    \end{array} \right)
\]

matrix?<tab>

# edit here

%html

Then using methods of the matrix:

  1. Find the determinant of the matrix.
  2. Find the echelon form of the matrix.
  3. Find the eigenvalues of the matrix.
  4. Find the kernel of the matrix.
  5. Find the LLL decomposition of the matrix.
# edit here
# edit here

%html

Now you know how to access the different methods of matrices:

  1. Create the vector v=(1,1,1,1)v = (1,-1,-1,1).
  2. Compute the products: MvM*v and vMv*M.

vector?<tab>

# edit here

%html

Note

Vectors in Sage are row vectors. A method such as eigenspaces might not return what you expect, so it is best to specify eigenspaces_left or eigenspaces_right instead. Same thing for kernel (left_kernel or right_kernel), and so on.

Some Plotting

The plot command allows you to draw plots of functions. Recall that you can access the documentation by pressing the tab key after writing plot? in a cell.:

plot?<tab>

# edit here

%html

Here is a simple example:

var('x') # make sure x is a symbolic variable plot(sin(x^2), (x,0,10))

%html

Here is a more complicated plot. Try to change every single input to the plot command in some way, evaluating to see what happens:

P = plot(sin(x^2), (x,-2,2), rgbcolor=(0.8,0,0.2), thickness=3, linestyle='--', fill='axis') show(P, gridlines=True)

%html

Above we used the show command to show a plot after it was created. You can also use P.show instead:

P.show(gridlines=True)

%html

Try putting the cursor right after P.show( and pressing tab to get a list of the options for how you can change the values of the given inputs.:

P.show(

%html

Plotting multiple functions at once is as easy as adding them together:

P1 = plot(sin(x), (x,0,2*pi)) P2 = plot(cos(x), (x,0,2*pi), rgbcolor='red') P1 + P2

%html

Symbolic Expressions

Here is an example of a symbolic function:

f(x) = x^4 - 8*x^2 - 3*x + 2 f(x)
f(-3)

%html

This is an example of a function in the mathematical variable xx. When Sage starts, it defines the symbol xx to be a mathematical variable. If you want to use other symbols for variables, you must define them first.:

x^2
u + v
var('u v') u + v

%html

It is possible, though, to define symbolic functions without first defining the variables.:

f(w) = w^2 f(3)

%html

Exercise D: Define the symbolic function f(x)=xsin(x2)f(x) = x \sin(x^2). Plot ff on the domain [3,3][-3,3] and colour it red. Use the find_root method to numerically approximate the root of ff on the interval [1,2][1,2]:

# edit here

%html

Compute the tangent line to ff at x=1x=1:

# edit here

%html

Plot ff and the tangent line to ff at x=1x=1 in one image:

# edit here

%html

Exercise E (Advanced): Solve the following equation for yy

\[ y = 1 + x y^2 \]

There are two solutions, take the one for which limx0y(x)=1\lim_{x\to0}y(x) = 1. (Don't forget to create the variables xx and yy!).:

# edit here

%html

Expand yy as a truncated Taylor series around 00 and containing n=10n=10 terms.

# edit here

%html

Do you recognize the coefficients of the Taylor series expansion? You might want to use the On-Line Encyclopedia of Integer Sequences, or better yet, Sage's command sloane_find which queries the encyclopedia:


sloane_find?<tab>
# edit here