Upload
amedee-jacquot
View
112
Download
0
Embed Size (px)
Citation preview
Rappel...
• Matrices bloc.
• Décomposition des matrices:- décomposition LU - application: réseau de résistances
Aujourd’hui
• Solution itérative de systèmes linéaires.
– Méthode de Jacoby
– Méthode de Gauss-Seidel
• Application à l’infographie.
6. Solution itérative de systèmes linéaires
• Solutions d’un système linéaire
– méthodes directes (triangularisation,…)– méthodes itératives (approchent
numériquement la solution)
Pourquoi les méthodes itératives?
• Si la matrice est grande et avec beaucoup d’entrées nulles (« sparse »), le calcul itératif peut s’avérer beaucoup plus efficace.
Problème à résoudre
• On veut résoudre:
Ax = b
• On pose:
A = M - N
• On a alors:
(M - N)x = b
Mx - Nx = b
Mx = Nx + b
Récurrence
• De façon générale, on cherche à calculer:
Mx(k+1) = Nx(k) + b, k = 0, 1, 2,…
avec A = M - N
Récurrence (suite)
• On veut avoir:
x(k+1) x* (la solution)
• Il faut choisir M afin que x(k+1) soit facile à calculer.
Méthode de Jacoby
• On suppose que la diagonale de A n’a pas d’éléments nuls.
• Soit D la matrice diagonale formée à partir de la diagonale de A.
• M = D, N = D - A
Méthode de Jacoby (suite)
Dx(k+1) = (D - A)x(k) + b, k = 0, 1, 2,…
• On pose x(0) = 0.
– En pratique, on peut utiliser autre chose selon les informations disponibles.
Méthode de Gauss-Seidel
• On pose M = partie triangulaire inférieure de A.
Mx(k+1) = (M - A)x(k) + b, k = 0, 1, 2,…
Jacoby c. Gauss-Seidel
• Jacoby est quelques fois plus rapide que Gauss-Seidel, mais en général, c’est le contraire.
• Traitement parallèle: Jacoby est plus rapide.
Convergence
• Parfois, l’une ou les deux méthodes ne convergent pas.
• Une condition permet de garantir la convergence:– la valeur absolue d’un élément de la diagonale est
plus grande que la somme des valeurs absolues des autres éléments de la ligne correspondante.
Calcul manuel
• Pour le calcul manuel, il est plus simple d’utiliser la récursion:
x(k+1) = M-1Nx(k) + M-1b, k = 0, 1, 2,…
• On évite ainsi d’avoir à résoudre en système n n à chaque itération.
Calcul manuel (suite)
• La façon la plus rapide de calculer M-1N etM-1b est de faire:
[ M N b] ~ [I M-1 N M-1b]
7. Application à l’infographie
• On retrouve un peu partout des applications de l’infographie:– jeux sur ordinateurs– effets spéciaux au cinéma– logiciel de dessin
• On représente parfois, de façon simplifiée, des figures par un ensemble de lignes: « wire frame »
Exemple: canette
Exemple 2D
• La lettre N peut être représentée par deux vecteurs de coordonnées:
x = [0.0 0.5 6.0 5.5 0.5 0.0 5.5 6.0]
y = [0.0 0.0 0.0 1.58 6.42 8.0 8.0 8.0]
• Il faut aussi spécifier les lignes entre les points.
Transformations linéaires
• La transformation linéaire d’un segment donne un autre segment.
• On peut effectuer des opérations sur les figures en multipliant les coordonnées par une matrice 2 2.
Coordonnées homogènes
• Avec les matrices 2 2, on ne peut pas faire de translation.
• Solution: coordonnées homogènes.
Coordonnées homogènes (suite)
• À chaque point (x, y) dans R2, on peut faire correspondre un point (x, y, 1) dans R3.
• Ces coordonnées peuvent être modifiées par une matrice 3 3.
Rotations
y
x
(cos(), sin())
(-sin(), cos())
x
z
y(0.866, 0, -0.5)
(0, 1.0, 0)
(0.5, 0, 0.866)
Rotation de 30o autour de l’axe y
z
x
y
0
(x*, y*, 0)
(x, y, z)
(0, 0, d)
z0
d - z
x
x*
Projection de (x, y, z) sur (x*, y*, 0)
Projection en perspective
• (x, y, z) (x*, y*, 0).
• x*/d = x/(d - z) x* = x/(1 - z/d)
• y*/d = y/(d - z) y* = y/(1 - z/d)
Projection en perspective (suite)
• La projection transforme
(x, y, z, 1) (x/(1 - z/d), y/(1 - z/d) , 0, 1)
• Si on multiplie par (1 - z/d):
(x, y, z, 1) (x, y , 0, 1 - z/d )
Applets Java
• http://www.gel.ulaval.ca/~fortier/MAT19961/Demo/lettre/
• http://www.gel.ulaval.ca/~fortier/MAT19961/Demo/homog/
Prochain cours...
• Sous-espaces de Rn
– Définition– Sous-espaces associés à une matrice– Bases– Coordonnées– Dimension– Rang