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.

Si vous vous sentez suffisamment à l’aise, vous pouvez passer directement à l’étude approfondie.

1.4. Implémentation basique#

Nous allons ici implémenter sans utiliser de fonction les deux méthodes de recherche de racine pour réaliser la recherche d’un point de fonctionnement et étudier le redressement monoalternance.

1.4.1. Position du problème.#

On considère un générateur idéal de tension délivrant une tension E branché en série avec une résistance R=100Ω et une diode D dont la relation intensité tension est:

La loi des mailles s’écrit: ERi=uD soit ERuDR=Is(exp(uDVT)1). On doit donc rechercher l’intersection entre une droite et une exponentielle ce qui est n’est pas possible analytiquement. On va donc chercher la racine de la fonction:

f(u)=EuRIs(exp(uVT)1)

1.4.2. Etude préliminaire#

Exercice A:
On prend E=1V.

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

  2. Définir la variable E puis une fonction f_test qui renvoie la valeur de f pour une tension u donnée en argument de la fonction. (On définira E de manière globale hors de la fonction pour pouvoir modifier sa valeur par la suite. Pour le reste, on peut les définir dans la fonction.)

  3. Tracer la fonction f entre [1,1] et vérifier graphiquement qu’il n’y bien qu’une seule racine dans l’intervalle (Note: On peut démontrer que la fonction est strictement décroissante, on a donc bien unicité de la racine quand elle existe.)

1.4.3. Méthode par dichotomie#

Exercice B:
Ecrire une suite d’instruction:

  1. (Initialisation): Définir les bornes a et b initiales de l’intervalle de recherche et la précision prec recherche sur u (on prendra une précision de 106V.). _ Vous pouvez, au cas où tester si f(a) ou f(b) est nul et le cas échéant changer l’intervalle pour qu’il soit de longueur nulle (mais bon…)._

  2. (Boucle) : La boucle devra être réalisée tant que la largeur de l’intervalle [a,b] est supérieur à prec. Quel type de boucle utiliser ? A l’intérieur de la boucle:

    1. Calculer le milieu de l’intervale c et tester si f s’annule en c. Si c’est le cas, assigner c à a ET b (l’intervalle est alors de longueur nulle et la boucle se terminera).

    2. Sinon si f(a)f(c)<0, assigner c à b et recommencer.

    3. Sinon, assigner c à a et recommencer.

  3. Afficher la valeur du milieu du dernier intervalle cfinale et la valeur de f(cfinale). Vérifier la cohérence de la valeur obtenue avec le graphique tracé précédemment.

Exercice Bbis:
Reprendre la série d’instructions précédentes mais remplacer le critère d’arrêt de la boucle par un test sur le max(f(a),f(b)) qui doit être inférieur la précision choisie (106A). Obtient-on une valeur plus ou moins précise de la tension finale ?

Attention

L’observation précédente n’est pas une généralité. Suivant la pente de la fonction autour de 0, le test sur l’abscisse ou l’ordonnée seront plus ou moins performants. On peut d’ailleurs faire les deux si besoin.

1.4.4. Méthode de Newton#

La méthode de Newton n’étant pas officiellement au programme en physique, ne faire cette partie QUE si vous êtes suffisamment en avance (ET que vous avez fini la partie suivante).

Exercice C:

  1. (Initialisation) Choisir une valeur x0 dans l’intervalle de départ à stocker dans x0.

  2. (Boucle) Critère pour continuer : f(x0)>prec. On prendra une précision de 106A. Calculer x1 défini par la méthode de Newton et l’assigner à la variable x0.

  3. Vérifier que la valeur finale est cohérente avec les études précédentes.

  4. Ajouter un compteur aux deux méthodes (dichotomie et Newton) et comparer le nombre d’itération dans les deux cas.