Analyse num rique L3 .pdf



Nom original: Analyse_num_rique_L3.pdf
Titre: Analyse numérique

Ce document au format PDF 1.5 a été généré par TeX / pdfTeX-1.40.19, et a été envoyé sur fichier-pdf.fr le 21/01/2020 à 08:58, depuis l'adresse IP 193.52.x.x. La présente page de téléchargement du fichier a été vue 43 fois.
Taille du document: 204 Ko (5 pages).
Confidentialité: fichier public


Aperçu du document


Analyse numérique

TAKI

Académie de Nantes

Première partie
1) On se donne une subdivision de [0,1], ie une suite de points (xk )k =
0, ..., n + 1 telle que 0 = x0 < x1 < ... < xn < xn+1 = 1. On écrit l’équation
aux dérivées partielles aux points de discrétisation :
−u00 (xi ) = f (xi ) ∀i ∈ {1, ..., n}
On tente d’approcher l’opérateur différentiel (−u00 ) par un quotient différentiel,
de manière à en déduire un système d’équations en fonctions d’inconnues discrètes censées représenter des approximations de u aux points de discrétisation.
Faisons un développement de Taylor en xi , en supposant que u ∈ C 4 ([0, 1]) :
h3
h4
h2 00
u (xi ) + u(3) (xi ) + u(4) (αi )
2
6
24
2
3
h
h
h4
u(xi−1 ) = u(xi ) − hu0 (xi ) + u00 (xi ) − u(3) (xi ) − u(4) (βi )
2
6
24

u(xi+1 ) = u(xi ) + hu0 (xi ) +

avec αi ∈ [xi , xi+1 ] et βi ∈ [xi−1 , xi ].
Ainsi, en additionnant, on a :
u(xi+1 ) + u(xi−1 ) = 2u(xi ) + h2 u00 (xi ) + O(h2 )
Il est donc raisonnable d’écrire l’approximation de u00 (xi ) par un quotient difféntiel, dont les inconnues discrètes sont les vi , i = 1,...,n :
2vi − vi−1 − vi+1
= f (xi ) = λvi
h2
en posant u(xi ) = vi .
Rappelons nous qu’il y a des conditions limites : on pose v0 = 0 et vn+1 = 0.
Ainsi, on peut écrire ceci sous forme matricielle :
 
 

v1
v1
2 −1 0 · · ·
0

 .. 
..   .. 
.
.
 
−1 2 −1
.
.
. 
 . 
 




.
.
2 
.
.
.
..
..
. . 0   ..  = λ 
(1/h )  0
 .. 
 
 

 .
 . 
.
..
 ..
 .. 
. −1 2 −1  .. 
0 ···
0 −1 2
vn
vn
D’où le résultat.
2) Montrons que A est définie positive.
Calculons le produit scalaire : Avh vh = vht Avh . On a :


2


−1

1

Avh vh = 2 (v1 v2 ...vn )  0

h
 .
 ..
0

−1

0

2
..
.
..
.
···

−1
..
.

···
..
.
..
.

−1
0

2
−1

page 1

 
0
v1
..   .. 
 
. 
 . 
  .. 
  ie
0
 . 
 . 
−1  .. 
2
vn

Analyse numérique

TAKI

Académie de Nantes

n

Avh vh =

1 X
vi (−vi−1 + 2vi − vi+1 )
h2
i=1

En changeant d’indice, on obtient :
Avh vh =

n
n
n+1
X
X
1 X
2
(
−v
v
+
2v

vi+1 vi )
i−1
i
i
2
h
i=1

i=1

j=2

Or, v0 = 0 et vn+1 = 0. Ainsi,
n+1
1 X
Avh vh = 2
(vi − vi−1 )2 ≥ 0 ∀vh = (v1 , ...vn ) ∈ Rn
h
i=1

Si Avh vh = 0, vi − vi−1 = 0 donc v1 = v2 = ... = vn = v0 = vn+1 .
Donc A est bien définie positive.
3) Le Théorème de Gershgorin nous indique que toutes les valeurs propres
de A sont dans la réunion des disques de Gershgorin :
n
X

