Open source Interactive numerical computing environment
This repository contains necessary packages to symbolic computation, matrix algebra etc., also offer data visualisation - graphs.
For symbolic computation is used SymbolicC++ library, for data visualisation and
plotting is used Gnuplot-iostream.
Matrices algebra
Symbolic differential computation
Graphical solutions and visualisations
Mathematical function properties analysis
My C++ implementation of utilities based on symbolic computation.
Object Point represent point in n-dimensional space.
OneDimensional::Point myPoint(2);
TwoDimensional::Point myPoint(1.5, 5);
ThreeDimensional::Point myPoint(1.5, 2, 5);
- Point value
myPoint[i];return point value inidimension. By callmyPoint.matrix;are possible matrices operations, return1 x nmatrix.
Object Function represent mathematical function by symbolic variables.
TwoDimensional::Function myFunction((x - 2)*(x + 5) + 3*y);
-
Function value
myFunction.value(Point);return function value of function at givenPoint. -
Function gradient
myFunction.gradient(); myFunction.gradient(Point);return matrixn x 1of function's first derivatives - gradient. -
Function hessian
myFunction.hessian(); myFunction.hessian(Point);return matrixn x nof function's seconds derivatives - hessian. -
Function character of stationary/inflection point
myFunction.character(Point);returnStationaryPoin::Minimum = 0if Point is a locally minimum of function, returnStationaryPoin::Maximum = 1if Point is a locally maximum, orStationaryPoin::Saddle = 2if Point is saddle point of function.
Object Plot offer graphical visualisation and data plotting.
Plot::function(myFunction.getSymbolic());
I have develop this platform to implement Numerical Optimization comparative and gradient methods used for finding locally extremes of functions.
- Davidon's search
- Golden selection search
- Nelder & Mead method
- Newton & Raphson method
- Levenberg & Marquardt method
TwoDimensional::Function myFunction((x - 2)*(x + 5) + y*y);
TwoDimensional::Point startPoint(1.5, 5);
Optimization::NelderMead myMethod(myFunction, startPoint);
myMethod.findMinimum();

