An application estimates the parameters of the defined functions on some numerical data. We use maximum likelihood method as an estimation, and finding maximum/minimum is an optimization problem.
First, we have to decide the architecture of this application.
c++ in the bottom
Python API
For the coding side, I have little experiences about programming architecture.
Some objects need to complete as below
- Defined functions:
- Gaussian function
- Exponential function
- Polynomial
- Chebyshev polynomial
- Poisson function
- Crystal ball function: The Crystal ball function is a Gaussian with a tail on the low side (or both side).
- User defined function: it should be the same with scipy's user defined function
- Stack up of above functions (or Call "ADD")
-
- First derivative vector of defined functions
- Hessian matrix of defined functions
- Constrains (parameters bound): for example $0<\mu<20.0$ and $0.5<\sigma<3.0$ for Gaussian function
- Log-likelihood value
- Minimization methods
- Iterator
- Stop
- Linear programming for constrained minimization
- Plots
An application estimates the parameters of the defined functions on some numerical data. We use maximum likelihood method as an estimation, and finding maximum/minimum is an optimization problem.
First, we have to decide the architecture of this application.
c++ in the bottom
Python API
For the coding side, I have little experiences about programming architecture.
Some objects need to complete as below