GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
Analyse Numérique – TP
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. 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 pivot0 Alors
Pour i=k+1 jusqu’à n faire
bibi – (aik/pivot)*bk
Pour j=k+1 jusqu’à n faire
aijaij – (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. 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 ik telle que (aik)k-1
0:
échanger cette ligne i et la ligne k (li lk)
Pour i allant de 1 à n et ik
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. 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. 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. Université de Béchar
Département de Génie Electrique
Année Universitaire - (2015-2016)
Pr. TAMALI Mohammed, SimulIA/ENERGARID Lab