Scripts Python pour les maths et les sciences pour l’ingénieur


  1. Développements limités
  2. Suites et séries numériques
  3. Calcul matriciel
  4. Fonctions de plusieurs variables

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)

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)))

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)
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('')

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()