Mathématiques Expertes Terminale

Rejoignez la communauté !
Co-construisez les ressources dont vous avez besoin et partagez votre expertise pédagogique.
Nombres complexes
Ch. 1
Nombres complexes, point de vue algébrique
Ch. 2
Nombres complexes, point de vue géométrique
Arithmétique
Ch. 3
Divisibilité dans Z
Ch. 4
PGCD et applications
Ch. 5
Nombres premiers
Graphes et matrices
Ch. 6
Calcul matriciel et applications aux graphes
Ch. 7
Suites et matrices
Annexes
Cahier d'algorithmique et de programmation
Python

Graphes et matrices

Ce document est actuellement projeté sur le côté de votre écran.

1
Transposition de matrice

def transpose(M):
  T = []
  for i in range(...):
    ligne = []
    for j in range(...):
      ligne.append(...)
    T.append(ligne)
  return T
Ce document est actuellement projeté sur le côté de votre écran.

2
Matrices symétriques et antisymétriques





1. Compléter la fonction symétrique qui prend en argument une matrice carrée et qui retourne True si elle est égale à sa transposée et False sinon.


2. Écrire une fonction antisymétrique qui retourne True si la matrice est opposée à sa transposée et False sinon.


def symetrique(M):
  for i in range(len(M)):
    for j in range(len(M)):
      if ...
        return False
  return True
Ce document est actuellement projeté sur le côté de votre écran.

3
Produit et puissance de matrice





1. Compléter la fonction mult qui prend en argument deux matrices carrées de même dimension et et qui retourne la matrice .


2. En déduire la fonction puissance qui prend en paramètre une matrice carrée ainsi qu'un nombre entier et qui renvoie la matrice .


def mult(A, B):
  produit = []
  for i in range(len(A)):
    ligne = []
    for j in range(len(B)):
      p = 0
      for k in range(len(A)):
        p = ...
      ligne.append(p)
    produit.append(ligne)
  return produit

def puissance(A, n):
  An = A
  for i in range(2, n):
    An = ...
  return An
Ce document est actuellement projeté sur le côté de votre écran.

4
Matrices nilpotentes






1. En utilisant la fonction puissance écrite à l'exercice précédent, proposer une fonction nilpotente permettant de tester si une matrice carrée ayant lignes et colonnes est nilpotente. Cette fonction prendra en argument une matrice carrée et retournera True si la matrice est nilpotente et False sinon
Pour créer la matrice carrée de même taille contenant uniquement des 0, on pourra utiliser la ligne de code zero = [[0]*len(A) for i in range(len(A))]
Aide
2. Tester ce programme avec la matrice .


def comparaison(A,B):
  out = True
  for i in range(len(A)):
    for j in range(len(B)):
      if A[i][j]!=B[i][j]:
        out = False
  return out
Ce document est actuellement projeté sur le côté de votre écran.

5
Matrices idempotentes






On dit qu'une matrice carrée est idempotente lorsqu'elle est égale à l'une de ses puissances. On admet que si une telle puissance existe, elle est inférieure ou égale à l'ordre de la matrice.
En reprenant et en modifiant le programme de l'exercice précédent, proposer une fonction idempotente qui prend en argument une matrice carrée et qui renvoie True si cette matrice est idempotente et False sinon.


Ce document est actuellement projeté sur le côté de votre écran.

6
Matrices auto-inverses






On dit qu'une matrice carrée inversible est auto-inverse si, et seulement si, elle est égale à son propre inverse.

1. Montrer qu'une matrice auto-inverse est idempotente.


2. Écrire en Python un programme prenant en argument un entier naturel non nul et retournant la matrice identité d'ordre .


3. Compléter la fonction autoinverse qui prend en paramètre une matrice carrée et qui retourne True si elle est auto-inverse et False sinon.
On pourra se servir de la fonction mult des exercices précédents.
help

def autoinverse(M):
  return mult(M, M) == ...
Ce document est actuellement projeté sur le côté de votre écran.

7
Diviseurs






On considère le graphe non orienté dont les sommets sont les nombres entiers de 1 à 60 et construit de la manière suivante : ses sommets sont reliés par une arête si, et seulement si, l'un des deux nombres est divisible par l'autre.
Ainsi, les sommets 2 et 12 sont adjacents, mais pas les sommets 5 et 13.

1. Compléter le programme ci-après afin qu'il affiche le nombre d'arêtes de ce graphe.


2. On considère le graphe similaire d'ordre .
Écrire un programme Python prenant en argument l'entier et retournant le nombre d'arêtes de ce graphe.


3. On rappelle que tout entier est un diviseur de lui-même. Modifier le programme de la question précédente afin qu'il ne prenne en compte que les diviseurs stricts de chacun des nombres.

arete = 0
for i in range(1, 61):
  for j in range(...):
    if ... :
      arete = arete + 1
            
print(arete)
Ce document est actuellement projeté sur le côté de votre écran.

8
Degré des sommets d'un graphe






