Nils Malmberg
Français
Français Français (FR)
English English (EN)

Quelques projets

mdisd : une librairie C++ pour l'interpolation multi-dimensionnelle de données.
(utilisable également en Python)

Lors de mon cours intitulé "Advanced Programming for Scientific Computing", et dispensé à Politecnico di Milano, j'ai eu l'occasion de développé une librairie entièrement codée en C++ ayant pour but d’interpoler des jeux de données. Le point de départ est que nous avons un système dépendant de plusieurs variables et retournant une valeur. Par exemple, considérons une usine fabriquant des pâtes et qui dépend de plusieurs paramètres : nombre de machines de fabrication disponibles, état des machines et nombre d’employés présents. Supposons que ces données soient suffisantes ici pour nous permettre de déduire le nombre de kilogrammes de pâtes produites à la fin de la journée (en supposant les stocks de chaque ingrédient illimités). Le directeur de l’usine souhaite savoir comment va évoluer la production s’il ajoute une machine sans augmenter le nombre d’employés dans le but de produire plus à moindre coût. Afin d’estimer la nouvelle quantité de pâtes produites à la fin de la journée, une méthode peut être la suivante : tout d’abord, sur plusieurs jours, semaines, mois, années, des mesures seront effectuées. Pour chacune des mesures faites à la fin de la journée, on connaîtra la valeur de chacun des paramètres définis précédemment et la quantité de pâtes produite associée. À partir de ces données, on peut utiliser une méthode d’interpolation afin de voir quelle sera une estimation de la quantité de pâtes produites en lors de l'ajout d'une machine (et pour un état des machines et un nombre d’employés présents donnés).

Le but de la librairie que j’ai développée est donc de permettre ce type d’interpolations en utilisant des méthodes comme la méthode des "Radial Basis Functions" ou des "Ordinary Least Squares". Cette librairie permet d’interpoler à la fois la valeur associée à plusieurs configurations et permet également de récupérer des poids permettant de remonter à une fonction décrivant le système. De plus, les bindings pour utiliser cette librairie dans un projet Python ont été écrits et sont fonctionnels.

Pour plus d’informations, vous pouvez vous rendre sur le Github de la librairie et consulter le rapport que j’ai rédigé dans le répertoire doc/.

Github de la librairie mdisd



Image Braket

Example d'interpolation d'un fonction f à une variable dont on connait les valeurs en 3 points.
f(1) = 1 ; f(2) = 0.2 ; f(3) = 0.1
RBF = Radial Basis Function ; NRFB = Normalized RBF ;
RBFP = RBF augmented with Polynomials ; OLS = Ordinary Least Squares

Image Website

Le site nils-malmberg.fr

Pendant ma première année d'école d'ingénieur, j'ai commencé à coder la première version de mon site web juste pour le plaisir. La première version était assez basique et pas très jolie (beaucoup de HTML, un peu de php, pas beaucoup de CSS et pas de JavaScript).

Puis, pendant mon année à Milan, j'ai décidé de me lancer un défi : recoder tout mon site en un week-end en partant de 0. Le premier jour, j'ai utilisé un constructeur de site fourni par Hostinger pour créer une maquette. Ensuite, j'ai appris les bases en utilisant OpenClassrom. Le deuxième jour, j'ai recodé tout le site.

Prochaine étape pour le site : utiliser les media queries afin d'avoir un site présentable sur téléphone et tablettes.

Projet Braket : logiciel de calculs quantiques.

Le projet Braket est un projet réalisé lors de ma première année à Grenoble INP - Phelma. Nous avons du, avec trois autres camarades, développer un logiciel avec interface graphique. Les langages utilisés sont le C et le C++ et la librairie graphique est FLTK.

Le projet BraKet offre, via une interface ergonomique et simple à prendre en main, la possibilité de simuler les différentes probabilités associé à chaque composantes d'un état quantique ayant subit une ou plusieurs transformations par le passage à travers une ou plusieurs portes quantiques.

Télécharger le projet
Image Braket
Image Searev

