Analyse Numérique – TP

313 vues

Publié le

Analyse Numérique – TP

Publié dans : Ingénierie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
313
Sur SlideShare
0
Issues des intégrations
0
Intégrations
15
Actions
Partages
0
Téléchargements
3
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Analyse Numérique – TP

  1. 1. Université de Béchar Département de Génie Electrique Année Universitaire - (2015-2016) Pr. TAMALI Mohammed, SimulIA/ENERGARID Lab Analyse Numérique – TP 1 : Prise de contact & Introduction I) Dans le cadre de la préparation des étudiants à se faire connaitre par l’enseignant, nous entamant, à la surprise des jeunes invités, un sondage regroupant des questions ciblées. Document Questionnaire : Nom : ……………………………………………………………………………………………… (Pour NOM, indiquer ce que vous aimer entendre comme surnom, nom civil) Age : (Pour AGE, indiquer ce que vous estimez avoir comme âge –Biologique ou autre) Que préférez-vous :  La Verticale  L’horizontale? (Pour ce choix, indiquer votre préférence sans trop réfléchir) Travailler en groupe :  Oui  Non ? (Pour cette précision, indiquer combien vous vous comportez dans un groupe pour une tâche) Quelle couleur préférez-vous? ……………………………………………………………………… (Pour COULEUR, indiquer la couleur qui rassemble, le plus d’émotions pour vous) Si on vous demande de faire une caricature de votre enseignant, que dessinez-vous ? (Le dessin est un moyen d’expression, on utilisera la symbolisation, le texte, le sujet du dessin par rapport au sujet dessiné) II) Manipulation (identification des capacités et compétences) Dans cette section, il est question de fleurer et d’identifier les capacités et les compétences moyennes Cp de la promotion d’étudiants de l’année universitaire en cours (Par défaut, chaque année n’est typique qu’à elle-même, on peut avoir des surprises). Dans la réalité des choses, nous sommes tout le temps confrontés à des situations nouvelles où il est judicieusement nécessaire de prendre une décision. Les mauvais jugements influencent toujours et inévitablement des résultats non-attendus dans le système provoquant ainsi des pertes en ressources, en temps et en stratégies. Faute de définition juste de la vraie question … ? Les méthodes éducatives jugées, à un instant donné, valables pour une prise en considération du système universitaire sont nettement soupçonnées comme à l’origine des éventuelles qualifications des fondements de manœuvres et travaux à entreprendre et par conséquent, des buts tracés. La pédagogie c'est l'art d'enseigner ou les méthodes d'enseignement propres à une discipline, à une matière, à un ordre d'enseignement, à un établissement d'enseignement ou à une philosophie de l'éducation. La didactique est le fondement théorique des pédagogies adoptées. Etude de cas : Cas d’un système électro-énergétique Cas de la décharge de Béchar ville Briquette combustible=Déchets+coke de charbon
  2. 2. Université de Béchar Département de Génie Electrique Année Universitaire - (2015-2016) Pr. TAMALI Mohammed, SimulIA/ENERGARID Lab Analyse Numérique – TP 2 : Systèmes linéaires I) Présentation des outils. Soit à résoudre un système linéaire de n équations à n inconnues, ceci consiste à trouver n nombres, réels ou complexes, x1, · , xn, tels que: a11x1 + a12x2 + · · · + a1nxn = b1 a21x1 + a22x2 + · · · + a2nxn = b2 . . . an1x1 + an2x2 + · · · + annxn = bn La méthode de Gauss consiste à déterminer une matrice P telle que le système équivalent PAX = Pb soit triangulaire supérieure et donc simple à résoudre. La résolution d’un système triangulaire supérieure est aisée par la procédure de remontée. Algorithme de l’élimination de GAUSS AX=b Pour k=1 jusqu’à n-1 Pivot  akk Si pivot0 Alors Pour i=k+1 jusqu’à n faire bibi – (aik/pivot)*bk Pour j=k+1 jusqu’à n faire aijaij – (aik/pivot)*akj Fin j Fin i Sinon ‘Problème’ Fin k Algorithme de la remontée UY=f U Triangulaire supérieure Pour i=n à 1 pas de -1 faire s=fi pour j=i+1 à n faire s=s-uij*yj fin j yi=s/uii fin i II) Manipulation Soit le programme équivalent en FORTRAN 90/95 (A vérifier sous CodeBlock) PROGRAM Gauss !Solution d’un system de N équations linéaires !Forme matricielle A.X = B PARAMETER (IN=20) REAL:: A(IN,IN), X(IN), B(IN), F, SUM1 INTEGER:: K, I, J, N, IN !Lecture et saisie des coefficients de A et de C PRINT *,"Introduire le nombre d'equations (N):" READ (5,*) N PRINT *,"Saisir les coefficients de la matrice A(I,J):" READ (5,*) ((A(I,J),J=1,N),I=1,N) PRINT *,"Introduire les composantes du vecteur B(I):" READ (5,*) (B(I),I=1,N) !Décomposition (Elimination) DO I = 1, N DO J = 1, N WRITE(*,*) A(I,J) ENDDO WRITE(*,*) B(I) ENDDO DO K = 1, N-1 DO I = K+1, N F = A(I,K)/A(K,K) DO J = K+1, N A(I,J) = A(I,J) - F * A(K,J) ENDDO B(I) = B(I) - F * B(K) ENDDO ENDDO ! Remontée X(N) = B(N) / A(N,N) DO I = N-1, 1, -1 SUM1 = 0.0 DO J = I+1, N SUM1 = SUM1 + A(I,J) * X(J) ENDDO X(I) = (B(I) - SUM1)/A(I,I) ENDDO !Impression des résultats PRINT *,"Solution du probleme AX=B" WRITE (6,*) ("X(",I,")=",X(I),I=1,N) STOP END PROGRAM Gauss La condition nécessaire pour que le système ait une solution est que le déterminant soit différent de zéro. Vérifier avec : A=[1 1 1; 2 0 3; 3 1 4] et b = [ 2 5 6]T A=[1 1; 1 1.01]; b=[2; 2.01]; (On changera A(1,2)=1.005;) On utilisera les fonctions det, rank, pinv et cond, Discuter.
  3. 3. Université de Béchar Département de Génie Electrique Année Universitaire - (2015-2016) Pr. TAMALI Mohammed, SimulIA/ENERGARID Lab Analyse Numérique – TP 3 : Systèmes linéaires I) Présentation des outils. Soit à résoudre un système linéaire de n équations à n inconnues, ceci consiste à trouver n nombres, réels ou complexes, x1, · , xn, tels que: a11x1 + a12x2 + · · · + a1nxn = b1 a21x1 + a22x2 + · · · + a2nxn = b2 . . . an1x1 + an2x2 + · · · + annxn = bn La méthode de Gauss-Jordan consiste à transformer la matrice ajoutée telle que le système équivalent [A|b] soit équivalent, après des opérations de normalisation/réduction, à [I|b’], I étant la matrice unité. Pour k allant de 1 à n Si existe une ligne ik telle que (aik)k-1 0: échanger cette ligne i et la ligne k (li  lk) Pour i allant de 1 à n et ik Sinon A n'est pas inversible, abandonner (on sait ici que le rang de la matrice est k−1) Après l'étape k de l'algorithme, la colonne k a tous ces coefficients nuls sauf un : celui de la diagonale, qui vaut 1. II) Manipulation Soit le programme équivalent en FORTRAN 90/95 (A vérifier sous CodeBlock) program gauss_Jordan integer::i,j,n,k real::pivot,s real,allocatable::a(:,:) real,allocatable::b(:) ! Lecture et saisie des coefficients de A et de C PRINT *, "Introduire le nombre d'équations (N):" READ (5,*) N allocate(A(N,N),B(N)) PRINT *,"Introduire les coefficients de la matrice [A(I,J)]:" READ (5,*) ((A(I,J),J=1,N),I=1,N) PRINT *,"Introduire les composantes du vecteur [B(I)]:" READ (5,*) (B(I),I=1,N) do k=1,N,1 do i=1,n,1 if (k==i) then pivot=a(i,k) do j=k,n,1 a(i,j)=(a(i,j))/(pivot) end do b(k)=(b(k))/(pivot) else pivot=a(i,k) do j=k,n,1 a(i,j)=a(i,j)-pivot*a(k,j) end do b(i)=b(i)-pivot*b(k) end if end do end do !calcul de la solution do i=n,1,-1 do j=i-1,1,-1 s=a(j,i) do k=j,n,1 a(j,k)=a(j,k)-s*a(i,k) end do b(j)=b(j)-s*b(i) end do end do do i=1,n,1 write(*,*) "x",(i),"=",b(i) end do write(*,*)"bn" write(*,*) a end program gauss_Jordan La condition nécessaire pour que le système ait une solution est que le déterminant soit différent de zéro. Vérifier avec : a=[2 1 -1; -3 -1 2; -2 1 2] x = mldivide(a,b). On utilisera les fonctions mldivide, Discuter. 1 1 1    k kk kk k k l a l k k k ik k i k i lall 11  
  4. 4. Université de Béchar Département de Génie Electrique Année Universitaire - (2015-2016) Pr. TAMALI Mohammed, SimulIA/ENERGARID Lab Analyse Numérique – TP 3 : Systèmes linéaires Méthodes Itératives Program Gseidel parameter(ITERMAX=500) ! Nombre maximal des itérations Integer:: N, Iter, i, j, Sol Real,allocatable:: A(:,:) Real,allocatable:: X(:), B(:) Real Xs, Dmax, Eps ! Lecture et saisie des coefficients de A et de C PRINT *, "Introduire le nombre d‘équations (N):" READ (*,*) N allocate(A(N,N),B(N),X(N)) PRINT *,"Introduire les coefficients de la matrice [A(I,J)]:" READ (*,*) ((A(I,J),J=1,N),I=1,N) PRINT *,"Introduire les composantes du vecteur [B(I)]:" READ (*,*) (B(I),I=1,N) ! Saisie de l’estimé initial PRINT *,"Introduire le vecteur estime initial [X(0)]:" READ (*,*) (X(I),I=1,N) PRINT *,"Introduire la valeur du Epsilon" READ (*,*) Eps ! Initialisation des itérations Iter=0 Dmax=0. Sol=2 do while (Sol == 2) Do i=1,N Xs = X(i) S=0 Do j=1,N If (j /= i) then S = S + A(i,j)*X(j) End if End do X(i) = (B(i)-S)/A(i,i) Xs = ABS(X(i) - Xs) ! Test sur la valeur de l’écart par rapport à Dmax If (Xs > Dmax) then Dmax = Xs End if End do If (Dmax > Eps) then Iter=Iter + 1 If (Iter>ITERMAX) Then Sol=-1 End if Else ! Le calcul converge, solution existe PRINT *, "Vecteur solution X est donne par :" Do i=1,N Print *,"X(",i,") = ",X(i) End do Sol=0 End if End do End program GSeidel
  5. 5. Université de Béchar Département de Génie Electrique Année Universitaire - (2015-2016) Pr. TAMALI Mohammed, SimulIA/ENERGARID Lab Analyse Numérique – TP 4 : Systèmes linéaires Méthodes Variationnelles – Résolution des systèmes non linéaires program NR real, parameter::error =1e-4 integer::k real::xo,x1,f,fd read*,xo k=1 10 x1=xo-(f(xo)/fd(xo)) if (abs((x1-xo)/x1)<error)then print*,“La racine est égale a “ print*, x1 print*, " obtenue en iteration=", k else xo=x1 print*,“Estime suivant “, x1, “ iteration=", k k=k+1 goto 10 endif End program NR real function f(x) ! procédure function evaluation de f real::x f = x**3-x-1 End real function fd(x) ! procédure function evaluation de f’ real::x fd = 3*x**2-1 End Résoudre le système : f(x)= x3 -x-1 = 0  Prendre xo=0, 1, 1.5, 4, 10  Discuter chaque cas  Vérifier pour une autre fonction f  Comment évaluer l’erreur.
  6. 6. Université de Béchar Département de Génie Electrique Année Universitaire - (2015-2016) Pr. TAMALI Mohammed, SimulIA/ENERGARID Lab

×