Statistiques
| Révision :

root / ase / test / distmom.py @ 17

Historique | Voir | Annoter | Télécharger (661 octet)

1 1 tkerber
from ase.dft import get_distribution_moment
2 1 tkerber
import numpy as np
3 1 tkerber
4 1 tkerber
precision = 1E-8
5 1 tkerber
6 1 tkerber
x = np.linspace(-50., 50., 1000)
7 1 tkerber
y = np.exp(-x**2 / 2.)
8 1 tkerber
area, center, mom2 = get_distribution_moment(x, y, (0, 1, 2))
9 1 tkerber
assert sum((abs(area - np.sqrt(2. * np.pi)), abs(center), abs(mom2 - 1.))) < precision
10 1 tkerber
11 1 tkerber
x = np.linspace(-1., 1., 100000)
12 1 tkerber
for order in range(0, 9):
13 1 tkerber
    y = x**order
14 1 tkerber
    area = get_distribution_moment(x, y)
15 1 tkerber
    assert abs(area - (1. - (-1.)**(order + 1)) / (order + 1.)) < precision
16 1 tkerber
17 1 tkerber
x = np.linspace(-50., 50., 100)
18 1 tkerber
y = np.exp(-2. * (x - 7.)**2 / 10.) + np.exp(-2. * (x + 5.)**2 / 10.)
19 1 tkerber
center=get_distribution_moment(x, y, 1)
20 1 tkerber
assert abs(center - 1.) < precision