```html
🎯 Objectifs
🧬 Contexte
En électricité, la loi d’Ohm relie la tension U aux bornes d’une résistance et l’intensité I qui la traverse :
U = R · I
Pour une résistance, la caractéristique U = f(I) est une droite passant par l’origine :
on dit que c’est un dipôle ohmique.
Pour une lampe, la caractéristique n’est pas une droite : sa « résistance » varie avec
l’échauffement du filament, c’est un dipôle non ohmique.
🌐 Outil utilisé
🔧 Consignes pour utiliser Capytale
Chaque programme doit être collé dans une cellule différente et exécuté séparément, pour progresser étape par étape : génération des valeurs → tracé pour la résistance → tracé comparatif et estimation de R.
import numpy as np
# Paramètres physiques
R = 100.0 # résistance ohmique en ohms (ex : 100 Ω)
# Intensités I en ampères (de 0 à 0,5 A par pas de 0,05 A)
I = np.arange(0, 0.51, 0.05)
# Dipôle 1 : résistance ohmique (U = R * I)
U_res = R * I
# Dipôle 2 : lampe (modèle non linéaire simplifié)
# On simule une lampe dont la tension augmente plus vite que R*I
U_lampe = R * I + 20 * I**2 # terme quadratique pour casser la linéarité
print("I (A) :", np.round(I, 3))
print("U_res (V) - Résistance :", np.round(U_res, 2))
print("U_lampe (V) - Lampe :", np.round(U_lampe, 2))
import matplotlib.pyplot as plt
plt.figure(figsize=(7,5))
plt.scatter(I, U_res, color="royalblue", label="Résistance (dipôle ohmique)")
plt.title("Caractéristique U = f(I) d'une résistance")
plt.xlabel("Intensité I (A)")
plt.ylabel("Tension U (V)")
plt.grid(True, alpha=0.3)
plt.legend()
plt.tight_layout()
plt.show()
# Tracé comparatif
plt.figure(figsize=(7,5))
plt.scatter(I, U_res, color="royalblue", label="Résistance (ohmique)")
plt.scatter(I, U_lampe, color="darkorange", label="Lampe (non ohmique)")
plt.title("Caractéristiques U = f(I) : résistance vs lampe")
plt.xlabel("Intensité I (A)")
plt.ylabel("Tension U (V)")
plt.grid(True, alpha=0.3)
plt.legend()
plt.tight_layout()
plt.show()
# Ajustement linéaire sur la résistance pour estimer R
a, b = np.polyfit(I, U_res, 1)
print(f"Pente a = {a:.2f} V/A, Ordonnée à l'origine b = {b:.2f} V")
# Superposition de la droite d'ajustement pour la résistance
I_fit = np.linspace(0, I.max()*1.05, 200)
U_fit = a * I_fit + b
plt.figure(figsize=(7,5))
plt.scatter(I, U_res, color="royalblue", label="Résistance (points)")
plt.plot(I_fit, U_fit, color="black", linestyle="--",
label=f"Ajustement : U = {a:.1f} I + {b:.1f}")
plt.title("Test de linéarité pour la résistance")
plt.xlabel("Intensité I (A)")
plt.ylabel("Tension U (V)")
plt.grid(True, alpha=0.3)
plt.legend()
plt.tight_layout()
plt.show()
# Estimation de la résistance
R_estimee = a
print(f"Résistance estimée R ≈ {R_estimee:.1f} Ω")
Nom du fichier : TP_caracteristique_dipoles
Dossier : SNT (ou Physique) sur le bureau de votre ordinateur.