La page ci-présente existe en version notebook téléchargeable grâce au bouton Bouton (choisir le format .ipynb). On rappelle qu’l faut ensuite l’enregistrer dans un répertoire adéquat sur votre ordinateur (capa_num par exemple dans votre répertoire personnel) puis lancer Jupyter Notebook depuis Anaconda pour accéder au notebook, le modifier et exécutez les cellules de code adéquates.

2.3. Dérivation et intégration : Méthode de base#

On se propose de mettre en place les calculs d’intégration et de dérivation sur des cas simples basés sur l’électrocinétique. On considère un circuit RC soumis à un échelon de tension E. La tension aux bornes du condensateur est alors:

u(t)=E(1et/τ)

avec τ=RC.

Pour la suite, on prendra E=1V;R=10kΩ;C=104F et donc τ=1s. On rappelle que:

  • L’intensité qui circule à travers le condensateur (et donc aussi la résistance) est donné par i=Cdudt

  • La puissance dissipée à un instant t par effet Joule est donné par P(t)=Ri2(t). L’énergie dissipée par effet Joule entre t0 et t1 est donc:

EJ=t0t1Ri2(t)dt

Dans ce cas, simple, on peut calculer analytiquement i(t) et EJ. Mais on va réaliser une dérivation puis une intégration numérique. L’intérêt sera de comparer ce qu’on trouve aux expressions analytiques.

2.3.1. Calcul de l’intensité.#

Exercice A:

  1. Importer les bibliothèques scientifiques numpy et matplotlib.pyplot.

  2. Ecrire deux instructions pour créer deux vecteurs tk et uk contenant respectivement les instants tk équirépartis entre 0 et 5s et les valeurs uk=u(tk) à ces instants. On prendra 1000 valeurs pour chaque vecteur.

  3. Ecrire une boucle avec son initialisation qui calcule les ik=i(tk) par un calcul dérivée à gauche avec un pas h=103s puis les ajoute à une liste ik.

  4. Transformer la liste ik en un vecteur numpy.

  5. Tracer sur un même graphique i(t) obtenu par dérivation numérique et i(t) obtenu par calcul analytique puis jouer sur le pas h pour voir si la dérivation est encore acceptable si on augmente h.

On rappelle que analytiquement, on trouve:

i(t)=ERet/τ

Exercice B:

  1. Reprendre les instructions précédentes et réaliser le calcul de la dérivation numérique par intégration à droite puis centrée. Comparer graphiquement à la solution analytique.

2.3.2. Calcul de l’énergie dissipée#

Exercice C:

  1. Ecrire une instruction pour créer un vecteur Pk contenant les puissances Pk=PJ(tk) dissipées par effet Joule dans R à chaque instant.

  2. Ecrire une boucle avec son initialisation qui calcule les Ek=EJ(tk), énergie dissipée entre t=0 et t=tk, par la méthode des rectangles à gauche avec un pas h=103s puis les ajoute à une liste Ek. Pensez à utiliser une récurrence.

  3. Transformer la liste Ek en un vecteur numpy.

  4. Tracer sur un même graphique EJ(t) obtenu par dérivation numérique et EJ(t) obtenu par calcul analytique puis jouer sur le pas h pour voir si la dérivation est encore acceptable si on augmente h.

On rappelle que analytiquement, on trouve:

EJ(t)=CE22(1e2t/τ)

Exercice D:

  1. Reprendre les instructions précédentes et réaliser le calcul de l’intégration numérique par intégration à droite, centrée puis par les trapèzes. Comparer graphiquement à la solution analytique.

2.3.3. A partir de données expérimentales.#

Les données expérimentales sont celle déjà utilisée précédemment et accessible par ce lien. On rappelle que la méthode d’importation d’un fichier est disponible ici.

Note

Si votre navigateur ouvre le fichier au lieu de le télécharger, faites un clic droit sur le lien et choisir Enregistrer la cible du lien.

Exercice E:

  1. Après avoir télécharger le fichier et l’avoir placé dans le bon répertoire, ouvrez le pour lire l’en-tête et la structure du fichier. Ecrire alors deux instructions : la première importe le fichier et crée deux vecteurs tk et ukb contenant les temps de mesure et les mesures de tension en bits et la seconde instruction qui transforme la liste ukb en une liste uk contenant les valeurs de tension en volt. S’aider de la ligne de commande proposée ci-dessous et de la description du fichier.

  2. Ecrire une boucle avec son initialisation qui calcule les ik=i(tk) par dérivation numérique (cf. remarque après) et qui le stocke dans une liste ik puis transformer la liste en un vecteur.

  3. Ecrire une boucle avec son initialisation qui calcule les Ek=EJ(tk), énergie dissipée entre t=0 et t=tk par intégration numérique et qui le stocke dans une liste Ek puis transformer la liste en un vecteur. On utilisera la méthode des rectangles (cf. remarque après).

  4. Tracer trois graphiques: u(t),i(t),EJ(t) sur trois graphiques différents (on utilisera soit trois fenêtres graphiques, soit un graphique multiple si on se sent à l’aise avec ce dernier).

  • Pour l’import, on rappelle la commande permettant de séparer les colonne en plusieurs variables:

temps, ucb = np.loadtxt('chemin_vers_fichier', skiprows=nlignes_a_sauter, delimiter="delimiteur de colonne", unpack=True)

  • Pour les méthodes numériques, on ne peut choisir ici le pas d’intégration car on ne connaît que des valeurs discrètes.

    • Dérivation numérique: le pas est imposé par les écarts entre les tk. De plus, comme précisé précédemment, vous devez utiliser une dérivée à droite en t0 et une dérivée à gauche en tfinal. Pour les instants intermédiaires, il est demandé d’utiliser une dérivée centrée.

    • Intégration numérique: le pas est à nouveau imposé par les tk. On utilisera la méthode des trapèzes pour l’intégration.