Bonjour,
Commençons par définir la fonction f_L définie sur l'intervalle [0,𝐿]. Je choisis ici la forme d'une corde de guitare pincée à une distance 𝛼𝐿 (alpha * L) avec un champ d'élongation 𝑎 (a). Il s'agit d'une fonction affine par morceaux. Je prends 𝐿=1m dans toute la suite.
Ensuite, on définit la fonction f_2L définie sur l'intervalle [−𝐿,𝐿] comme ( (si 𝑥∈[0,𝐿], alors 𝑓2𝐿(𝑥
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 L = 1 # m alpha = .25 a = .1 # m def f_L(x): if x < alpha * L: return a * x / alpha else: return (a / (alpha - 1)) * ( x / L - 1)=𝑓𝐿(𝑥
, sinon 𝑓2𝐿(𝑥
=−𝑓𝐿(−𝑥
).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 def f_2L(x): if x >= 0: return f_L(x) else: return -f_L(-x)
C'est là que mes difficultés commencent Enfin, on définit la fonction f définie sur ]−∞,+∞[ comme décrit dans la vidéo en périodisant la fonction 𝑓2𝐿. Pour cela, on utilise la fonction partie entière (np.floor) qui permet de ramener un réel 𝑥 dans l'intervalle [−𝐿,𝐿].
Pourquoi écrit-on la relation suivante ?
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 def f(x): return f_2L(x - np.floor((x + L)/ (2 * L)) * 2 * L)
Partager