Introduction
As all caluclation procedures were written from scratch, some basic information might be useful. All of these techniques were presented during a subject Numeric methods during my studies.
Arbitrary function values
Arbitrary expression strings are initially converted to RPN form for further calculations. The following functions are supported: sin, cos, tan, cot, sec, csc, asin, acos, atan, acot, sinh, cosh, tanh, coth, sech, csch, ln, abs.
Derivatives
In case of Polynomial type, the derivative can be calculated accurately. I guess this fact does not require further explainations.
Arbitrary functions use the following formula for calculating f'(x):
df = (f(x-h)-f(x+h))/(2*h)
where h = 1e-10.
Integrals
Definite integrals can be also calculated accurately for Polynomial datatype.
CAUTION In current version (0.9.0.50) there are problems with these calculations in case of spline functions - polynomials with not limited monomials are "safe".
The other supported method of integration is a complex trapezoidal quadrature with uniform range division.
Linear regression
Linear approximation is realized as a least square method - it minimizes the value of:
(y1 - (a*x1 + b))^2 + ... + (yn - (a*xn + b))^2
Lagrange and B-Spline interpolation
Lagrange interpolation is the simplest supported type. It is calculated by solving a system of linear equations defined by a Vandermonde matrix. This process is performed using Gauss elimination.
B-Splines are calculated the same way - ie. Gauss elimination on a properly constructed matrix. Both ordinary and normal B-Splines are supported.