Adloun

Informatique et algorithmique

Cours · mathématiques approfondies (ECG 1re année), chapitre 11 · prépa ECG, 1re année · le début du chapitre, la suite sur Adloun

Un programme dans un éditeur de code : des instructions exécutées de haut en bas.

En ECG, l'informatique n'est pas une matière séparée : l'intitulé officiel du programme est « mathématiques approfondies – informatique ». Son rôle est énoncé sans ambiguïté — dès qu'un calcul numérique est envisagé, dès qu'un problème incite à tester expérimentalement un résultat, dès qu'une situation aléatoire peut être simulée, le recours à l'ordinateur doit devenir naturel.

AttentionCe qui est exigible

Le langage est Python. Seules les commandes figurant dans la liste ci-dessous sont exigibles, et leur syntaxe précise sera rappelée dans les énoncés. On peut en employer d'autres, mais avec parcimonie : l'objectif reste la mise en pratique des mathématiques, pas la virtuosité en Python. Les commandes break et continue ne sont pas exigibles.

11.1 Structures de programmation

Python : Les quatre structures


if condition:          # structure conditionnelle
    ...
elif autre_condition:
    ...
else:
    ...

for k in range(a, b):  # boucle inconditionnelle
    ...
for x in T:            # T : matrice, vecteur ou chaine de caracteres
    ...

while condition:       # boucle conditionnelle
    ...

def f(x, y):           # definition d'une fonction
    ...
    return ...
ImportantLa discipline avant la virtuosité

Découper en fonctions, commenter à bon escient, tester. Un commentaire utile dit pourquoi, pas quoi : # on s'arrête quand le reste est majoré par eps vaut mieux que # boucle while.

11.2 Les commandes exigibles

Python : Vecteurs, matrices, et opérations élément par élément


import numpy as np
import numpy.linalg as al

M = np.array([[1., 2.], [3., 4.]])
print(np.shape(M))                 # (2, 2)
print(M * M)                       # coefficient par coefficient !
print(np.dot(M, M))                # LE produit matriciel
print(al.inv(M), al.rank(M))
print(al.matrix_power(M, 5))
print(al.solve(M, np.array([1., 2.])))     # resout MX = B

Exercices du chapitre

La suite du cours · Tous les exercices du chapitre