Tools for numerical math calculations

## Tools for numerical math calculations

This repository contains tools for math numerical computation such as numerical integration and interpolation. The current implementation contains:

• numerical integration using Gauss formula

```import numpy as np
from numerical.integration import gauss

def f(x):
return np.power(x[0], 2)

gauss.integrate(f, 0., 1.)  # 0.3333333
```
• spline functions and theirs derivatives

```import numpy as np
from numerical import splines
import matplotlib.pyplot as plt

x = np.arange(0, 4., 0.05)
y = splines.schoenberg(x)
yd1 = splines.schoenberg.deriv(x, order=1)  # first derivative
yd2 = splines.schoenberg.deriv(x, order=2)  # second derivative
# visualize results
plt.plot(x, y)
plt.plot(x, yd1)
plt.plot(x, yd2)
plt.show()
```

• function interpolation

```import numpy as np
from numerical import interpolate
import matplotlib.pyplot as plt

def fun(x):
return 1 - np.power(x[0] - 0.5, 2)

grid = np.array([np.arange(0, 1.0001, 0.25)])
values = fun(grid)
itp_fun = interpolate(values, grid)

x = np.arange(0., 1.00001, 0.001).reshape(1, -1)
y_intp = itp_fun(x)
y_true = fun(x)

plt.plot(x[0], y_intp)
plt.plot(x[0], y_true)
plt.show()
```