Introduction
A nice diary of stuff I work at for school. Ah, the nostalgia that shall fall over me one day looking back on the bewildering idiot I used to be.
Most things also contain some documentation (most is in French), but here is a small description for all the folders.
Latex Styles
Folder: latexstyles.
You will need to install these custom packages if you want to compile any of
the documents. To install just execute the install.sh
script and it should
work.
Description: This contains three style files:
- texformat: a very simple file that includes some common packages, sets a different style for hyperlinks and removes the indentation.
- texmath: many, many math shortcuts and settings.
- texthm: all the theorem environments that you could need, you have to tell it what language they should be in: French or English.
Lecture Notes
Folder: lecture-notes.
Language: LaTeX.
Description: Lecture notes, cheatsheats and some exams for a couple of courses where digital data wasn't available.
Modelling Climate Risks
Folder: climate-statistics.
Language: R.
Data: Boromo Station Data.
Description: We have some local variables (temperature and precipitation) that we want to approximate given some global covariables (humidity and wind speed and direction). For the approximation we will play with linear regression and neural networks. Secondly, we will compare the best model with the data from the RCP scenarios that are part of the CMIP5 model.
C++
Folder: cplusplus.
Language: C++.
Description: Some playing around with classes and inheritance in C++. The main idea was to write an integrator class for random function (using the Simpson method). The functions are of class Function and we have implemented some basic stuff (polynomials, etc) as well as a composed function.
Cryptography
Folder: cryptography.
Language: C.
Description: Implement a simple protocol that involves: RSA for transmitting keys and stuff, CBC with a simple Feistel scheme for the symmetric part and RSA signatures for authentication.
English
Folder: english.
Language English.
Description: Various presentations and essays written for my English classes.
Finite Element Method
Folder: fem.
Language: Matlab, C.
Description: Solving the equation
Finance
Folder: finance.
Language: Matlab.
Description: Various methods for calculation call prices and premium stuff. No idea, to be honest.
Finite Volume Method
Folder: fvm.
Language: Matlab, C.
Description: This folder contains 3 bigger projects:
- the first one is a C implementation that solves the
$-\Delta u + cu = f$ equation in 2D. Some of the things contained herein: a sparse matrix implementation (that is very closely related to the mesh structure, unfortunately), a conjugate gradient implementation and a "a posteriori" error estimation method with adaptive mesh refinement. - the second project is a study of different time schemes and space discretisations in 1D in Matlab. For comparison, it also contains some finite difference methods. For the fine volume part, there is an implementation of some ENO and VENO (Simple and Variable Essentially Non-Oscillatory) schemes.
- the third project is a 2D implementation of the St. Venant equations and the Euler equations (with a Yee vortex as an initial solution) using finite volumes.
Linear Programming
Folder: linear-programming.
Language: Python.
Description: A very basic implementation of the Simplex algorithm.
Mechanics
Elasticity
Folder: mechanics/elasticity.
Language: FreeFem.
Description: Solving some simple example problems in the case of linear elasticity. Unfortunately, there is no written explanation of each example.
Plasticity
Folder: mechanics/plasticity.
Language: FreeFem.
Description: Solving some simple example problems in the case of plasticity. Unfortunately, there is no written explanation of each example.
Numerical Methods
Folder: numerical-methods.
Language: Matlab.
Description: This contains some very basic numerical methods for solving
linear systems and ODEs, numerical integration and Lagrange interpolation. It
also contains an example of solving
Optimal Control
Folder: optimal-control.
Language: Matlab.
Description: Solve the three body problem using an additional force that will provide the control over the third body, a satellite. The goal of the project is to arrive in the 3rd Lagrange Point in minimal time.
Parallel Programming
Folder: parallel-programming.
Language: C, C++.
Description: Using MPI and OpenMP to parallelize different algorithms: the conjugate gradient (used to solve a simple heat equation), LU factorization, block matrix product and, finally, the Mandelbrot and Buddhabrot fractals.
Porous Mediums
Folder: porous.
Language: Scilab.
Description: Solve the very complicated equations that describe a porous environment. The practical example used in this project is extracting oil from a reservoir, that also contains clay, by injecting water.
Probabilistic / Statistical Methods
Folder: probabilities
Language: Matlab.
Description: Implementations of various Monte Carlo methods, the accept-reject method and random number generators.
Quantum Mechanics
Folder: quantum.
Language: Matlab.
Description: Solve Schrodinger's equation for a certain potential.
Domain Decomposition
Folder: schwarz.
Language: Python, Matlab.
Description: This contains two bigger projects:
- Implementation of the Schwarz domain decomposition method in 1D, to solve
the
$\Delta u = 0$ equation. To fully utilize the method, there is also a parallel implementation using Python and mpi4py. - Implementation of different domain decomposition methods in 1D and 2D, no parallelization.
SVD Method.
Folder: svd.
Language: Python.
Description: Construct a H-matrix (Hierarchical Matrix) by using clustering and SVD algorithms. This projects has 3 different parts:
- first, we have an implementation of splitting a set of points based on the principal direction given by the coordinates.
- second, we look at the SVD method and the ACA algorithm, both of which provide an approximation of a matrix A, that has rank k. We study the performance and precision of each method.
- finally, by separating our points into clusters and decomposing the necessary ones with the ACA algorithm, we construct a H-matrix.
Uncertainty Methods
Folder: uncertainties.
Language: Python, Scilab.
Description: This folder contains 2 projects:
- the first project is an OpenTURNS project that studies the cost of maintaining a dam (with a given formula for the cost), given some random variables that represent the height of the dam, the friction between the water and the soil, etc. We have tried to approximate the average cost per year, as well as the probability of going over a certain value with various methods: Monte Carlo, Importance Sampling and a Taylor approximation (Quadratic Cumul).
- the second project is a simple introduction to the NISP module for Scilab that deals with uncertainties using Sobol indices and chaos polynomials.