teaching:methcalchim:start

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
teaching:methcalchim:start [2017/11/06 22:01] villersdteaching:methcalchim:start [2023/04/12 10:08] (Version actuelle) – [Classical numerical methods] villersd
Ligne 1: Ligne 1:
 ====== Calculation methods applied to chemistry ====== ====== Calculation methods applied to chemistry ======
-(Méthodes de calcul appliqué à la chimie) 
- 
-  * Learning outcomes teaching unit (UE): 
-    * Apply standard numerical methods or existing software to solve numerical problems related to scientific research activities 
-    * Be active in the search for existing numerical methods adapted to problems encountered by chemists 
-  * Content of the UE: 
-    * widespread methods : linear systems, numerical integration, root findings 
-    * Ordinary differential equations (numerical solutions, kinetic applications,...) 
-    * Partial differential equations (finite differences, diffusion problems) 
-    * Nonlinear systems of equations (Newton-Raphson method) 
-    * Eigenvalues eignevectors problems ​​(applications to relaxation and population problems) 
-    * Approximation by linear and non-linear least squares methods (maximum likelihood, application to deconvolution) 
-    * Chebyshev approximation 
-    * Molecular modeling and visualization 
-    * Minimization and conformational problems 
-  * Prerequisite skills 
-    * Basic knowledge of a programming language 
-    * Basics of Mathematics 
-  * Exercises and applications: codes written in or mainly written in Python, with the general libraries matplotlib, numpy, scipy, pandas as well as other specialized libraries, especially in chemistry 
-  * Types of evaluations: Oral examination based on an in-depth study on one of the chapters of the course or an additional theme 
- 
-  * Acquis d'apprentissage UE : 
-    * Appliquer des méthodes numériques standards ou des logiciels existant pour résoudre des problèmes fondamentaux ou annexes, liés à des activités de recherche scientifique 
-    * Être actif dans la recherche de méthodes de résolution numérique existantes et adaptées à des problèmes auxquels les chimistes sont confrontés 
-  * Contenu de l'UE : 
-    * Équations différentielles ordinaires (résolutions numériques et applications cinétiques) 
-    * Équations aux dérivées partielles (différences finies, problèmes de diffusion) 
-    * Systèmes d’équations non linéaires (méthode de Newton-Raphson) 
-    * Problèmes aux valeurs propres (applications à des problèmes de relaxation et de population) 
-    * Approximation par moindre carrés linéaires et non-linéaires (application à la déconvolution) 
-    * Approximation de Tchébyshev 
-    * Modélisation et visualisation de molécules 
-    * Minimisation et problèmes conformationnels 
-  * Compétences préalables 
-    * Connaissance de base d'un langage de programmation 
-    * Bases des mathématiques 
-  * Exercices et applications : codes écrits ou à écrire principalement en Python, avec les librairies générales matplotlib, numpy et scipy, ainsi que d'autres librairies spécialisées, notamment en chimie 
-  * Types d'évaluations : Examen oral sur base d'un travail approfondi sur un des chapitres du cours ou un thème additionnel 
- 
----- 
 ===== Synopsis (english) ===== ===== Synopsis (english) =====
 ====  Mathematical prerequisites==== ====  Mathematical prerequisites====
