Transcript
Page 1: CCP 2015 MP SI : Corrigé de la partie info - Numericableperso.numericable.fr/jules.svartz/prepa/IPT_spe/corrige_ccp_si_15.pdf · Deuxièmesannées LycéeMasséna CCP 2015 MP SI :

Deuxièmes années Lycée Masséna

CCP 2015 MP SI : Corrigé de la partie info

Avertissement. On suppose les fonctions du module math importées : on utilisera cos, sin et sqrt.

Question 11. Yi+1 = Yi + hF (ti, Yi)

Question 12. En supposant que Yi est une liste à deux éléments, on a :

def fi(t,Y):return [Y[1],5/(7*m*(R-r))*(F0*sin(wbob*t)*cos(Y[0])-fv*(R-r)*Y[1]-m*g*sin(Y[0]))]

Question 13. La structure pour Yini est inutilement compliquée (liste de listes ?), mais jouons le jeu : on supposequ’il est donné comme une liste contenant deux listes à un seul élément. On se ramène à une structure de liste à deuxéléments permettant d’exploiter la fonction précédente.

def Euler(Yini,h,Tmaxi,F):n=int(Tmaxi/h)Y=[Yini[0][0],Yini[1][0]]SY=[[0]+Y]t=0for i in range(n):

FY=fi(t,Y)Y=[Y[0]+h*FY[0],Y[1]+h*FY[1]]t+=hSY.append([t]+Y)

return SY

Question 14. À Tmaxi fixé, on fait O(1/h) opérations : en effet chaque tour de boucle dans la fonction précédentes’effectue en temps constant, et on fait

⌊Tmaxi

h

⌋opérations. Ainsi si h est divisé par 10, le temps de calcul est multiplié

par 10.

Question 15. On fait parcourir à t, th et thp les valeurs de SY (la variable th est utilisée pour θ et thp pour.

θ) :on parcourt les éléments de SY, qui sont des listes à trois éléments, et on déconstruit directement chacune de ses listesà l’aide des trois variables. On utilise à nouveau la fonction fi pour calculer

..

θ qu’on stocke dans la variable thpp. Onpeut alors calculer les coefficients NI et TI . Si pour l’un des temps le rapport est strictement supérieur à f en valeurabsolue, on renvoie False. Sinon, on renvoie True en fin de fonction.

def VerifRSG(SY,f):for t,th,thp in SY:

thpp=fi(t,[th,thp])[1]NI=F0*sin(wbob*t)*sin(th)+m*g*cos(th)+m*(R-r)*thp**2TI=2/5*m*(r-R)*thppif abs(TI/NI)>f:

return Falsereturn True

Question 16. Je vous laisse répondre à cette question.

Question 17.

def Valeur_efficace(T,a,b):s=0for i in range(a,a+b):

s+=T[i]**2return sqrt(s/b)

La complexité est en O(b).

Question 18. • Comme N � Nmaxi, on peut considérer que l’on fait O(Nmaxi) itérations de la boucle dans le pirecas, sans surestimer la complexité. Le calcul de la valeur efficace a une complexité O(N). On a donc une complexitéO(N ×Nmaxi).

• Avec cette nouvelle écriture, le calcul de la valeur efficace se fait en temps O(1) (à part la première). On a doncune complexité O(Nmaxi) pour la boucle, et donc pour la fonction car N � Nmaxi. C’est mieux !

Svartz Page 1/2 2015/2016

Page 2: CCP 2015 MP SI : Corrigé de la partie info - Numericableperso.numericable.fr/jules.svartz/prepa/IPT_spe/corrige_ccp_si_15.pdf · Deuxièmesannées LycéeMasséna CCP 2015 MP SI :

Deuxièmes années Lycée Masséna

Question 19. Une structure de type pile ne permet d’accéder qu’à la mesure la plus récente. Ainsi pour pouvoirsupprimer la plus ancienne mesure (il y en a N), il faudrait dépiler entièrement la pile (dans une autre pile), supprimerla dernière mesure et rempiler les autres, ce qui aurait une complexité en O(N) : la structure de pile, bien qu’utilisable,n’est clairement pas adaptée ici.

Question 20.

def Init_Tampon(N,Te):T=creer_file()for i in range(N):

enfiler(T,Mesure(Te))return T

Question 21. En notation Python et pas en pseudo-code :

x=defiler(T)y=mesure(Te)enfiler(T,y)Xeff=sqrt(Xeff*Xeff+y*y-x*x)

Svartz Page 2/2 2015/2016


Recommended