1 / 32

PROGRAMMATION SCIENTIFIQUE EN C

PROGRAMMATION SCIENTIFIQUE EN C. PRO-1027. Résolution de système d’équations linéaires. Affichage des résultats (tp 1 a) Élimination de Gauss Élimination de Gauss avec pivot Travail pratique 1 b. Affichage des résultats . Affichage de données réelles float epsilon1; double epsilon2;

badru
Download Presentation

PROGRAMMATION SCIENTIFIQUE EN C

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PROGRAMMATION SCIENTIFIQUE EN C PRO-1027

  2. Résolution de système d’équations linéaires • Affichage des résultats (tp 1 a) • Élimination de Gauss • Élimination de Gauss avec pivot • Travail pratique 1 b

  3. Affichage des résultats • Affichage de données réelles float epsilon1; double epsilon2; epsilon1 = 0.00000011921; epsilon2 = 0.00000000000000022204; printf("\n Valeur de epsilon1: %13.11f ",epsilon1); printf("\n Valeur de epsilon2: %22.20f ",epsilon2);

  4. Élimination de Gauss • Exemple de système d’équations linéaires • Un alliage est composé de manganène, silice et de cuivre • Cet alliage est composé de 15 livres de Mn, 22 livres de Si et 39 livres de Cu par tonne d’alliage • Les ingrédients de l’alliage (Mn, Si, Cu) sont extraits de minerai provenant de 3 fournisseurs différents • De plus, la concentration des ingrédients est différente pour les 3 minerais

  5. Élimination de Gauss • Nous voulons alors déterminer quelle quantité de minerai nous devons acheter de chaque fournisseur pour éviter l’achat inutile d’ingrédient

  6. Élimination de Gauss • Pour trouver une solution à ce problème nous devons définir les variables suivantes: • Xj: la quantité de minerai achetée du fournisseur j (tonne de minerai) • Ci: la quantité d’ingrédient i par tonne d’alliage (lb/ tonne d’alliage) • aij: la quantité d’ingrédient i par tonne de minerai achetée du fournisseur j (lb/tonne de minerai)

  7. Élimination de Gauss • Nous pouvons déduire une expression générale pour le calcul des Ci • m représente le nombre d’ingrédients et n le nombre de fournisseurs

  8. Élimination de Gauss • Le problème précédent peut être représenté par un système d’équations linéaires de la forme • La solution de ce système correspond aux quantités de minerai à acheter de chaque fournisseur

  9. Élimination de Gauss • Détermination des courants dans un circuit électrique

  10. Élimination de Gauss • Forme générale d’un système d’équations linéaires

  11. Élimination de Gauss • Solution de 2 équations (n=2) • Isolons X2 de la seconde équation • Substituons X2 de la première équation

  12. Élimination de Gauss • Nous pouvons alors isoler X1 • Nous pouvons alors déduire X2 par

  13. Élimination de Gauss • Classification des systèmes d’équations • Systèmes ayant des solutions • Systèmes sans solution • Systèmes avec une infinité de solutions

  14. Élimination de Gauss

  15. Élimination de Gauss • L’élimination de Gauss est similaire à la procé-dure de substitution utilisée précédemment pour déduire les valeurs de X1 et X2 • L’élimination consiste à effectuer un ensemble d’opérations valides sur les équations pour arriver à obtenir une matrice dont la partie triangulaire inférieure (sous la diagonale) est nulle et une diagonale à 1 (Gauss-Jordan) • Nous pouvons alors isoler chacune de nos inconnues

  16. Élimination de Gauss • Opérations valides sur les équations • Permuter deux équations • Multiplier ou diviser une équation par une constante • Additionner deux équations ensembles

  17. Élimination de Gauss • Représentation matricielle d’un système d’équations linéaires

  18. Élimination de Gauss • Représentation sous forme de matrice augmen-tée

  19. Élimination de Gauss • La procédure d’élimination de Gauss est subdi-visée en une phase d’élimination avant suivie d’une phase de substitution arrière. Avec l’élimination avant nous obtenons un système

  20. Élimination de Gauss • Si nous réinsérons les inconnues nous obtenons le système d’équations suivant

  21. Élimination de Gauss • A partir du système précédent, nous pouvons déduire les inconnues Xi en commençant par l’inconnue Xn et par substitution arrière les autres inconnues X1 … Xn-1

  22. Élimination de Gauss • L’élimination de Gauss appliquée à un circuit électrique (phase d’élimination avant)

  23. Élimination de Gauss • Algorithme d’élimination de Gauss (élimination avant) Entrées: matrice A de nxn et un vecteur C de n éléments Élimination avant POUR j=1à n-1 FAIRE /* Pour chaque élément de la diagonale */ POUR i=j+1 à n FAIRE /* Pour chaque rangée sous la diagonale */ mij = aij/ajj aij = 0; Ci = Ci - mij * Cj POUR k = j+1 à n FAIRE /* Pour les éléments restant de la rangée i */ aik = aik - mij * ajk

  24. Élimination de Gauss • Algorithme d’élimination de Gauss (substitution arrière) Substitution arrière POUR i= n à 1 FAIRE xi=Ci POUR j=i+1 à n FAIRE xi = xi - aij * xj xi = xi/aii Sortie: vecteur x des solutions

  25. Élimination de Gauss • Problèmes d’erreurs • Représentation des nombres • Utilisation de pivot très petit (division par 0) • Pour minimiser ces problèmes nous pouvons utiliser l’élimination de Gauss avec pivot

  26. Élimination de Gauss • Problèmes d’erreurs (exemple) • En arithmétique exacte, la première étape de l’élimination donne

  27. Élimination de Gauss • Problèmes d’erreurs (exemple) • La dernière étape produit un élément diagonal a22 nul • L’élément pivot (diagonal) de la prochaine étape est donc nul • Le rapport m23 = 3/0 ce qui cause erreur de division par 0

  28. Élimination de Gauss • Nous pouvons corriger cette anomalie en permutant les rangées 2 et 3 permettant de déduire le vecteur solution exacte

  29. Élimination de Gauss • Sur l’ordinateur, les rapports 2/7 et 3/7 ne sont pas représentés avec exactitude ce qui produit un élément diagonal a22 très petit. L’élimination avant peut quand même se poursuivre produi-sant des solutions erronnées

  30. Élimination de Gauss avec pivot • Pour éviter les problèmes liés à l’utilisation de pivots petits nous devons avant chaque étape de l,élimination chercher la rangée dont la valeur pivot est maximale Élimination avant POUR j=1à n-1 FAIRE /* Pour chaque élément de la diagonale */ trouver_pivot(n,j,A,kp)./*rangée où se trouve le pivot max */ Permuter les rangées j et kp POUR i=j+1 à n FAIRE /* Pour chaque rangée sous la diagonale */ mij = aij/ajj aij = 0; Ci = Ci - mij * Cj POUR k = j+1 à n FAIRE /* Pour les éléments restant de la rangée i */ aik = aik - mij * ajk

  31. Élimination de Gauss avec pivot trouver_pivot(n,j,A,kp) pivot = abs(A[j][j]) kp=j POUR i=j+1à n FAIRE /* Pour chaque rangé sous la diagonale */ SI abs(A[i][j])>pivot ALORS pivot = abs(A[i][j]) kp = i FINSI FIN POUR

  32. Travail pratique 1b

More Related