Di = { z ∈ C ; |z − aii | ≤

|aij | }

j=1 ; j6=i

Ainsi, si λ est une valeur propre de A, on a :
λ∈

n
[

Di = { z ∈ C ; |z −

i=1

2
2
|≤ 2 }
h2
h

c’est-à-dire,


2
2
4
2
≤ λ − 2 ≤ 2 ⇐⇒ 0 ≤ λ ≤ 2
2
h
h
h
h

Donc les valeurs propres de A sont dans l’intervalle [0, h42 ].
4) Montrons que les valeurs propres de A sont données par :



k ∈ {1, ..., n}. (4)
λk = (4/h2 ) sin2
2(n + 1)
On considère
α

β

0


β


A = 0

.
 ..

α
..
.
..
.
···

β
..
.

···
..
.
..
.

β
0

α
β



0


0
.. 
.

−1
2

, α = 2, β = 2
0

h
h


β
α

On cherche les réels λ tels qu’il existe vh = (vi ) 6= 0 de Rd tels que
Avh = λvh
page 2

Analyse numérique

TAKI

Académie de Nantes

i.e.


βv2 = (λ − α)v1
βvk+1 + (λ − α)vk + βvk−1 = 0


βvn+1 = (λ − α)vn
On pose v0 = vn+1 =, on obtient la relation de récurrence d’ordre 2 :
∀k = 0, ..., n − 1, βxn+2 + (λ − α)xn+1 + βxn = 0
Son équation caractéristique est donnée par :
βr2 + (λ − α)r + β = 0, avec ∆ = (α − λ)2 − 4β 2
Comme α =

2
h2

et β =

−1
,
h2

on a :

∆ = 0 si λ = 0 ou λ =
∆ < 0 si λ ∈]0,

4
, i.e. λ = α ± 2β
h2

4
[, i.e. λ ∈]α + 2β, α − 2β[
h2

1er cas : λ = α ± 2β
L’équation caractéristique admet une solution réelle double γ0 , et alors
vk = (γ0 + kγ1 )γ0k , mais les conditions vn+1 = v0 = 0 donnent γ0 = γ1 = 0, c’està-dire : vh = (0, ..., 0) ce qui est impossible !
2ème cas : λ ∈]α + 2β, α − 2β[
On peut écrire λ = α + 2β cos θ avec θ ∈]0, π[∪]π, 2π[. L’équation caractéristique
devient alors :
r2 − 2 cos θ r + 1 = 0
qui admet deux solutions complexes r1 = eiθ et r2 = e−iθ , d’où vk = 2iu1 sin kθ.
vn+1 = 0, on a soit u1 = 0 (ce qui est impossible), soit sin ((n + 1)θ) = 0, i.e.

θ = n+1
Conclusion :











λ = α+2β cos n+1
= h22 − h22 cos n+1
= h22 ×2 sin2 2(n+1)
= h42 sin2 2(n+1)

Deuxième partie
5) Proposer un algorithme permettant d’approcher l’ensemble des valeurs
propres de la matrice A. En faisant varier le paramètre h, vérifier que les valeurs
(4) trouvées approchent bien les valeurs propres de A, pour n = 5,10,15,....
On utilise la méthode des puissances itérées pour trouver la valeur propre la
plus grande (en module), puis on réitère pour trouver l’ensemble des valeurs
propres de A.
On considère maintenant un problème différent qui repose sur la définition de
la matrice A. On veut résoudre le problème linéaire :
BU = C, (5)
page 3

Analyse numérique

TAKI

Académie de Nantes

