Welcome to the **tutorial on numerical computation** for undergrads
in Physics, Maths and Engineering.

The aim of this tutorial is to learn to *do mathematics with the
computer*. In real life applications of mathematics, most of the
time the calculations are too hard to be completed with pencil and
paper. Thus, we will learn how to use a computer to help us.

In order to take the tutorial you will need to have access to a
computer with `GNU-octave`

installed. The first node of the
tutorial provides some help with the installation. Luckily, it
is *free software* It runs on Linux, MacOS, Windows… it even
runs on Android!

Follow the tutorial with the octave window open: learning to
program without access to the software is a frustrating
experience. Whenever you have questions, you may ask me,
either by e-mail or personally.

This webpage offers an online octave window… try it!

In this first unit we will discuss our tools. Of course, the really
important part is the *logic* behind numerical computation, but
nonetheless the calculations can not be done on our heads!

Plotting mathematical objects is both useful and beautiful. Today we
will just scratch the surface of the vast area of *mathematical
computer graphics*, but we hope to give you a hint of what it looks
like.

Water is flowing from a tap at a rate of $10 \mathrm{l/s}$. After 5 seconds,
how much water has flown? You just multiply: $10 \times 5 = 50 \mathrm{l}$.
But, what if we are told that the flow rate is changing
*continuously* with time? Let us say that for time t the
flow rate $r(t)$ is given by

Our purpose in this section will be to solve equations numerically,
using Newton’s method

In this section we are going to cover some linear algebra
stuff. `Octave`

is especially well designed for those purposes.

This is most difficult part of the tutorial… So, please, pay a lot
of attention and do all the exercises as you read.

Can randomness help us solve a problem? Yes, and in surprising
ways. Of course, it can help us solve problems related to
probability. For example:

In this last part of the tutorial, we are going to discuss more about
plotting in octave. *This part is optional. But when you see the
pictures, I hope you’ll feel compelled to try it :)*

In this part we review the basic functions in Octave in order to
obtain the eigenvectors and eigenvalues of matrices, i.e. to
*diagonalize* matrices.