All Projects → arotem3 → numerics

arotem3 / numerics

Licence: Apache-2.0 license
library of numerical methods using Armadillo

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to numerics

cmna-pkg
Computational Methods for Numerical Analysis
Stars: ✭ 13 (-23.53%)
Mutual labels:  root-finding, splines, partial-differential-equations, differential-equations, numerical-analysis
Finite-Difference-Method
A Finite Difference Method Engine in C++
Stars: ✭ 15 (-11.76%)
Mutual labels:  partial-differential-equations, finite-difference, numerical-methods, numerical-integration
numerical-methods-python
Numerical methods implementation in Python.
Stars: ✭ 65 (+282.35%)
Mutual labels:  differential-equations, numerical-methods, numerical-analysis
NAGPythonExamples
Examples and demos showing how to call functions from the NAG Library for Python
Stars: ✭ 46 (+170.59%)
Mutual labels:  linear-algebra, root-finding, numerical-methods
Cpp-Examples
Numerical C++ examples.
Stars: ✭ 38 (+123.53%)
Mutual labels:  linear-algebra, numerical-methods, numerical-analysis
pydens
PyDEns is a framework for solving Ordinary and Partial Differential Equations (ODEs & PDEs) using neural networks
Stars: ✭ 201 (+1082.35%)
Mutual labels:  partial-differential-equations, differential-equations, numerical-methods
Math Php
Powerful modern math library for PHP: Features descriptive statistics and regressions; Continuous and discrete probability distributions; Linear algebra with matrices and vectors, Numerical analysis; special mathematical functions; Algebra
Stars: ✭ 2,009 (+11717.65%)
Mutual labels:  linear-algebra, regression, numerical-analysis
DECAGT
Discretizations of Exterior Calculus for Analysis, Geometry and Topology
Stars: ✭ 14 (-17.65%)
Mutual labels:  partial-differential-equations, numerical-methods, numerical-analysis
NM
Numerical Methods (NM) for BE Electrical II Year / II Part, Email: [email protected]
Stars: ✭ 13 (-23.53%)
Mutual labels:  partial-differential-equations, numerical-methods, numerical-integration
Julia-data-science
Data science and numerical computing with Julia
Stars: ✭ 54 (+217.65%)
Mutual labels:  linear-algebra, numerical-analysis
bandicoot-code
Bandicoot: GPU accelerator add-on for the Armadillo C++ linear algebra library
Stars: ✭ 21 (+23.53%)
Mutual labels:  linear-algebra, armadillo
Introduction-to-Python-Numerical-Analysis-for-Engineers-and-Scientist
Introduction to Python: Numerical Analysis for Engineers and Scientist. In 2017, Python became the world's most popular programming language. This course covers the basic syntax, linear algebra, plotting, and more to prepare students for solving numerical problems with Python.
Stars: ✭ 110 (+547.06%)
Mutual labels:  linear-algebra, numerical-analysis
MLweb
Machine learning and scientific computing (linear algebra, statistics, optimization) javascript libraries, with an online lab.
Stars: ✭ 85 (+400%)
Mutual labels:  linear-algebra, regression
dtt
A C++ header-only for data transfer between linear algebra libraries (Eigen, Armadillo, OpenCV, ArrayFire, LibTorch).
Stars: ✭ 74 (+335.29%)
Mutual labels:  linear-algebra, armadillo
lubeck
High level linear algebra library for Dlang
Stars: ✭ 57 (+235.29%)
Mutual labels:  linear-algebra, numerical-methods
Smile
Statistical Machine Intelligence & Learning Engine
Stars: ✭ 5,412 (+31735.29%)
Mutual labels:  linear-algebra, regression
CNCC-2019
Computational Neuroscience Crash Course (CNCC 2019)
Stars: ✭ 26 (+52.94%)
Mutual labels:  linear-algebra, differential-equations
data-science-notes
Open-source project hosted at https://makeuseofdata.com to crowdsource a robust collection of notes related to data science (math, visualization, modeling, etc)
Stars: ✭ 52 (+205.88%)
Mutual labels:  linear-algebra, regression
math-for-ml
Mathematical preliminaries for machine learning
Stars: ✭ 15 (-11.76%)
Mutual labels:  linear-algebra, numerical-analysis
Gosl
Linear algebra, eigenvalues, FFT, Bessel, elliptic, orthogonal polys, geometry, NURBS, numerical quadrature, 3D transfinite interpolation, random numbers, Mersenne twister, probability distributions, optimisation, differential equations.
Stars: ✭ 1,629 (+9482.35%)
Mutual labels:  linear-algebra, differential-equations

Author: Amit Rotem

Last modified: 10/24/2019

These headers take advantage of the armadillo linear algebra library and require it for both compiling and linking. All the functions can be found in the header file and in the documentation file.

basic installation instructions:

I have only a simple CMakeLists.txt, so any modifications will have to be provided by you, the user. This library has only been tested on linux. Most recent versions of gcc should be able to compile OpenMP instructions, this library uses some OpenMP instructions here and there, so verifying omp.h exists on your system will significantly improve the performance of some of the data science functions.

  1. install Armadillo +v9.2 and matplotlibcpp (optional).
  2. cd /numeric-lib/
  3. cmake .
  4. make
  5. sudo make install

basic compiling instructions:

This assumes you have both armadillo and numerics installed in the default locations that your compiler can find (e.g. /usr/local/lib/).

g++ main.cpp -O3 -lnumerics -larmadillo

The order is important because libnumerics also has to link against libarmadillo. It is also recommended that you use optimization during compile, such as -O2, or -O3.

numerics.hpp is a scientific computing library hosting:

  • integration (4th order, 7-pt lobatto, spectral).

  • root finding methods (derivative, derivative free, and mixed methods).

  • error control, and approximation options for root finding passed to solver via class interface.

  • optimization methods (unconstrained and box constraints. Function, Gradient, and Hessian based methods).

  • interpolation schemes (lagrange, cubic, and fourier interpolation).

  • machine learning and data analysis tools:

    • train/test splitting.
    • k-means clusttering.
    • regularized linear regression.
    • kernel linear basis regression and classification.
    • kernel based smoothing.
    • kernel density estimation.
    • nearest neighbors regression and classification.
    • built in cross validation for automatic parameter selection for all models.
  • simple finite difference methods (for approximating derivatives).

  • uniform spectral derivatives over an interval.

namespace numerics::ode for solving ordinary differential equations

  • Discrete differentiation matrices
  • explicit constant and adaptive step size IVP solvers (4th order)
  • implicit constant and adaptive step size IVP solvers (1st, 2nd, 4th, and 5th order)
  • implicit solvers use quasi-Newton methods making them more efficient than fixed point iteration.
  • event handling and other options passed to solver via class interface.
  • nonlinear BVP solver (4th, and upto spectral order)

For an in depth overview, refer to the documentation.md file. There are also example files for most of the functions found in /examples/ directory.

Note, many of the examples rely on "matplotlibcpp.h" which is used for visualising results of many of the algorithms. To use this feature install "matplotlibcpp.h" and make sure you have a developer version of python 2.7.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].