Student / DST ꞉ 4TPC416U Bachelor 2nd year spring 2024 − −
4TPC416U ꞉ Maths pourharmonique
les sciences physiques 3 et analyse
DST2 / 1h30
</br>
Credits꞉ L. Truflandier
A la fin de l'épreuve, répondre à l'email envoyé en début de session avec pour pièce jointe le fichier notebook complété ou un
fichier python édité via Spyder.
Renommer votre fichier suivant le protocole ꞉
DST_NomPrenom_S2.ipynb pour un fichier jupyter‑notebook
ou
DST_NomPrenom_S2.py pour un fichier python pur
ATTENTION ꞉ Abolir totalement l’emploi des espaces, lettres accentuées et autres symboles dans le nom du fichier !
Les points suivants seront pris en compte pour l'évaluation ꞉
respect des consignes
mise en forme des figures (légendes, unités, titre etc...)
clarté des programmes et mise en page
</br>
Credits꞉ L. Truflandier
In [ ]: import [Link] as plt
import numpy as np
import scipy as sc
Hexapôle électrostatique
Le potentiel électrostatique à la position →
ϕ de l'espace créé par un ensemble de charges
r ∈ R
3
N {qi }
i=1..N
localisées aux points
→
{ r qi ∈ R }
3
de l'espace, a pour expression
i=1..N
N
1 qi
→
ϕ (r ) = ∑
4πϵ0
i=1
→
∥ r − r qi ∥ →
avec → →
r = xe x + y e y + z e z → →
et →
rq
i
→
= xq e x + y q e y + z q e z
i i
→ i
→
Pour cet exercice on considère un ensemble de 86 charges placées aux sommets d’un octogone parfait de demi‑diagonale d = 1
et centré sur l'origine du repère. Par la suite, on se ramènera à une étude dans le plan et on utilisera les unités atomiques, (O, x, y)
pour lesquelles e
4πϵ0
. Les charges élementaires (
= 1 ) sont de signes opposées à leur deux plus proches voisins.
qi = ±1
1. Générer 3 tableaux, xq et yq contenants les coordonnées des 8 charges, et q contenant la valeur des charges (unitaires).
Pour déterminer le coordonnées efficacement on pourra utiliser le fait que l'octogone est inscrit dans un cercle
de rayon . r = 1
In [ ]:
1. En utilisant la fonction scatter localiser les charges dans le plan (O, x, y) avec des cercles bleu et rouge pour les charges
négatives et positives, respectivement.
In [ ]:
1. Discrétiser le plan pour
(O, x, y) et représenter le potentiel généré par les 4 charges. On
(x, y) = [−2; 2]50 × [−2; 2]50
privilégiera l'utilisation d'une boucle pour le calcul du potentiel. Pour la représentation on utilisera imshow avec
+3 > ϕ > −3 .
In [ ]:
**Exemple de figure attendue ꞉** Alternative text
Le champ électrique → en un point → de l'espace créé par une distribution de charges →
E r r ∈ R
3
localisées aux points
→
{ r qi ∈ R }
3
de l'espace s'écrit
i=1..N
N
→
( r − R qi )
→
→ →
E (r ) =
e
∑ qi
4πϵ0 ∥ → ∥ → 3
∥ r − R qi ∥
i=1
avec la charge élementaire (adimensionnelle) c'est à dire
qi qi = ±1 . Par la suite, on se ramènera à une étude dans le plan
et on utilisera les unités atomiques, pour lesquelles
(O, x, y) |
4πϵ0
e
| = 1 .
1. En utilisant les mêmes paramètres de discrétisation du plan que précédemment, les vecteurs du champs électrique
Oxy
généré par l'octopôle à l'aide de la fonction quiver et superposer le graphique sur celui du potentiel electrostatique.
In [ ]:
**Exemple de figure attendue ꞉** Alternative text
Série de Fourier
Considérons une fonction 1D, , continue (ou continue par morceaux) sur l'intervalle
f : R → R et périodique tel que ꞉ [−π; +π]
f (x + 2π) = f (x), alors peut être représentée par une série de trigonométrique convergente, appelée série de Fourier ꞉
f (x)
nmax
f (x) = a0 + ∑ (an cos(nx) + bn sin(nx)) , nmax → ∞ (1)
n=1
où les coefficients de Fourier et sont déterminés par ꞉
an bn
+π
1
a0 = ∫ f (x) dx (1)
2π −π
+π
1
an = ∫ f (x) cos(nx) dx pour n > 0 (2)
π −π
+π
1
bn = ∫ f (x) sin(nx) dx pour n > 0 (3)
π −π
Pour un signal triangulaire périodique tracé ci‑dessous pour x ∈ [−π; +π] ꞉
In [ ]: def fonction_sawtooth(x,ramp):
sign = ( [Link](x,ramp) + 1.0 ) /2.0
return sign
nperiod = 1
ngrid = 512
x = [Link](‑nperiod*[Link], nperiod*[Link], ngrid)
y_signal = fonction_sawtooth(x,ramp=0.5)
[Link](x/[Link],y_signal,linewidth=1.0, color='black',)
[Link]('$x$ ($\pi$ unit)', fontsize=12, color='blue' )
[Link]('$f(x)$', fontsize=12, color='blue' )
on peut déterminer analytiquement les coefficients. On obtient ꞉
1
a0 = (4)
2
0 si n est pair
an = { (3) (5)
2
−4/(nπ) si n est impair
bn = 0 pour n ≥ 0 (6)
1. Dans un tableau 1D numpy appelé an stocker les valeurs des coefficients {an } (équation ) pour
(3) n = 0, 1..., nmax (inclu)
avec .
nmax = 3
In [ ]: #an = [Link]﴾6﴿
1. A partir du tableau an calculer la décomposition en série de Fourier de (équation ) jusqu'à l'ordre . Pour ce f (x) (1) nmax = 3
faire on pourra utiliser une boucle. Représenter la série de Fourier et superposer le graphique de la fonction porte originelle.
In [ ]:
**Exemple de figure attendue ꞉** Alternative text
In [ ]:
1. Ecrire une fonction python appelée fourier_sawwave_coef qui étant donné l'ordre maximum calcul la liste des nmax
coefficients pour
{an } . Comme précédemment le an renvoyé par la fonction sera un tableau 1D numpy .
n = 0, 1, 2..., nmax
Remarque ꞉ le code permettant de tester si un entier est pair ou impair est donné ci‑dessous. Vous pouvez vous en
n
inspirer pour programmer votre fonction fourier_squarewave_coef .
In [ ]: n = 3
if (n%2 == 0):
print('even')
else:
print('odd')
In [ ]: #def fourier_sawwave_coef﴾nmax﴿:
# an = [Link]﴾6﴿
# ...
# return an
1. A partir des coefficients bn Calculer la série de Fourier (équation ). Tester votre programme pour (1) nmax = 5 puis pour
nmax = 80 . Représenter les résultats.
In [ ]:
**Exemple de figure attendue ꞉** Alternative text
1. Enfin, représenter {bn } en fonction de . On . A quoi correspond cette série de coefficients ?
n
In [ ]: