Een puntmassa wordt gekenmerkt door zijn $$x$$- en $$y$$-coördinaat in het $$xy$$-vlak, samen met de massa $$m$$ van dit punt. Beschouwen we een reeks van $$N > 0$$ van die puntmassa's, dan hebben we:

Het zwaartepunt van die puntmassa's heeft als coördinaat $$(z_x, z_y)$$ en kan gevonden worden uit:
$$ z_x = \frac{\sum_{i = 0}^{N-1} m_i x_i}{\sum_{i = 0}^{N-1} m_i} $$
$$ z_y = \frac{\sum_{i = 0}^{N-1} m_i y_i}{\sum_{i = 0}^{N-1} m_i} $$
Schrijf de gevectoriseerde functie zwaartepunt() met als argumenten: Je mag aannemen dat de drie argumenten van deze functie een gelijk aantal elementen hebben. De drie argumenten zijn ook allen van hetzelfde type (dus ofwel 3 NumPy-rijen ofwel 3 reële getallen).


De functie levert een tuple dat bestaat uit de $$x$$- en de $$y$$-coördinaat van het zwaartepunt (zie bovendstaande uitdrukking), WAARBIJ JE ENKEL DE PUNTEN MET STRIKT POSITIEVE MASSA in rekening brengt (dus de punten met een massa kleiner dan of gelijk aan nul, negeer je). Er is minstens 1 puntmassa met strikt positieve massa.

TIP: een boolean kan je naar een int omzetten door met de gehele waarde 1 te vermenigvuldigen. Zo levert de uitdrukking (a == b)*1 de waarde 1 indien a en b gelijk zijn, en de waarde 0 in het andere geval.

Voorbeeld

x = np.linspace(-3, 3, 7)
y = np.linspace(-3, 3, 7)
m = np.array([1.0, 2.0, 3.0, 4.0, -1.0, -1.0, -1.0])
zwaartepunt(x, y, m) = (-1.0, -1.0)
zwaartepunt(1.0, 1.0, 10.0) = (1.0, 1.0)