## Learning objectives

The objective of the course is to familiarize with implementation of numerical methods for scientific calculus using some programming languages (Fortran/C++, Matlab, Phython).

At the end of the course the student should be able to understand and develop some proposed numerical algorithms, proving his ability with the acquired notions in understanding and solving some problems in classical physics.

## Prerequisites

Basic notions of mathematical calculus and of classical physics.

## Course unit content

The basic contents of the course concern the elements of numerical analysis aimed to solve elementary problems in classical physics in both experimental and theoretical fields, such as data analysis, numerical simulation of physics experiments, comparison between numerical calculus and analytic solution of elementary problems in classical physics in order to test numerical accuracy, calculus of planetary orbits, stability of hamiltonian systems.

## Full programme

Elements of Programming in Fortran\C++, Matlab e Python..

Numerical algoritms: root finding, solution of linear algebraic equations, polynomial interpolation, least squares problem, formulas of numerical integration, random numbers, Monte Carlo method, integration of ordinary differential equations, introduction on partial differential equations.

Numerical codes: data analyses and least squares method, numerical calculus in one or more dimensions and comparison between different algorithms, Monte Carlo simulation of a physics experiment, solution of ordinary differential equations and comparison between different algorithms in the case of easy problems of classical physics (simple pendulum with friction variable length pendulum, gravitational two -body problem, three-body problem (Sun,Earth,Moon), n-body problem; stability of hamiltonian systems, solution of heat equation in some simple cases.

## Bibliography

The teacher distributes his lecture notes.

## Teaching methods

Both lectures and computer exsercises in laboratory in order to develop numerical codes in Matlab/Fortran or in other programming languages learned in previous courses.

## Assessment methods and criteria

Weekly evalutions are planned during laboratory sessions. They consist in discussions on the numerical algorithms introduced and developed by the teacher. The student should be able to develop by her/himself simple numerical codes proposed by the teacher.

Final evaluation relies on developing and discussing numerical algorithms introduced during the course; moreover the student is required to develop an original code which solve a physics problem discussed with the teacher during laboratory activities.

Final evalution is sufficient if the student is able to read and understand a numerical code and to interpret its numerical results.

## Other information

- - -