Ligne 45: Ligne 5:
 ==== Programming bases and tools ==== ==== Programming bases and tools ====
   * Python programming language   * Python programming language
 +    * [[http://www.learnpython.org/|LearnPython.org]] interactive tutorial with code execution
 +    * [[https://www.datacamp.com/courses/intro-to-python-for-data-science|DataCamp free course "Intro to Python for Data Science"]]
 +    * [[https://www.sololearn.com/Course/Python/|Python 3 Tutorial]], interactive, with [[https://code.sololearn.com/#py|code use in web browser]]
 +    * MOOCs (massive open online courses) :
 +      * [[https://www.coursera.org/course/interactivepython|An Introduction to Interactive Programming in Python (Beginners)]] (Coursera)
 +      * [[https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-9|Introduction to Computer Science and Programming Using Python]] (edX)
   * [[wp>Anaconda_(Python_distribution)|Anaconda Python distribution]] (64 bits, with Python 3.x) : [[https://www.anaconda.com/download/]]   * [[wp>Anaconda_(Python_distribution)|Anaconda Python distribution]] (64 bits, with Python 3.x) : [[https://www.anaconda.com/download/]]
     * Includes these tools :     * Includes these tools :
Ligne 60: Ligne 26:
     * [[https://www.datacamp.com/community/blog/jupyter-notebook-cheat-sheet|Jupyter DataCamp Cheat Sheet]]     * [[https://www.datacamp.com/community/blog/jupyter-notebook-cheat-sheet|Jupyter DataCamp Cheat Sheet]]
  
-<note tip>The Microsoft Azure Notebooks environment can be used to execute sample codes, using a professionnal,  personnal or student login/account (i.e. student login from UMONS). The following public sample notebooks are then available to test Jupyter text and coding features : [[https://notebooks.azure.com/linusable/libraries/samples-public]]</note>+<note tip>The Microsoft Azure Notebooks environment can be used to execute sample codes, using a professionnal,  personnal or student login/account (i.e. student login from UMONS). The following public sample notebooks are then available to test Jupyter text and coding features : 
 +  * [[https://notebooks.azure.com/linusable/libraries/samples-public]] 
 +    * //e.g. :// [[https://notebooks.azure.com/linusable/libraries/samples-public/html/notebooks/second_degree_polynomial_and_roots-01.ipynb]] (Second degree polynomial and roots) 
 +</note>
  
   * Python scientific libraries (official websites including tutorials and documentation)   * Python scientific libraries (official websites including tutorials and documentation)
Ligne 71: Ligne 40:
   * Pylab, combine Matplotlib, NumPy and SciPy   * Pylab, combine Matplotlib, NumPy and SciPy
   * [[http://scikit-learn.org/|Scikit-learn]], machine learning   * [[http://scikit-learn.org/|Scikit-learn]], machine learning
- 
-<note tip>Some MOOCs to help learning : 
-  * [[https://www.edx.org/course/introduction-python-absolute-beginner-microsoft-dev236x-0|Introduction to Python: Absolute Beginner]] (edX) 
-  * [[https://www.datacamp.com/|DataCamp MOOCs]] on data science with Python 
-</note> 
  
 ==== Fundamental numerical methods ==== ==== Fundamental numerical methods ====
Ligne 81: Ligne 45:
     * Diagonalisation and triangularisation     * Diagonalisation and triangularisation
     * LU decomposition : factorization in triangular matrices     * LU decomposition : factorization in triangular matrices
-  * [[numerical_integration|Numerical intégration]] (integrals) 
-    * Simpson method and gaussian quadratures 
   * [[root-finding_algorithm|Root findings :  equations f(x) = 0]]   * [[root-finding_algorithm|Root findings :  equations f(x) = 0]]
     * Polynomial equations     * Polynomial equations
Ligne 88: Ligne 50:
     * Secant method, Regula falsi     * Secant method, Regula falsi
     * Newton-Raphson method     * Newton-Raphson method
 +  * [[numerical_integration|Numerical intégration]] (integrals)
 +    * Simpson method and gaussian quadratures
 +
 +<note tip>
 +Learning outcomes :
 +  * Systems of linear equations
 +    * failing of the theoretical way to solve a linear system using determinant and cofactors (np complexity)
 +    * triangularisation and diagonalisation principles : algorithm and complexity
 +    * "divide by zero" errors and pivot solutions
 +    * extension towards the matrix inversion
 +    * lower-upper LU decomposition and complexity (N³ for the decomposition step and N² for substitution step). How to solve systems with varying independant vectors
 +    * special matrix require special algorithms : tridiagonal matrix algorithm (Thomas algorithm)
 +  * Root findings
 +    * Bisection method (dichotomy) : simple and robust algorithm, invariant loop, slow convergence
 +    * iterative transformation x = f(x), convergence and divergence situations
 +    * secant and regula falsi methods, Convergence Criterion of the Fixed Point Method
 +    * Newton-Raphson method (use of derivatives), quadratic convergence, failure, tolerance and stop condition
 +    * Van Wijngaardeb-Dekker-Brent method ("black box" in numerical packages)
 +    * Roots of polynomials and Bairstow's method
 +  * Numerical intégration
 +    * Equally Spaced methods (trapezoidal, Simpson), accuracy, error dependance,...
 +    * Gaussian Quadratures and orthogonal polynomials (special integrals, scale transformations,  error estimates,...)
 +</note>
  
 ==== Classical numerical methods ==== ==== Classical numerical methods ====
Ligne 129: Ligne 114:
  
 === Linear and non-linear least squares approximations === === Linear and non-linear least squares approximations ===
-Application to deconvolution (Levenberg–Marquardt algorithm)+  * Application to deconvolution (Levenberg–Marquardt algorithm) 
 +  * Reférences : 
 +    * [[https://pubs.acs.org/doi/abs/10.1021/acs.jchemed.8b00649|An Open-Source, Cross-Platform Resource for Nonlinear Least-Squares Curve Fitting]] Andreas Möglich, J. Chem. Educ., 2018, 95 (12), pp 2273–2278 DOI: 10.1021/acs.jchemed.8b00649 
  
 === Chebyshev approximation === === Chebyshev approximation ===
 ++ discussion of some approximations like [[wp>Bhaskara_I's_sine_approximation_formula|Bhaskara I's sine approximation formula]]
 +  * [[https://twitter.com/fermatslibrary/status/1267450081151782913]]
 +  * [[https://medium.com/@mathcube7/chebyshev-interpolation-with-python-2f2e89bb7c30|Chebyshev Interpolation With Python]] Mathcube, Medium, 03/02/2023
  
 === Molecules modelisation and visualization === === Molecules modelisation and visualization ===
Ligne 145: Ligne 136:
     * quantum calculations, optimization, molecular mechanics     * quantum calculations, optimization, molecular mechanics
     * visualization, virtual reality     * visualization, virtual reality
 +    * chemical informations on structures and reactions
   * Data science, statistics (Python modules : Scipy, Pandas,...)   * Data science, statistics (Python modules : Scipy, Pandas,...)
     * Time series analysis     * Time series analysis
Ligne 154: Ligne 146:
     * Agent base modelling and complex systems     * Agent base modelling and complex systems
     * cellular automaton     * cellular automaton
-    * Simpy,...+    * Simpy, active matter simulations...
   * Digital image processing, image recognition   * Digital image processing, image recognition
     * particle tracking,...     * particle tracking,...
 +    * Voronoi diagrams, Delaunay triangulation,... ([[https://towardsdatascience.com/the-fascinating-world-of-voronoi-diagrams-da8fc700fa1b|ref1]])
  
  
 ===== References ===== ===== References =====
 +  * Gradient descent optimization
 +    * [[https://machinelearningmastery.com/gradient-descent-optimization-from-scratch/|How to Implement Gradient Descent Optimization from Scratch]] By Jason Brownlee on April 16, 2021
 +    * [[https://towardsdatascience.com/implementing-gradient-descent-in-python-from-scratch-760a8556c31f|Implementing Gradient Descent in Python from Scratch]] Vatsal Sheth, Medium, 18/02/2022
   * Bioinformatics   * Bioinformatics
     * [[http://biopython.org/|Biopython]]     * [[http://biopython.org/|Biopython]]
Ligne 165: Ligne 161:
   * Machine Learning   * Machine Learning
     * Scikit-learn     * Scikit-learn
 +      * [[https://towardsdatascience.com/linear-regression-in-6-lines-of-python-5e1d0cd05b8d|Linear Regression in 6 lines of Python]] (using scikit-learn)
     * [[https://datafloq.com/read/12-algorithms-every-data-scientist-should-know/2024|12 Algorithms Every Data Scientist Should Know]]     * [[https://datafloq.com/read/12-algorithms-every-data-scientist-should-know/2024|12 Algorithms Every Data Scientist Should Know]]
   * Deep Learning   * Deep Learning
Ligne 176: Ligne 173:
   * K-Means   * K-Means
     * [[http://benalexkeen.com/k-means-clustering-in-python/|K-means Clustering in Python]]     * [[http://benalexkeen.com/k-means-clustering-in-python/|K-means Clustering in Python]]
 +    * [[https://medium.com/thrive-in-ai/k-means-clustering-in-python-9f00b3d7abc3|K Means Clustering in Python]] Rohit Raj, Medium, 02/03/2022
 +    * [[https://medium.com/thrive-in-ai/classification-algorithms-in-python-5f58a7a27b88|Classification Algorithms in Python]] Rohit Raj, Medium, 15/03/2022
   * Applications (suggestions, examples,...)   * Applications (suggestions, examples,...)
     * [[https://scicomp.stackexchange.com/questions/28195/2d-ising-model-in-python|2D Ising Model in Python]]     * [[https://scicomp.stackexchange.com/questions/28195/2d-ising-model-in-python|2D Ising Model in Python]]
 +  * chemistry
 +    * misc docs :
 +      * [[https://pdfs.semanticscholar.org/3161/89e419212794e74bf83442f65de96b5320ba.pdf|Extraction of chemical structures and reactions from the literature]]
 +    * [[https://medium.com/nerd-for-tech/animating-schrodinger-wave-function-%CF%88-of-a-particle-using-python-with-full-code-5ad9e4852906|Animating Schrodinger Wave Function(ψ) of a Particle Using Python (with full code) - Solving Particle in a Box Using Crank-Nicolson Method]], Kowshik chilamkurthy, Medium, 02/03/2021
 +  * Blog articles
 +    * [[https://py.plainenglish.io/linear-regression-in-plain-python-3b20bb56b31d|Simple Linear Regression Explained With Python - Explained in details which are easy to understand]] Arjan de Haan, Medium, Jan 23 (+ [[https://github.com/Vepnar/Script-Collection/blob/master/linear-regression/Linear%20regression.ipynb|jupyter notebook]])
 +    * simpy : [[https://towardsdatascience.com/simulate-real-life-events-in-python-using-simpy-e6d9152a102f|Simulate Real-life Events in Python Using SimPy]] by Khuyen Tran, May, 2021, Medium, Towards Data Science
 +    * Active matter simulations ([[https://arxiv.org/pdf/cond-mat/0611743.pdf|Vicsek]], 1995) :
 +      * [[https://medium.com/swlh/create-your-own-active-matter-simulation-with-python-76fce4a53b6f|Create Your Own Active Matter Simulation (With Python)]] Philip Mocz, The Startup, Medium 2021 + [[https://github.com/pmocz/activematter-python]]
 +    * Fourier transforms : [[https://towardsdatascience.com/fourier-transforms-an-intuitive-visualisation-ba186c7380ee|Fourier Transforms: An Intuitive Visualisation - An intuitive visualization of discrete Fourier transforms applied to simple time-series data]] Diego Unzueta, Towards Data Science, Medium, 17/09/2021
 +    * Monte-Carlo simulations : [[Monte Carlo Simulation — a practical guide - A versatile method for parameters estimation. Exemplary implementation in Python programming language]] Robert Kwiatkowski, Medium, 31/01/2022
 +    * régression logistique : [[https://mlu-explain.github.io/logistic-regression/]]
 +    * [[https://towardsdatascience.com/cubic-splines-the-ultimate-regression-model-bd51a9cf396d|Cubic Splines: The Ultimate Regression Model - Why cubic splines are the best regression model out there]] Brendan Artley, Medium, 27/07/2022
 +
 +
 +
 +
 +
  
  
Ligne 188: Ligne 205:
 ==== Jupyter notebooks ==== ==== Jupyter notebooks ====
   * [[https://github.com/mandli/intro-numerical-methods|Jupyter notebooks and other materials developed for the Columbia course APMA 4300]]   * [[https://github.com/mandli/intro-numerical-methods|Jupyter notebooks and other materials developed for the Columbia course APMA 4300]]
 +  * [[http://nbviewer.jupyter.org/url/norvig.com/ipython/Probability.ipynb|A Concrete Introduction to Probability (using Python)]]
  
 ==== MOOCs ==== ==== MOOCs ====
Ligne 198: Ligne 216:
   * [[https://choosealicense.com]]   * [[https://choosealicense.com]]
   * [[https://creativecommons.org/choose/?lang=en]]   * [[https://creativecommons.org/choose/?lang=en]]
 +  * Published applications
 +    * [[http://pubs.acs.org/doi/10.1021/acs.jchemed.7b00395|Introduction to Stochastic Simulations for Chemical and Physical Processes: Principles and Applications]] Charles J. Weiss, Journal of Chemical Education 2017 94 (12), 1904-1910 DOI: 10.1021/acs.jchemed.7b00395
 +  * [[https://medium.freecodecamp.org/an-overview-of-the-gradient-descent-algorithm-8645c9e4de1e|An overview of the Gradient Descent algorithm]]
 +  * [[https://towardsdatascience.com/building-a-logistic-regression-in-python-step-by-step-becd4d56c9c8|Building A Logistic Regression in Python, Step by Step]]
 +  * [[https://medium.com/swlh/building-linear-regression-in-python-75a429b0d3ba|Building Linear Regression in Python]]
 +  * [[https://towardsdatascience.com/17-types-of-similarity-and-dissimilarity-measures-used-in-data-science-3eb914d2681|17 types of similarity and dissimilarity measures used in data science]] : explains various methods for computing distances and showing their instances in our daily lives. Additionally, it will introduce you to the pydist2 package. Mahmoud Harmouch, Medium, 14/03/2021
 +  * [[http://jakevdp.github.io/|Pythonic Perambulations]] de Jake VanderPlas
 +
 +
 +
  
 ---- ----
  
 ===== Synopsis (français) ===== ===== Synopsis (français) =====
 +(Méthodes de calcul appliqué à la chimie)
 +
 +  * Learning outcomes teaching unit (UE):
 +    * Apply standard numerical methods or existing software to solve numerical problems related to scientific research activities
 +    * Be active in the search for existing numerical methods adapted to problems encountered by chemists
 +  * Content of the UE:
 +    * widespread methods : linear systems, numerical integration, root findings
 +    * Ordinary differential equations (numerical solutions, kinetic applications,...)
 +    * Partial differential equations (finite differences, diffusion problems)
 +    * Nonlinear systems of equations (Newton-Raphson method)
 +    * Eigenvalues eignevectors problems ​​(applications to relaxation and population problems)
 +    * Approximation by linear and non-linear least squares methods (maximum likelihood, application to deconvolution)
 +    * Chebyshev approximation
 +    * Molecular modeling and visualization
 +    * Minimization and conformational problems
 +  * Prerequisite skills
 +    * Basic knowledge of a programming language
 +    * Basics of Mathematics
 +  * Exercises and applications: codes written in or mainly written in Python, with the general libraries matplotlib, numpy, scipy, pandas as well as other specialized libraries, especially in chemistry
 +  * Types of evaluations: Oral examination based on an in-depth study on one of the chapters of the course or an additional theme
 +
 +  * Acquis d'apprentissage UE :
 +    * Appliquer des méthodes numériques standards ou des logiciels existant pour résoudre des problèmes fondamentaux ou annexes, liés à des activités de recherche scientifique
 +    * Être actif dans la recherche de méthodes de résolution numérique existantes et adaptées à des problèmes auxquels les chimistes sont confrontés
 +  * Contenu de l'UE :
 +    * Équations différentielles ordinaires (résolutions numériques et applications cinétiques)
 +    * Équations aux dérivées partielles (différences finies, problèmes de diffusion)
 +    * Systèmes d’équations non linéaires (méthode de Newton-Raphson)
 +    * Problèmes aux valeurs propres (applications à des problèmes de relaxation et de population)
 +    * Approximation par moindre carrés linéaires et non-linéaires (application à la déconvolution)
 +    * Approximation de Tchébyshev
 +    * Modélisation et visualisation de molécules
 +    * Minimisation et problèmes conformationnels
 +  * Compétences préalables
 +    * Connaissance de base d'un langage de programmation
 +    * Bases des mathématiques
 +  * Exercices et applications : codes écrits ou à écrire principalement en Python, avec les librairies générales matplotlib, numpy et scipy, ainsi que d'autres librairies spécialisées, notamment en chimie
 +  * Types d'évaluations : Examen oral sur base d'un travail approfondi sur un des chapitres du cours ou un thème additionnel
 +
 ==== Pré-requis mathématiques ==== ==== Pré-requis mathématiques ====
  
  • teaching/methcalchim/start.1510002099.txt.gz
  • Dernière modification : 2017/11/06 22:01
  • de villersd