Soit la matrice d'adjacence d'un graphe dont les sommets sont des lettres de l'alphabet, les sommets étant rangés dans l'ordre alphabétique.
L'objectif de cet exercice est de classer les sommets par ordre décroissant du degré.

1. Compléter la fonction degres ci-dessous pour qu'elle retourne la liste des degrés de chaque sommet de la matrice d'adjacence .


2. À partir de la fonction tri donnée dans l'énoncé, classer les sommets du graphe ci-dessous par ordre décroissant de leur degré.


Graphes et matrices
Le zoom est accessible dans la version Premium.
Crédits :


def degres(M):
  n = len(M)
  degre = n*[0]
  for i in range(n):
    for j in range(n):
      degre[i] = ...
  return degre
 
def tri(sommets, degre):
  ordre = len(sommets)
  liste_sommets_tries = []
  for k in range(ordre):
    maximum = max(degre)
    index = degre.index(maximum)
    degre.pop(index)
    sommet_correspondant = sommets[index]
    liste_sommets_tries.extend(sommet_correspondant)
    sommets.pop(index)
  return liste_sommets_tries
 
sommets = ['A','B','C','D','E']
 
M = [[0,1,0,0,1],[1,0,1,0,1],[0,1,0,0,1],[0,0,0,0,1],[1,1,1,1,0]]
 
degre_des_sommets = degres(M)
print(degre_des_sommets)
 
print(tri(sommets,degre_des_sommets))
Ce document est actuellement projeté sur le côté de votre écran.

9
Déterminer le nombre d'arêtes manquantes pour qu'un graphe soit complet






On considère un graphe non orienté et sans boucle modélisé par sa matrice d'adjacence .

1. Énoncer une méthode pour déterminer, à partir de sa matrice d'adjacence, le nombre d'arêtes manquantes pour que le graphe soit complet.


2. Répondre au problème à l'aide d'une fonction Python.


3. Tester le programme avec la matrice .


Ce document est actuellement projeté sur le côté de votre écran.
Ce document est actuellement projeté sur le côté de votre écran.

11
Voisin de voisins

def sommets_proches(M):
  n = len(M)
  out = ...
  for i in range(n):
    for j in range(i+1, n):
      sommets_i_j_connectes = ...
      for k in range(n):
        if (M[i][k] == 1 and M[j][k] == 1):
          sommets_i_j_connectes = ...
      if (sommets_i_j_connectes == ...):
        out = ...
  return out
Ce document est actuellement projeté sur le côté de votre écran.

12
Vecteur propre et valeur propre






On dit qu'un vecteur non nul est un vecteur propre d'une matrice lorsqu'il existe un nombre réel tel que .

1. Vérifier que la fonction test_vecteur_propre ci-dessous, qui prend en argument une matrice carrée de taille 3 et un vecteur de taille 3, retourne True si le vecteur est un vecteur propre de et False sinon.
Un vecteur est une matrice colonne qui s'écrit [[x],[y],[z]] en Python.
Aide

2. Tester le programme avec la matrice et .


3. Généraliser la fonction ci-dessous à une matrice carrée et un vecteur de taille quelconque.


def mult(A,B):
  nbLignesA = len(A)
  nbColonnesA = len(A[0])
  nbColonnesB = len(B[0])
  produit = []
  for i in range(nbLignesA):
    ligne=[]
    for j in range(nbColonnesB):
      p=0
      for k in range(nbColonnesA):
        p= p + A[i][k]*B[k][j] 
      ligne.append(p)
    produit.append(ligne)
  return produit

def test_vecteur_propre(A, v):
  Av = mult(A, v)
  produit_en_croix_0 = Av[1][0]*v[2][0] - Av[2][0]*v[1][0]
  produit_en_croix_1 = Av[0][0]*v[2][0] - Av[2][0]*v[0][0]
  produit_en_croix_2 = Av[0][0]*v[1][0] - Av[1][0]*v[0][0]
 
  if produit_en_croix_0 == 0 and produit_en_croix_1 == 0 and produit_en_croix_2 == 0:
    return True
  else:
    return False
Ce document est actuellement projeté sur le côté de votre écran.

13
Suite de matrices






Soient un entier naturel non nul, une matrice carrée de taille , une matrice colonne à lignes et la suite de matrices colonnes définie par son premier terme et, pour tout entier naturel , .
Écrire une fonction suite en Python qui prend en argument les matrices , , et et qui retourne la matrice .


Une erreur sur la page ? Une idée à proposer ?

Nos manuels sont collaboratifs, n'hésitez pas à nous en faire part.

Oups, une coquille

j'ai une idée !

Nous préparons votre pageNous vous offrons 5 essais
collaborateur

collaborateurYolène
collaborateurÉmilie
collaborateurJean-Paul
collaborateurFatima
collaborateurSarah
Utilisation des cookies
Lors de votre navigation sur ce site, des cookies nécessaires au bon fonctionnement et exemptés de consentement sont déposés.