A la main nous savons exprimer le pgcd de deux "petits" nombres comme combinaison linéaire de ces nombres
Le but est de modifier l'algorithme d'Euclide afin d'obtenir cette combinaison linéaire
Copier coller le code Python suivant de l'algorithme d'Euclide
def pgcd(a,b):
r1 = a
r2 = b
while r2 != 0:
temp = r1
r1 = r2
r2 = temp % r1
return r1
a = int(input('Entrez un entier ')
b = int(input('Entrez un entier ')
print('le pgcd de ',a,' et ',b,' est :',pgcd(a,b))
On souhaite modifier l'algorithme précédent pour obtenir la combinaison linéaire du Théorème de Bezout
Sachant que r1 = r2 (r1//r2) + r1 % r2 (Théorème de la division euclidienne) et que r1 = au1+bv1 et r2 = au2 +bv2 en déduire une expression de r1 % r2 comme combinaison linéaire de a et b
Compléter le code suivant attention ce sont des variables dans un programme
def pgcd(a,b):
r1 = a
r2 = b
#r1 = au1 + bv1 et r2 = au2 + bv2
u1 = ...
v1 = ...
u2 = ...
v2 = ...
while r2 != 0:
#r1 = au1 + bv1 et r2 = au2 + bv2
temp = ...
u2 = ...
u1 = temp
temp = ...
v2 = ...
v1 = temp
temp = r1
r1 = r2
r2 = temp % r1
return r1,u1,v1
a = int(input('Entrez un entier ')
b = int(input('Entrez un entier ')
print('le pgcd de ',a,' et ',b,' est :',pgcd(a,b))
Nous allons découvrir à travers des exemples le calcul matriciel avec Python, on travaille à la console avec le module numpy
On entre deux matrices carrées d'ordre 2, M et N puis on calcule le produit MN
>>>import numpy as np
>>>M = np.array([[1,2],[3,4]])
>>>N = np.array([[-1,2],[-3,4]])
>>>P = np.dot(M,N)