# LABORATORY FOR COMPUTATIONAL PHYSICS

## Learning outcomes of the course unit

The objective of the course is to familiarize with implementation of numerical methods for scientific calculus using some programming languages such as Fortran, Matlab and Python.

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 contents summary

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.

## Course contents

Elements of Programming in Fortran, Matlab and 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.

## Recommended readings

The teacher distributes his lecture notes.

## Teaching methods

Both lectures and computer exsercises in laboratory in order to develop numerical codes in Matlab, Fortran and Python.

## Assessment methods and criteria

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 weekly discussed with the teacher during laboratory activities.