Bonjour à tous,
Merci d'avance à ceux qui tenterons de m'aider

Je travaille actuellement sur un TP d'un lycée technologique de Dijon pour acquérir un meilleur niveau sur python
(Voici le dit TP http://www.fltsi.fr/tsi/tsi2/TP%20pr...thon%20SII.pdf

Tout se déroule vraiment bien jusqu'aux questions 9-10
L'objectif ici est d'intégrer, par la méthode des trapèzes, une accélération (dont les valeurs sont contenues dans un fichier excel) pour obtenir la vitesse, puis la position.

Le code fournit en annexe est le suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
 
# -*- coding: utf-8 -*-
"""
Created on Thu May  7 21:31:04 2015
 
@author: David PREVOST
"""
 
# Importations de modules
import matplotlib.pyplot as plt
 
# Fonctions pour l'intégration numérique (méthode des trapèzes)
 
# Fonction trapeze
def trapeze(xi,xj,yi,yj):
#--> A COMPLETER
 
 
 
 
# Fonction integre_signal
def integre_signal(t,f,CI=0):
#--> A COMPLETER
 
 
 
 
 
#------------------------------------------------------------------------------
# NE PAS MODIFIER CI-DESSOUS
# Décommenter l'ensemble pour exécuter
#(sélectionner l'ensemble, cliquer droit, puis décommenter)
#------------------------------------------------------------------------------
#
##Vitesse 1 sans filtrage
#
#fi=open("Vit1.csv")
#
#t1=[]; acc1=[]
#for li in fi:
#    if li[0] not in "abcdefghijklmnopqrstuvwxyz":
#        li_sep=[]        
#        li_sep=li.split(";")
#        t1.append(float(li_sep[0]))
#        acc1.append(float(li_sep[1][:-1]))
#
#vit1=integre_signal(t1,acc1)
#
#plt.figure(10)
#plt.plot(t1,vit1,"k")
#
#x1=integre_signal(t1,vit1)
#
#plt.figure(20)
#plt.plot(t1,x1,"k")
#
#
##Vitesse 2 sans filtrage
#
#fi=open("Vit2.csv")
#
#t2=[]; acc2=[]
#for li in fi:
#    if li[0] not in "abcdefghijklmnopqrstuvwxyz":
#        li_sep=[]        
#        li_sep=li.split(";")
#        t2.append(float(li_sep[0]))
#        acc2.append(float(li_sep[1][:-1]))
#
#vit2=integre_signal(t2,acc2)
#
#plt.figure(10)
#plt.plot(t2,vit2,"g")
#
#x2=integre_signal(t2,vit2)
#
#plt.figure(20)
#plt.plot(t2,x2,"g")
#
#
##Vitesse 3 sans filtrage
#
#fi=open("Vit3.csv")
#
#t3=[]; acc3=[]
#for li in fi:
#    if li[0] not in "abcdefghijklmnopqrstuvwxyz":
#        li_sep=[]        
#        li_sep=li.split(";")
#        t3.append(float(li_sep[0]))
#        acc3.append(float(li_sep[1][:-1]))
#
#vit3=integre_signal(t3,acc3)
#
#plt.figure(10)
#plt.plot(t3,vit3,"r")
#
#x3=integre_signal(t3,vit3)
#
#plt.figure(20)
#plt.plot(t3,x3,"r")
#
#plt.figure(10)
#plt.xlabel('t (s)')
#plt.ylabel('V (m/s)')
#plt.figure(20)
#plt.xlabel('t (s)')
#plt.ylabel('X (m)')
#plt.show()
Pour la fonction trapèze j'ai utiliser la formule de l'aire d'un trapèze:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 def trapeze(xi,xj,yi,yj) :
    return ((np.sqrt((yj-yi)**2+(xj-xi)**2)+(xj-xi))*yi/2)
Puis pour la fonction integration j'ai procédé comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 def integre_signal(t,f) :
   for i in range(1,len(t1)-1):
         u=trapeze(t[i],t[i+1],f[i],f[i+1])
         vit.append(u) 
 #vit une liste que j'ai crée
en demandant un plt.plot(t1,vit), j'obtiens la courbe de l’accélération (donc celle donnée) mais "remplie"...
Après plusieurs heures sur ce TP, j'ai peur de ne plus être très clair et ai sans doute besoin de votre aide.

PS : Je suis étudiant-ingénieur à Rennes, je fais cela sur mon temps libre, n'allez surtout pas pensez que je vous demande de faire mon travail..

En vous remerciant grandement,