
Développements limités
Une petite 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 math
x=0.002
print('Pour x=',x,', 1/(1+x) a pour valeur',1/(1+x))
print('----')
print('Calcul du DL de 1/(1+x)')
dl=1
for 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=1
un=1
n=30
for 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/4
un=0
n=30
for 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 harmonique
s=0
n=200
print('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ée
s=0
n=50
print('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 math
math.factorial(3)
Série de terme général (n²+1)/n!
import numpy as np
import math
un=0
n=11
for 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 math
import numpy as np
un=0
n=11
for 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 matrices
import numpy as np
from scipy import linalg
# Définition d'une matrice 2x2
A = np.array([(1,2),(3,4)])
print('Matrice A=')
print(A)
print('')
# chaque terme est multiplié par 3
print('produit de A par le réel 3 : 3A')
print(3*A)
print('')
# chaque terme est additionné à 10
print('A+10')
print(A+10)
print('')
# transposée
print('Transposée de A')
print(A.T)
print('')
#calcul de l'inverse de A
iA = 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 np
from scipy import linalg
# Produit de deux matrices A et B
A = np.array([(1,2),(3,4)])
B = np.array([(5,-3),(2,0)])
# Calcul de C=A.B
C=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 np
from 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ème
A = np.array([(1,2,3),(3,2,-3),(2,-1,-1)])
print('matrice du système linéaire')
print(A)
print('')
# Calcul du déterminant
detA=linalg.det(A)
print('determinant de A =',detA)
print('')
# Définition du second membre
B = np.array([(4),(8),(15)])
print('second membre =',B)
print('')
# Inverse de la matrice A
iA = linalg.inv(A)
print('inverse de A')
print(iA)
print('')
# Calcul de X
X=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 plt
from mpl_toolkits.mplot3d import axes3d # Fonction pour la 3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import 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 3D
fig = plt.figure(figsize=(10,10))
ax = plt.axes(projection='3d')
ax.plot_surface(X, Y, Z, cmap=cm.coolwarm, linewidth=0) # Tracé d'une surface
plt.title("Tracé d'une surface")
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.tight_layout()
plt.show()