TP - GRAM - SCHMIDT - Jupyter Notebook

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 2

28/02/2023 21:54 TP_GRAM_SCHMIDT - Jupyter Notebook

# Algorithme de Gram-Schmidt                                          
## Orthonormalisation                                                                                 OUBOUDRAR ISMAIL

les formules de Gram-Schmidt, on voit qu’on a besoin :


   
  *produit scalaire
  *soustraction dans E
  *multiplication d’un vecteur de E par un réel

Entrée [ ]:

import numpy

from sympy import *

init_printing()

La fonction gram schmidt


Entrée [ ]:

def gram_schmidt(B, E):


ps, sub, mul = E
n = len(B)
B1 = [B[0]]
for k in range(1, n):
u = B[k]
for j in range(k):
mu = ps(B[k], B1[j]) / ps(B1[j], B1[j])
u = sub(u, mul(mu, B1[j]))
B1.append(u)
return B1

Entrée [ ]:

Entrée [12]:

def est_orthogonale(B, E):


n = len(B)
ps = E[0]
for i in range(n):
for j in range(n):
if j != i and ps(B[i], B[j]) != 0:
return False
return True

Orthonormalisation
Entrée [10]:

def normaliser(u, E):


ps, sub, mul = E
return mul(1 / sqrt(ps(u, u)), u)

Entrée [11]:

def orthonormer(B, E):


return [normaliser(u, E) for u in B]

# Exemple
Entrée [13]:

E1 = (
lambda u, v: u.dot(v),
lambda u, v: u - v,
lambda t, u: t * u)

localhost:8888/notebooks/Downloads/TP_GRAM_SCHMIDT.ipynb 1/2
28/02/2023 21:54 TP_GRAM_SCHMIDT - Jupyter Notebook

Entrée [14]:

ps1 = E1[0]
print('produit scalaire :')
p=ps1(Matrix([1,2,3]), Matrix([4,5,6]))
p

produit scalaire :

Out[14]:

32
Entrée [15]:

sub1 = E1[1]
print("soustraction")
sub1(Matrix([1, 2, 3]), Matrix([2, 1, 4]))

soustraction

Out[15]:

 −1 
 1 
 −1 
soit la base ((1, 2, 3),(4, 5, 6),(7, 8, 8)).

Entrée [16]:

B1=E1[2]
B1 =([Matrix([1,2,3]),Matrix([4,5,6]),Matrix([7,8,8])])
B1

Out[16]:

 1   4   7 
 2  ,   5  ,   8 
 3   6   8 
Entrée [ ]:

Orthogonalisons gram schmit

Entrée [17]:

B2 = gram_schmidt(B1, E1)
B2

Out[17]:

 1   127   − 16 
   3   1 
 23  ,   −76  ,   −31 
7 6
Entrée [41]:

est_orthogonale(B2, E1)

Out[41]:

True

Entrée [18]:

orthonormer(B2, E1)

Out[18]:
 √14   4√21   − √6 
 √1414  ,   √2121  ,   √66 
 3√714   221√21   3√6 
 14   − 21   − 6 
Entrée [ ]:

localhost:8888/notebooks/Downloads/TP_GRAM_SCHMIDT.ipynb 2/2

Vous aimerez peut-être aussi