{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#!/usr/bin/env python3\n",
    "# -*- coding: utf-8 -*-"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 2C16 Exercice 49 page 325 : INTERMEDIAIRE\n",
    "# Programme permettant de représenter et de modéliser la caractéristique U=f(I) d'un dipole"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Question a : Compléter les deux cellules suivantes selon les consignes puis les exécuter."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np                        \n",
    "from matplotlib import pyplot as plt\n",
    "\n",
    "# Définition de 2 listes pour les 2 variables I et U\n",
    "I=[.......................................] # I (en mA)\n",
    "U=[.......................................] # U (en V)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Affichage du nuage de points expérimentaux de coordonnées (I,U): U=f(I) \n",
    "plt.title('......')              # Titre du graphe\n",
    "plt.xlabel('.....')              # Légende axe I\n",
    "plt.ylabel('.....')              # Légende axe U\n",
    "plt.axis([...,...,...,...])      # Minimum et maximum des axes\n",
    "\n",
    "plt.plot(...,...,...,ms=10,label='U=f(I) exp')#Trace le nuage de points\n",
    "\n",
    "............                     # Affiche une grille\n",
    "............                     # Affiche la légende\n",
    "............                     # Affiche la figure"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Question b : Compléter les trois cellules suivantes selon les consignes puis les exécuter."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# La fonction np.polyfit(X,Y,1) modélise le nuage de points par la fonction y=a*x+b\n",
    "# Calcule les coefficients a et b et les range dans le tableau nommé Modele\n",
    "...... = np.polyfit(... , ... , ...)\n",
    "a,b = [coef for coef in ......] # Affecte les coefficients du modèle aux variables a et b               "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Choix du modéle linéaire et affichage de la modélisation de la caractéristique \n",
    "\n",
    "U_mod = [a*...  for i in I]      # Liste des ordonnées de la modélisation\n",
    "\n",
    "...................              # Titre du graphe\n",
    "...................              # Légende axe I\n",
    "...................              # Légende axe U\n",
    "...................              # Minimum et maximum des axes\n",
    "\n",
    "plt.plot(... , ... , ... ,ms=10,label='U=f(I) exp') # Trace le nuage de points\n",
    "plt.plot(... , ... , ... ,label='U=f(I) modélisé')  # Trace les points de coordonnées I et U_mod en bleu et reliés\n",
    "\n",
    "............                     # Affiche une grille\n",
    "............                     # Affiche la légende\n",
    "............                     # Affiche la figure"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "print('Expression du modèle') \n",
    "print('U(...) =',round(...,4),'......')   # Affiche l’équation du modèle en précisant les unités"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