où B est constituée de blocs de A telle que B = (AIJ )1≤I,J≤nI .
On pose C = (1, . . . , 1) ∈ Rn . On s’intéresse à la résolution numérique du
système linéaire (5) par des méthodes itératives en exploitant la structure par
blocs de B.
Indication : Dans la définition de la matrice par blocs B, il faut en fait
considérer B constituée de blocs étant
— soit de la forme de la matrice A,
— soit des blocs dont tous les coefficients sont nuls.
On pose B = Db - Eb - Fb , où Db est sa diagonale par blocs, -Eb sa partie
triangulaire inférieure par blocs et -Fb sa partie triangulaire supérieure par blocs.
On a alors la méthode de Jacobi :
(
U0 arbitraire,
(6) :
Db Uk+1 = (Eb + Fb )Uk + C.
En décomposant U en nI blocs UI correspondant à la structure par blocs de B,
la méthode s’écrit bloc par bloc :
(7) : BIJ Uk+1,I = −

nI
X

BIJ Uk,J + CI , ∀1 ≤ I ≤ nI .

J=0, J6=I

Pour chacun de ces blocs, il faut alors résoudre un système de taille nI × nI du
type BII Uk+1,J = dI pour pouvoir calculer Uk+1,J .
Indication : La matrice B est de taille (nI × n, nI × n) et donc le vecteur C
est de taille nI × n.
6) Résoudre le système linéaire (5) avec la méthode de Jacobi pour n = 10,
50, 100, ...
On utilise la méthode de Jacobi par bloc pour résoudre le système linéaire (5).
Voici le programme pour cette méthode :
def jacobi_bloc(B, n, nI, eps, itmax) :
C = np.ones(n*nI)
# On le donne dans l’énoncé
u0 = np.zeros(n*nI)
# u0 est arbitraire : on pose u0 =(0,...,0)
U = u0
Uv = np.ravel(U)
Cv = np.ravel(C)
nbiter = 0
while ((np.linalg.norm(np.dot(B,Uv) - Cv) > eps) and (itmax > nbiter)) :
for i in range (0,nI) :
S = C[i]
for j in range (0,nI) :
if(i != j) :
S = S - np.dot(bij(i,j), U[j])
U[i] = np.dot(np.linalg.inv(bij(i,i)),S)
nbiter += 1
Uv = np.ravel(U)
if (itmax <= nbiter) :
print("Ne converge pas !")
return Uv
page 4

Analyse numérique

TAKI

Académie de Nantes

7) Comparer la méthode avec une méthode de résolution de Jacobi classique
pour n = 10,50,100,.... On pourra étudier les performances en temps de calcul.
On utilise la méthode de Jacobi classique pour résoudre le système lineaire
(5). Pour déterminer le temps de calcul, on utilise "time.time".
Voici le programme pour le temps de calcul :
# Debut du decompte du temps
start_time = time.time()
#Ecrire son code ici
# ...
# Affichage du temps d execution
print("Temps d execution : %s secondes ---" % (time.time() - start_time))
8) Proposer une méthode de Gauss-Seidel par blocs et la mettre en oeuvre.
def gauss_seidel_bloc(B, n, nI, eps, maxiter) :
C = np.ones(n*nI)
# On le donne dans l’énoncé
u0 = np.zeros(n*nI)
# # u0 est arbitraire : on pose u0 =(0,...,0)
U = u0
Uv = np.ravel(U)
Cv = np.ravel(C)
nbiter = 0
while ((np.linalg.norm(np.dot(B,Uv) - Cv) > eps) and (itmax > nbiter)) :
for i in range (0,nI) :
S = C[i]
for j in range (0,nI) :
if (i < j) :
S = S + np.dot(bij(i,j), U[j])
elif (i > j) :
S = S - np.dot(bij(i,j), U[j])
U[i] = np.dot(np.linalg.inv(bij(i,i)), S)
nbiter += 1
Uv = np.ravel(U)
if (itmax <= nbiter) :
# Si le nombre d’itération dépasse celui imposé
print("ne converge pas")
return Uv

page 5




Télécharger le fichier (PDF)

Analyse_num_rique_L3.pdf (PDF, 204 Ko)

Télécharger
Formats alternatifs: ZIP







Documents similaires


methodes numeriques outils
cbg 1 algebre et analyse
notesdecours
methodes numeriques et optimisation
analyse numerique berriri
cours equations differentielles sed

Sur le même sujet..