TIPE : Modélisation d'un système d'exploitation des énergies houlomotrices (Searev).

Lors de mes deux années de classe préparatoire aux grandes écoles j'ai du travailler sur un projet appelé TIPE (travail d'initiative personnelle encadré). J'ai donc du choisir un sujet en lien avec le thème de l'année (Enjeux Sociétaux), en dégager une problématique et essayer de la résoudre.

Le Searev, est un projet intéressant puisqu'il permet de convertir l'énergie de la houle en énergie électrique à l'aide d'une bouée et d'une masse pendulaire.

J'ai donc lors de ce TIPE décidé de modéliser numériquement le Searev afin d'étudier son efficacité et construit un prototype se déclinant en deux versions.

Télécharger le projet

Some projects

mdisd : a C++ library for multidimensional interpolation of scattered data.
(also usable in Python)

During a course titled "Advanced Programming for Scientific Computing," taught at Politecnico di Milano, I had the opportunity to develop a library entirely coded in C++ with the purpose of interpolating datasets. The starting point is that we have a system dependent on multiple variables and returning a value. For example, consider a factory producing pasta, which depends on several parameters: the number of available manufacturing machines, the state of the machines, and the number of employees present. Suppose that this data is sufficient here to allow us to deduce the number of kilograms of pasta produced at the end of the day (assuming unlimited stocks of each ingredient). The factory manager wants to know how production will evolve if they add a machine without increasing the number of employees in order to produce more at a lower cost. To estimate the new quantity of pasta produced at the end of the day, one method could be as follows: first, over several days, weeks, months, years, measurements will be taken. For each of the measurements taken at the end of the day, we will know the value of each of the parameters defined previously and the quantity of pasta produced associated with it. From this data, we can use an interpolation method to see what the estimated quantity of pasta produced will be when adding a machine (and for a given state of the machines and number of employees present).

The purpose of the library I developed is therefore to enable this type of interpolation using methods such as "Radial Basis Functions" or "Ordinary Least Squares." This library allows for interpolation of both the value associated with multiple configurations and also allows for the recovery of weights to reconstruct a function describing the system. Additionally, bindings to use this library in a Python project have been written and are functional.

For more information, you can visit the library's GitHub and consult the report I wrote in the doc/ directory.

GitHub of the mdisd library



Image Braket

Interpolation example of a single-variable function f for which the values at 3 points are known.
f(1) = 1 ; f(2) = 0.2 ; f(3) = 0.1
RBF = Radial Basis Function ; NRFB = Normalized RBF ;
RBFP = RBF augmented with Polynomials ; OLS = Ordinary Least Squares

Image Website

The nils-malmberg.fr website.

During my first year at engineering school I started coding the first version of my website just for fun. The first version was pretty basic and not very pretty (a lot of HTML, a little bit of php, not much CSS and no JavaScript).

Then, during my year in Milan, I decided to set myself a challenge: recode my entire site in a weekend from nothing. On the first day I used a site builder provided by Hostinger to create a mock-up. Then I learnt the basics using OpenClassrom. Then on the second day I recoded the whole site.

The next step for the site is to use media queries so that the site can be presented on phones and tablets.

Braket Project: quantum computing software.

The Braket project is a project realized during my first year at Grenoble INP - Phelma. With three other students, we had to develop a software with a graphical interface. The languages used are C and C++ and we used the graphic library FLTK.

The BraKet project offers, via an ergonomic and easy-to-use interface, the possibility to simulate the different probabilities associated to each component of a quantum state having undergone one or more transformations by passing through one or more quantum gates.

Download the project
Image Braket
Image Searev

TIPE : Modeling of a wave energy exploitation system (Searev).

During my two-year university intensive course, I had to work on a project called TIPE (work of personal initiative). I had to choose a subject in connection with the theme of the year (Social Issues), to find a problematic and to try to solve it.

The Searev is an interesting project since it converts wave energy into electrical energy using a buoy and a pendulum mass.

During this project, I decided to numerically model the Searev in order to study its efficiency and built a prototype in two versions.

Download the project