Développements limités
Une activité ludique pour montrer qu’un nombre proche de 0 à la puissance n devient négligeable par-rapport à ce même nombre porté à la puissance n+1. On voit aussi la rapidité avec laquelle un nombre proche de 0 devient un terme infinitésimal quand il est porté à la puissance n.
print('Calcul de 0.13^i pour i entier de 1 à 50')print('-----')for i in range(51): print("pour i=", i, "on obtient", 0.13**i)
Développement limité de la fonction 1/(1+x) en x=-1
import mathx=0.002print('Pour x=',x,', 1/(1+x) a pour valeur',1/(1+x))print('----')print('Calcul du DL de 1/(1+x)')dl=1for i in range(1,10): dl=dl+((-1)**(i))*x**(i) print('ordre',i,'valeur du DL',dl)
Suites et séries numériques
Etude d’une suite arithmético-géométrique
#On étudie ici la suite un+1=1/3.un+4 et de premier terme uo=1un=1n=30for i in range(0,n): print('Pour n=',i,'Un vaut',un) i=i+1 un=1/3*un+4
Série de terme général 1/(n²-1)
#On étudie ici la de terme général 1/(n²-1)#cette série converge vers 3/4un=0n=30for i in range(2,n): print('Pour n=',i,'Somme des Un vaut',un) un=un+1/(i**2-1)
La série de terme général 1/n est appelée la série harmonique. Elle ne converge pas.
# Série harmoniques=0n=200print('valeur initiale de s : s=',s)for i in range(0,n-1): print('Pour n=',i,'s vaut',s) i=i+1 s=s+1/i
Série harmonique alternée, elle converge !
# Série harmonique alternées=0n=50print('valeur initiale de s : s=',s)for i in range(0,n+1): i=i+1 s=s+((-1)**(i-1))/i print('Pour n=',i,'s vaut',s)
Factorielle sur Python
import mathmath.factorial(3)
Série de terme général (n²+1)/n!
import numpy as npimport mathun=0n=11for i in range(1,n): un=un+(i*i+1)/math.factorial(i) print('Pour n=',i,'Somme des Un vaut',un)print('')print('3e-1=',3*np.exp(1)-1)
Série de terme général ln(cos(1/2**n))
import mathimport numpy as npun=0n=11for i in range(1,n): un=un+np.log(np.cos(1/2**i)) print('Pour n=',i,'Somme des Un vaut',un)print('')print('ln(sin2)/2',0.5*np.log(np.sin(2)))
Calcul matriciel
Opérations sur les matrices : définition d’une matrice, multiplication par un scalaire, transposée, inverse d’une matrice, produit de deux matrices
#Commandes de base pour la manipulation des matricesimport numpy as npfrom scipy import linalg# Définition d'une matrice 2x2A = np.array([(1,2),(3,4)])print('Matrice A=')print(A)print('')# chaque terme est multiplié par 3print('produit de A par le réel 3 : 3A')print(3*A)print('')# chaque terme est additionné à 10print('A+10')print(A+10)print('')# transposéeprint('Transposée de A')print(A.T)print('')#calcul de l'inverse de AiA = linalg.inv(A)print("Inverse de A")print(iA)print('Produit de A par son inverse : A.inv(A)')print(A.dot(iA))print('')
import numpy as npfrom scipy import linalg# Produit de deux matrices A et BA = np.array([(1,2),(3,4)])B = np.array([(5,-3),(2,0)])# Calcul de C=A.BC=A.dot(B)print('Matrice A=')print(A)print('Matrice B=')print(B)print('')print("C=A.B")print(C)
Résolution d’un système linéaire A.X=B. Si la matrice n’est pas inversible (déterminant nul), python donnera un matrice d’erreur de type « matrice singulière ». Une matrice singulière est une matrice dont le déterminant est nul.
import numpy as npfrom scipy import linalg# On veut résoudre le système A.X=B. On sait que la solution est X=inv(A).B avec inv(A) matrice inverse de A.# Définition de la matrice du systèmeA = np.array([(1,2,3),(3,2,-3),(2,-1,-1)])print('matrice du système linéaire')print(A)print('')# Calcul du déterminantdetA=linalg.det(A)print('determinant de A =',detA)print('')# Définition du second membreB = np.array([(4),(8),(15)])print('second membre =',B)print('')# Inverse de la matrice AiA = linalg.inv(A)print('inverse de A')print(iA)print('')# Calcul de XX=iA.dot(B)print('solution X =',X)print('')
Fonctions de plusieurs variables
Tracé de la fonction f(x,y)=x²+y²
import matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import axes3d # Fonction pour la 3Dfrom matplotlib import cmfrom matplotlib.ticker import LinearLocator, FormatStrFormatterimport numpy as np# Tableau pour les 3 axes#X, Y, Z = axes3d.get_test_data(0.05)x = np.linspace(-1, 1, 51)y = np.linspace(-1, 1, 41)X, Y = np.meshgrid(x, y)Z = X**2+Y**2# Tracé du résultat en 3Dfig = plt.figure(figsize=(10,10))ax = plt.axes(projection='3d')ax.plot_surface(X, Y, Z, cmap=cm.coolwarm, linewidth=0) # Tracé d'une surfaceplt.title("Tracé d'une surface")ax.set_xlabel('X')ax.set_ylabel('Y')ax.set_zlabel('Z')plt.tight_layout()plt.show()