import math as m import matplotlib.pyplot as plt from mpl_toolkits.mplot3d.axes3d import Axes3D import numpy as np # Constantes mu0=4*m.pi*10**(-7) rho=17*10**(-9) def B(N,U,s,l): return (mu0*(N*U*s)/(rho*l**2)) def champs_mag(L,R,s,e) : #L,R,e,s # Circuit # U=0 # Tension aux Bornes de la Bobine # Bobine #L=10 # Longueur de la Bobine #e=0.5 # Diamètre du Tube #R=3 # Rayon de la Bobine r=R-e # Distance Tube/Bobine circ=0 # Circonférence de la Bobine # Fil #s=0 # Section du fil d=2*m.sqrt(s/m.pi) # Diamètre du fil l=0 # Longueur du fil N=0 # Nombre de Spires NE=0 # Nombre de Spire par étages E=0 # Nombre d'étage #d=2*m.sqrt(s/(m.pi)) while (NE*d <= L-d): # Calcul du nombre de tours dans la longueur NE+=1 while (E*d <= r-d): # Calcul du nombre d'étages E+=1 N=NE*E for k in range (0,E): circ=(k*d+d/2+e)*m.pi l=l+NE*circ print(NE,l) return (N,l) def graphe(lmax,emax,U,s) : X = [] Y = [] Z = [] d=2*m.sqrt(s/m.pi) for i in range (1,lmax) : for j in range (1,emax) : X.append(i) Y.append(j) (N,l)=champs_mag(i,j,s,e) Z.append(B(N,U,s,l+0.001)) #return(len(X),len(Y),len(Z),X,Y,Z) fig = figure() ax = Axes3D(fig) X, Y = np.meshgrid(X, Y) ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='spectral') show()