Centre de gravité

Messages : 7

Inscription : 08 juin 2020 23:17

Profil de l'utilisateur : Élève de lycée

Centre de gravité

Message par Mathavore » 28 nov. 2021 19:04

Bonsoir
Je bloque sur cet exo e python, je ne sais pas comment commencer et comment le formaliser
Écrivez une fonction qui indique, étant donnée une liste de points de l'espace, où est placé le centre de gravité de ces points, en supposant qu'ils ont tous la même masse. Chaque point de l'espace est une séquence de 3 coordonnées. En conséquence, une liste de points de l'espace est une séquence de séquences.

Merci de m'aider

Messages : 3901

Inscription : 04 sept. 2005 19:27

Profil de l'utilisateur : Élève de lycée

Re: Centre de gravité

Message par JeanN » 28 nov. 2021 19:39

Tu cherches juste les moyennes des coordonnées, non ?
Professeur de maths MP Lycée Sainte-Geneviève

Messages : 298

Inscription : 27 oct. 2017 10:55

Profil de l'utilisateur : Professionnel

Re: Centre de gravité

Message par Hibiscus » 28 nov. 2021 20:33

(ou, si la question suivante s'affranchit de l'hypothèse uni-masse, ce que tu cherches n'est rien d'autre qu'un barycentre/centroïde.
Je ne sais pas pourquoi il est devenu à la mode d'éviter ce mot..)
Masséna (PC*) -- X15 -- Spatial.

Messages : 779

Inscription : 01 juin 2020 16:26

Profil de l'utilisateur : Parent

Re: Centre de gravité

Message par H2Fooko » 28 nov. 2021 21:20

L'objectif semble être d'utiliser les sequences en Python:
  • la fonction renvoie une séquence
  • elle admet en entrée une séquence de séquences
à l'intérieur elle traite des séquences:
  • une sous fonction qui renvoie le Nombre d'éléments d'une séquence
  • une sous fonction qui fait la somme de séquences (à toi de la définir)
  • la division d'une séquence par un entier (à définir aussi)
En gros essaye de travailler le plus possible sur des entités séquence.
отец (un autre père ENSICAENnais) сынок (& fils PCSI▸PC▸PC* 2020-23 à B.Pascal (63)EC Lille) и Дух мира :flag_ua: (& esprit de 🕊)

Messages : 7

Inscription : 08 juin 2020 23:17

Profil de l'utilisateur : Élève de lycée

Re: Centre de gravité

Message par Mathavore » 29 nov. 2021 21:06

H2Fooko a écrit :
28 nov. 2021 21:20
L'objectif semble être d'utiliser les sequences en Python:
  • la fonction renvoie une séquence
  • elle admet en entrée une séquence de séquences
à l'intérieur elle traite des séquences:
  • une sous fonction qui renvoie le Nombre d'éléments d'une séquence
  • une sous fonction qui fait la somme de séquences (à toi de la définir)
  • la division d'une séquence par un entier (à définir aussi)
En gros essaye de travailler le plus possible sur des entités séquence.
Oui , sauf que je ne vois pas comment formaliser ça en code python

Messages : 779

Inscription : 01 juin 2020 16:26

Profil de l'utilisateur : Parent

Re: Centre de gravité

Message par H2Fooko » 30 nov. 2021 12:12

Voilà quelque chose de perfectible.
Je te laisse de soin de généraliser en dimension "n" et de gérer les valeurs impossibles...
SPOILER:

Code : Tout sélectionner

def InitPoint(x, y, z):
     return x, y, z

def CntCoordPoint (M):
    return len(M)

def SumPoints (N):
    x=0 ;y=0 ;z=0
    for I in N:
        x += I[0]; y += I[1]; z += I[2]
    return (x, y, z)

def DivPoints (N, d):
    return (N[0]/d, N[1]/d, N[2]/d)

def AffNuage (N):
    for I in N:
        print (I)

def Barycentre (N):
    return DivPoints(SumPoints (N), CntCoordPoint (N))

# Un point est une séquence de 3 coordonnées
A = InitPoint(12.3,-5.4,0.0258)
B = InitPoint(-6.2,7.0,0.52)
C = InitPoint(9.5,10,-8.6)
D = InitPoint(9, -6, 0.852)
E = InitPoint(-5, -2, 7)
# un nuage de points est une séquence de séquence
NuagePoints = (A, B, C, D, E)


AffNuage (NuagePoints)
print ("Barycentre des Points du nuage = ", Barycentre (NuagePoints))

PS Question subsidiaire :
Soit un ensemble de points, calculer les barycentres de sous-ensembles distincts de l'ensemble initial (dont la réunion forme l'ensemble) et calculer le barycentre des barycentres. Refaire l'exo pour une partition différente de l'ensemble initial. Conclure.
отец (un autre père ENSICAENnais) сынок (& fils PCSI▸PC▸PC* 2020-23 à B.Pascal (63)EC Lille) и Дух мира :flag_ua: (& esprit de 🕊)

Messages : 62

Inscription : 18 juil. 2017 16:50

Profil de l'utilisateur : Professionnel

Re: Centre de gravité

Message par Puffin » 03 déc. 2021 14:04

Si tu construits un array numpy de dimension 3xn, la fonction numpy.mean permet de renvoyer la moyenne sur n'importe quel axe (ici l'axe 1, celui des 10 points et non celui des 3 coordonnées) :

Code : Tout sélectionner

import numpy as np
P = np.random.rand(3,10)
print(np.mean(P, 1))

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: Centre de gravité

Message par fakbill » 04 janv. 2022 15:33

Personne ne parle de "séquences" en python....
"def InitPoint(x, y, z):
return x, y, z

def CntCoordPoint (M):
return len(M)"

c'est une blague? :lol:
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

Messages : 187

Inscription : 09 août 2018 20:57

Profil de l'utilisateur : Élève de lycée

Re: Centre de gravité

Message par GrosGillouDu92 » 04 janv. 2022 16:31

fakbill a écrit :
04 janv. 2022 15:33
Personne ne parle de "séquences" en python....
A part peut-être la documentation officielle :

https://docs.python.org/3/glossary.html#term-sequence

Messages : 779

Inscription : 01 juin 2020 16:26

Profil de l'utilisateur : Parent

Re: Centre de gravité

Message par H2Fooko » 04 janv. 2022 17:12

fakbill a écrit :
04 janv. 2022 15:33
c'est une blague? :lol:
Peut être, reste à savoir d'où sort l'exo ?
отец (un autre père ENSICAENnais) сынок (& fils PCSI▸PC▸PC* 2020-23 à B.Pascal (63)EC Lille) и Дух мира :flag_ua: (& esprit de 🕊)

Répondre