Professional Documents
Culture Documents
MMOIRE DE MASTRE
2011 - 2012
ELEMENTS FINIS :
DU CLASSIQUE AU ISOGEOMETRIQUE
tudiant
Responsable
Mmoire
Introduction
1
5
5
1.1.1
1.1.2
1.1.3
1.1.4
1.2
Technique d'assemblage . . . . . . . . . . . . . . . . . . .
1.2.3
1.2.4
1.2.5
1.3
Technique d'assemblage . . . . . . . . . . . . . . . . . . . 15
1.3.3
1.3.4
1.3.5
2
Technique d'assemblage . . . . . . . . . . . . . . . . . . . 21
B-splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.1
2.2
2.3
2.4
Courbes B-splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.5
. . . . . . . . . . . . . . . . . . 31
Mmoire
2.5.1
2.5.2
2.6
3
Le problme linaire . . . . . . . . . . . . . . . . . . . . . 33
Rsolution numrique d'un problme d'interpolation . . . 35
Commentaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
RFRENCES
50
Mmoire
Introduction
La mthode des lments nis fait partie des outils de mathmatiques appliques.
En analyse numrique, la mthode des lments nis est utilise pour rsoudre numriquement des quations aux drives partielles. Celles-ci peuvent par exemple reprsenter
analytiquement le comportement dynamique de certains systmes physiques (mcaniques,
thermodynamiques, acoustiques, etc.). En mathmatique, Il s'agit de remplacer un problme compliqu pour lequel a priori on ne connat pas de solution, par un problme plus
simple que l'on sait rsoudre.
Dans notre mmoire, dans la premire partie, on va regarder la mthode des lments
nis classique pour le problme Dirichlet homogne en dimension un de degr un, degr deux, degr trois. Au debut, on va donner les dnitions de la matrice de masse,
de la matrice de raideur, de la matrice de masse lmentaire, de la matrice de raideur
lmentaire. Dans chaque cas, on va regarder l'algorithme d'assemblage des matrices et
second membres lmentaire an de constituer le systme global. D'o on va donner les
programmes en Matlab pour calculer une solution approche et donner l'erreur.
Dans la deuxime partie, on va consider les fonctions B-splines et leurs premires drives, donner la dnition d'une courbe B-splines. Aprs on va regarder la rsolution
numrique d'un problme d'interpolation par des courbes B-splines et la mthode des lments nis utilisant les fonctions B-splines cubiques pour approcher une solution exacte.
Dans cette partie, on aura aussi les programmes en Matlab pour les pratiquer.
En n, on va donner les commentaires entre deux mthodes.
Nous voudrions exprimer notre reconnaissance Monsieur le Professeur Pierre Dreyfuss et Madame le Professeur Francesca Rapetti de nous avoir beaucoup aid faire ce
stage. Nous remercions bien aux professeurs du dpartement des Mathmatiques l'Universit de Nice - Sophia Antipolis, surtout Prof. Stphanie Nivoche et Prof. Jacques Blum
qui nous ont aides et nous ont encourages. Enn, il nous faut aussi dire remercier mes
amis avec leur soutien, leur encouragement et leur sympathie notre gard.
Nice, Juillet 2012
Mmoire
u (x)v (x)dx +
a
u(x)v(x)dx =
a
f (x)v(x)dx.
(1)
M
inf u vh .
m vh Vh
Mmoire
xi+1
xi
x1 = a
xN+1 = b
wi (xj ) = ij =
1 si i = j,
0 sinon
i = 2, . . . , N
et
j = 2, . . . , N.
D'o :
x x
i
xi xi1
xi x
wi (x) =
xi xi+1
si x [xi1 , xi ],
si x [xi , xi+1 ],
si x [xi1 , xi+1 ].
/
wi
x1 = a
xi1
wi+1
xi+1
xi
xi+2
xN+1 = b
vh (x) =
vi wi (x)
i=2
avec vi = vh (xi ). Les coecients vi sont donc les valeurs de vh aux points xi .
1.1.1
uh (x)vh (x)dx +
a
uh (x)vh (x)dx =
a
f (x)vh (x)dx.
(2)
Mmoire
Le problme tant linaire, l'galit est vraie pour tout vh si et seulement si elle est vraie
pour une base de l'espace vectoriel V0,h , c'est--dire :
uh (x) =
uj wj (x),
j=2
wj (x)wi (x)dx +
j=2
wj (x)wi (x)dx uj =
a
f (x)wi (x)dx.
a
Posons
f (x)wi (x)dx
Fi :=
a
wj (x)wi (x)dx.
wj (x)wi (x)dx +
Aij :=
AU = F.
1.1.2
Kij =
wj (x)wi (x)dx,
a
Mij =
wj (x)wi (x)dx.
a
On obtient sans dicult les contributions de chaque lment Ti aux matrices de raideur
et de masse, dites matrices lmentaires de raideur et matrices lmentaires de masse.
On calcule les coecients Kij en sommant les contributions des dirents lments selon :
N
Kij =
xk+1
wj (x)wi (x)dx =
a
wj (x)wi (x)dx.
k=1
xk
Mmoire
Considrons par exemple l'lment Ti = [xi , xi+1 ]. Sur cet lment, il n'y a que deux
fonctions de base non nulles : wi et wi+1 . L'lment Ti produira donc eectivement une
contribution non nulle aux quatre coecients Ki,i , Ki,i+1 , Ki+1,i+1 et Ki,i+1 de la matrice
globale K . Calculons les contributions lmentaires de Ti et disposons les sous la forme
d'une matrice lmentaire 2 2 :
i
ei
1,1 e1,2
i
i
e2,1 e2,2
ElemKi =
avec
xi+1
ei =
1,1
1
,
xi+1 xi
wi (x)dx =
xi
xi+1
ei = ei =
1,2
2,1
wi (x)wi+1 (x)dx =
xi
xi+1
ei =
2,2
1
,
xi+1 xi
1
.
xi+1 xi
wi (x)dx =
xi
D'o :
1
1
xi+1 xi =
ElemKi = xi+1 xi
1
1
xi+1 xi
xi+1 xi xi+1 xi
1 1
1 1
ElemMi =
1.1.3
xi+1 xi
6
2 1
1 2
Fi =
xk+1
f (x)wi (x)dx =
a
f (x)wi (x)dx.
k=1
xk
On utilise des formules d'intgration numrique, par exemple la formule des trapzes ou
la formule de Simpson :
La formule des trapzes :
b
(x)
a
ba
((a) + (b))
2
Mmoire
La formule de Simpson :
b
(x)
a
ba
a+b
((a) + 4(
) + (b))
6
2
Fi = hfi
obtenu en dirences nies. La mthode de Simpson permet aussi un calcul approch et
donne dans le mme cas
h
Fi = [fi1 + 4fi + fi+1 ].
6
1.1.4
Technique d'assemblage
f u n c t i o n t e s t=EFdegre1 ;
Comparaison_degre_1 ( ) ;
9
Mmoire
end
f u n c t i o n t e s t 0=Comparaison_degre_1 ( ) ;
a l p h a =1;
b e t a =1;
N=16;
h=1/N;
a =0;
b=1;
K=( a l p h a /h ) [ 1 , 1 ; 1 , 1 ] ;
M=( b e t a /3 h ) [ 1 , 0 . 5 ; 0 . 5 , 1 ] ;
I=l i n s p a c e ( a , b ,N+1);
e l F i n i s=l i n s p a c e ( a , b ,N+1);
f u n c t i o n y=f ( x )
y=x ^ 4 ;
end
g=s o l u t i o n _ d e g r e _ 1 (N, h , e l F i n i s , alpha , beta , @f , a , b , K,M) ;
c2 = (37 24 exp ( 1 ) ) / ( exp (1) exp ( 1 ) ) ;
c1 =24 c2 ;
s_exact=c1 exp ( I ) + c2 exp( I )+ I . ^ 4 + 12 I . ^ 2 + 24 ;
e r r=gs_exact ' ;
em=max( abs ( e r r ) )
end
I=l i n s p a c e ( a , b , 2 0 0 ) ;
s=c1 exp ( I ) + c2 exp( I )+ I . ^ 4 + 12 I . ^ 2 + 24 ;
h o l d on
p=p l o t ( I , s ) ;
q=p l o t ( e l F i n i s , g , ' red ' ) ;
hold o f f
Mmoire
end
f u n c t i o n y=p h i 1 ( x )
y=1x ;
end
f u n c t i o n y=p h i 2 ( x )
y=x ;
end
f u n c t i o n [ l ]=member2_s ( e l F i n i s , h , s , f )
x1=e l F i n i s ( s ) ;
x2=e l F i n i s ( s +1);
l=z e r o s ( 2 , 1 ) ;
f u n c t i o n y=r 1 ( x )
y=f ( x1+h x ) p h i 1 ( x ) ;
end
f u n c t i o n y=r 2 ( x )
y=f ( x1+h x ) p h i 2 ( x ) ;
end
l (1)= a p r o x i m a t i o n t r a p e z e s ( @r1 ) ;
l (2)= a p r o x i m a t i o n t r a p e z e s ( @r2 ) ;
end
f u n c t i o n [ F]= vectMember2_degre_1 ( e l F i n i s , h , N, f )
F=z e r o s (N+ 1 , 1 ) ;
f o r s =1:N
l=member2_s ( e l F i n i s , h , s , f ) ;
f o r i =1:2
i g=s+i 1; ,
F( i g )=F( i g )+h l ( i ) ;
end
end
end
f u n c t i o n [U]= s o l u t i o n _ d e g r e _ 1 (N, h , e l F i n i s , alpha , beta , f , a , b , K,M)
A=matrixA_degre_1 (N, h , e l F i n i s , alpha , beta , K,M) ;
A( 1 , : ) = 0 ;A( 1 , 1 ) = 1 ;
A(N+ 1 , : ) = 0 ;A(N+1,N+1)=1;
F=vectMember2_degre_1 ( e l F i n i s , h , N, f ) ;
F( 1 ) = 0 ;
F(N+1)=0;
U=A\F ;
end
Pour le degr un, la table de connectivit des lments, la table de noeuds de discrtisation
et le table des noeuds de quadrature sont toutes identiques. Cette proprit n'est plus
11
Mmoire
valable en degr suprieur 1. Les dtails sont donns dans la suite avec degr deux et
degr trois.
xi
xi+1
xi+2
x2N+1 = b
i+1
i
i+2
si x [xi2 , xi ],
si x [xi , xi+2 ],
si x [xi2 , xi+2 ],
/
0
si x [xi1 , xi+1 ].
/
lorsque wi correspondent un point milieu d'un lment (voir Figure 5).
La formulation variationnelle du problme de Dirichlet homogne consiste chercher la
1
fonction u appartenant H0 [a, b] telle que (2) soit satisfaite. Ainsi le problme approch
s'crit : Chercher u2 , . . . , u2N tels que :
2N
wj (x)wi (x)dx +
.
j=2
wj (x)wi (x)dx uj =
a
12
Mmoire
wi
x1 = a
xi2
xi1
xi
xi+1
xi+2
x2N+1 = b
x1 = a
xi1
xi
xi+1
x2N+1 = b
xi+2 xi
t, on passe de t [1, 1]
2
x [xi , xi+2 ]. Les fonctions de base dans [xi , xi+2 ] s'expriment donc l'aider des trois
fonctions suivantes dnies sur [1, 1] :
Par le changement de variable Fi (t) = xi+1 +
w1 (t) =
t(t 1)
t(t + 1)
, w2 (t) = (t 1)(t + 1), w3 (t) =
.
2
2
dw1
1 dw 2
dw 3
1
=t ,
= 2t,
=t+ .
dt
2 dt
dt
2
1.2.2
Par w2i+k Fi = wk+2 avec la fonction Fi est dnie par le changement de variable
2
1
13
Mmoire
On obtient ainsi la matrice de masse lmentaire suivante pour cet lment :
2
1
4
15
15
15
xi+2 xi 2
16
2
Mi =
.
15
2
15
15
1
2
4
15
15
15
1.2.3
dw2i+k
dwk+2 dt
On a
=
pour k = 1, 0, 1 et i = 1, . . . , N. Ainsi les coecients de
dx
dt dx
la matrice de raideur sont :
et on obtient :
1.2.4
2
xi+2 xi
7
6
2
4
Ki =
xi+2 xi 3
1
6
4
3
8
3
4
1
6
4
.
3
7
6
Fi =
f (x)wi (x)dx,
a
(k)
N
(k)
Fi
Fi =
k=1
x2k+1
f (x)wi (x)dx,
k=1
x2k1
(k)
(x)dx
x2k1
x2k+1 x2k1
[(x2k1 ) + 4(x2k ) + (x2k+1 )] .
6
F2k1
f2k1
(k) x2k+1 x2k1
F =
4f2k .
2k
6
(k)
f2k+1
F2k+1
14
Mmoire
1.2.5
Technique d'assemblage
f u n c t i o n t e s t=EFdegre2 ;
Comparaison_degre_2 ( ) ;
end
f u n c t i o n t e s t 0=Comparaison_degre_2 ( ) ;
a l p h a =1;
b e t a =1;
N=16;
h=1/N;
a =0;
b=1;
K=(2 a l p h a /h ) [ 7 / 6 , 4 / 3 , 1 / 6 ; 4 / 3 , 8 / 3 , 4 / 3 ; 1 / 6 , 4 / 3 , 7 / 6 ] ;
M=( b e t a /2 h ) [ 4 / 1 5 , 2 / 1 5 , 1 / 1 5 ; 2 / 1 5 , 1 6 / 1 5 , 2 / 1 5 ; 1 / 1 5 , 2 / 1 5 , 4 / 1 5 ] ;
I=l i n s p a c e ( a , b , 2 N+1);
e l F i n i s=l i n s p a c e ( a , b , 2 N+1);
15
Mmoire
f u n c t i o n y=f ( x )
y=x ^ 4 ;
end
g=s o l u t i o n _ d e g r e _ 2 (N, h , e l F i n i s , alpha , beta , @f , a , b , K,M) ;
c2 = (37 24 exp ( 1 ) ) / ( exp (1) exp ( 1 ) ) ;
c1 =24 c2 ;
s_exact=c1 exp ( I ) + c2 exp( I )+ I . ^ 4 + 12 I . ^ 2 + 24 ;
e r r=gs_exact ' ;
em=max( abs ( e r r ) )
I=l i n s p a c e ( a , b , 2 0 0 ) ;
s=c1 exp ( I ) + c2 exp( I )+ I . ^ 4 + 12 I . ^ 2 + 24 ;
h o l d on
p=p l o t ( I , s ) ;
q=p l o t ( e l F i n i s , g , ' red ' ) ;
hold o f f
end
f u n c t i o n [ ms]= matrixA_degre_2 (N, h , e l F i n i s , alpha , beta , K,M)
ms=z e r o s ( 2 N+1 ,2 N+1);
f o r i e =1:N
f o r i =1:3
i g =2 i e+i 2;
f o r j =1:3
j g =2 i e+j 2;
ms( i g , j g )=ms( i g , j g )+K( i , j )+M( i , j ) ;
end
end
end
end
f u n c t i o n [ ap]= a p r o x i m a t i o n 2 p o i n t s ( g )
w= [ 1 , 1 ] ;
xpq=[ s q r t ( 1 / 3 ) , s q r t ( 1 / 3 ) ] ;
gpq =[g ( xpq ( 1 ) ) , g ( xpq ( 2 ) ) ] ;
ap =0;
f o r i =1:2
ap=ap+w( i ) gpq ( i ) ;
end
end
f u n c t i o n y=phi1_d2 ( x )
y=1/2 x ( x 1);
end
f u n c t i o n y=phi2_d2 ( x )
y=(1x ) (1+ x ) ;
end
16
Mmoire
f u n c t i o n y=phi3_d2 ( x )
y=1/2 x ( x +1);
end
f u n c t i o n [ l ]=member2_degre_2_s ( e l F i n i s , h , s , f )
x1=e l F i n i s ( 2 s 1);
x2=e l F i n i s ( 2 s ) ;
x3=e l F i n i s ( 2 s +1);
l=z e r o s ( 3 , 1 ) ;
f u n c t i o n y=r 1 ( x )
y=f ( x2+h/2 x ) phi1_d2 ( x ) ;
end
f u n c t i o n y=r 2 ( x )
y=f ( x2+h/2 x ) phi2_d2 ( x ) ;
end
f u n c t i o n y=r 3 ( x )
y=f ( x2+h/2 x ) phi3_d2 ( x ) ;
end
l (1)= a p r o x i m a t i o n 2 p o i n t s ( @r1 ) ;
l (2)= a p r o x i m a t i o n 2 p o i n t s ( @r2 ) ;
l (3)= a p r o x i m a t i o n 2 p o i n t s ( @r3 ) ;
end
f u n c t i o n [ F]= vectMember2_degre_2 ( e l F i n i s , h , N, f )
F=z e r o s ( 2 N+ 1 , 1 ) ;
f o r s =1:N
l=member2_degre_2_s ( e l F i n i s , h , s , f ) ;
f o r i =1:3
i g =2 s+i 2;
F( i g )=F( i g )+h/2 l ( i ) ;
end
end
end
f u n c t i o n [U]= s o l u t i o n _ d e g r e _ 2 (N, h , e l F i n i s , alpha , beta , f , a , b , K,M)
A=matrixA_degre_2 (N, h , e l F i n i s , alpha , beta , K,M) ;
A( 1 , : ) = 0 ;A( 1 , 1 ) = 1 ;
A( 2 N+ 1 , : ) = 0 ;A( 2 N+1 ,2 N+1)=1;
F=vectMember2_degre_2 ( e l F i n i s , h , N, f ) ;
F( 1 ) = 0 ;
F( 2 N+1)=0;
U=A\F ;
end
On peut continuer argumenter l'ordre de la mthode. Nous prsentons maintenant le
degr trois.
17
Mmoire
x1 = a
xi
x3N+1 = b
i+1
i
i+2
i
i+3
si x [xi3 , xi ],
si x [xi , xi+3 ],
si x [xi3 , xi+3 ],
/
wi
x1 = a
xi3
xi2
xi1
xi
xi+1
0
si x [xi1 , xi+2 ]
/
18
Mmoire
si xi est premier point intrieur d'un lment
wi
xi1
xi
xi+3
xi+2
si x [xi2 , xi+1 ],
si x [xi2 , xi+1 ].
/
wi
xi2
xi1
xi+1
xi
wj (x)wi (x)dx +
j=2
1.3.1
wj (x)wi (x)dx uj =
a
xi + xi+3 xi+3 xi
+
t, on passe de t [1, 1]
2
2
x [xi , xi+3 ]. Les fonctions de base dans [xi , xi+3 ] s'expriment donc l'aider des quatre
Par le changement de variable Fi (t) =
19
Mmoire
fonctions suivantes dnies sur [1, 1] :
w1 (t) =
1
(1 t)(3t 1)(3t + 1),
16
w2 (t) =
9
(t + 1)(t 1)(3t 1),
16
1
9
(t + 1)(3t 1)(3t + 1), w3 (t) = (t + 1)(1 t)(3t + 1),
16
16
dont les drives sont respectivement gales
w4 (t) =
dw1
1
= (27t2 + 18t + 1),
dt
16
dw4
1
= (27t2 + 18t 1),
dt
16
1.3.2
dw2
9
= (9t2 2t 3),
dt
16
dw 3
9
= (9t2 2t + 3).
dt
16
Par w3i+k Fi = wk+3 avec la fonction Fi est dnie par le changement de variable
1.3.3
xi+3 xi
2
dw3i+k
dwk+3 dt
=
pour k = 2, 1, 0, 1 et i = 1, . . . , N . Donc, les coecients
dx
dt dx
de la matrice de raideur dans lment [xi , xi+3 ] sont
On a
1.3.4
2
xi+3 xi
f (x)wi (x)dx
Fi =
a
(k)
N
(k)
Fi =
Fi
k=1
selon
x3k+1
f (x)wi (x)dx,
k=1
x3k2
(k)
Mmoire
1.3.5
Technique d'assemblage
f u n c t i o n t e s t=EFdegre3 ;
Comparaison_degre_3 ( ) ;
end
f u n c t i o n t e s t 0=Comparaison_degre_3 ( ) ;
a l p h a =1;
b e t a =1;
N=16;
h=1/N;
a =0;
b=1;
K=m atrix _raid eur_ local _d3 ( alpha , beta , h ) ;
M
=matrix_masse_local_d3 ( alpha , beta , h ) ;
I=l i n s p a c e ( a , b , 3 N+1);
e l F i n i s=l i n s p a c e ( a , b , 3 N+1);
f u n c t i o n y=f ( x )
21
Mmoire
end
y=x ^ 4 ;
Mmoire
f u n c t i o n y=dphi4_d3 ( x )
y =1/16 (27 x^2+18 x 1);
end
Mmoire
end
end
end
end
f u n c t i o n [ ap]= a p r o x i m a t i o n 4 p o i n t s ( g )
w=[(18 s q r t ( 3 0 ) ) / 3 6 , ( 1 8 + s q r t ( 3 0 ) ) / 3 6 , ( 1 8 + s q r t ( 3 0 ) ) / 3 6 , ( 1 8 s q r t ( 3 0 ) ) / 3 6 ] ;
x1=(3+2 s q r t ( 6 / 5 ) ) / 7
x2=(3 2 s q r t ( 6 / 5 ) ) / 7
xpq=[ s q r t ( x1 ) , s q r t ( x2 ) , s q r t ( x2 ) , s q r t ( x1 ) ] ;
gpq =[g ( xpq ( 1 ) ) , g ( xpq ( 2 ) ) , g ( xpq ( 3 ) ) , g ( xpq ( 4 ) ) ] ;
ap =0;
f o r i =1:4
ap=ap+w( i ) gpq ( i ) ;
end
end
f u n c t i o n [ l ]=member2_degre_3_s ( e l F i n i s , h , s , f )
x1=e l F i n i s ( 3 s 2);
x2=e l F i n i s ( 3 s 1);
x3=e l F i n i s ( 3 s ) ;
x4=e l F i n i s ( 3 s +1);
l=z e r o s ( 4 , 1 ) ;
f u n c t i o n y=r 1 ( x )
y=f ( ( x1+x4 )/2+h/2 x ) phi1_d3 ( x ) ;
end
f u n c t i o n y=r 2 ( x )
y=f ( ( x1+x4 )/2+h/2 x ) phi2_d3 ( x ) ;
end
f u n c t i o n y=r 3 ( x )
y=f ( ( x1+x4 )/2+h/2 x ) phi3_d3 ( x ) ;
end
f u n c t i o n y=r 4 ( x )
y=f ( ( x1+x4 )/2+h/2 x ) phi4_d3 ( x ) ;
end
l (1)= a p r o x i m a t i o n 4 p o i n t s ( @r1 ) ;
l (2)= a p r o x i m a t i o n 4 p o i n t s ( @r2 ) ;
l (3)= a p r o x i m a t i o n 4 p o i n t s ( @r3 ) ;
l (4)= a p r o x i m a t i o n 4 p o i n t s ( @r4 ) ;
end
f u n c t i o n [ F]= vectMember2_degre_3 ( e l F i n i s , h , N, f )
F=z e r o s ( 3 N+ 1 , 1 ) ;
f o r s =1:N
l=member2_degre_3_s ( e l F i n i s , h , s , f ) ;
f o r i =1:4
i g =3 s+i 3;
24
Mmoire
end
end
end
F( i g )=F( i g )+h/2 l ( i ) ;
25
Mmoire
Comme les programmes en Matlab que nous avons fait, on a la tableau suivante :
1D
Continuit
sur lment
Connectivit
P1
P2
P3
C0
C0
C0
Ti
u(xk )
Point de
quadrature
i+1
des lments
Degr de libert
Ti
Trapze
Ti
i+1
Gauss 2 points
i+1
Gauss 4 points
Remarquons que la mthode de quadrature de Gauss- Legendre est utilis dans le calculs
1
approximations 1 f (x)dx, par exemple
Pour 2 points :
2
g(x)dx
1
avec
wi g(xi )
i=1
1
1
x1 = , x2 = et w1 = w2 = 1.
3
3
Pour 3 points :
3
g(x)dx
1
wi g(xi )
i=1
avec
x1 = 0, x2,3 =
3
8
5
et w1 = , w2,3 = .
5
9
9
Pour 4 points :
4
g(x)dx
1
wi g(xi )
i=1
avec
x1,2 =
(3 2 6/5)
, x3,4 =
7
(3 + 2 6/5)
18 + 30
18 30
et w1,2 =
, w3,4 =
.
7
36
36
26
Mmoire
On reoit les rsultats des programmes en Matlab pour rsolution numrique de la
solution pour le problme :
20
solution exacte
solution approche
x 10
erreur = 1.3527e004
15
10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
20
x 10
erreur = 4.5438e007
15
10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
20
solution exacte
solution approche
x 10
erreur =1.6163e006
15
10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Mmoire
2 B-splines
Dans la mthode d'lments nis classique, le principal dfaut de cette mthode est
que la solution approche est une fonction qui n'est que continue. Or, dans de nombreuses
applications, par exemple en informatique graphique, il est prrable d'utiliser des fonctions
ayant au moins une drive continue. Cette proprit sera satisfaite dans la mthode
d'lments nis par B-spline.
Spline est une fonction polynomiale dnie par morceaux quelque de degr p sur chaque
intervalle.
Une B-spline est une combinaison linaire de splines non-ngatives support compact
minimal.
Pour contruire les fonctions base des B-splines, on doit d'abord introduire la dnition de
vecteur des noeuds.
Ni,l () =
i+l+1
i
Ni,l1 () +
Ni+1,l1 ()
i+l i
i+l+1 i+l
Remarque :
1. La fonction Ni,p est un polynme de degr infrieur ou gale p sur chaque intervalle
[j , j+1 [.
2. La fonction Ni,p s'annule en dehors de l'intervalle ]i , i+p+1 [.
3. La fonction Ni,p s'annule aussi en i sauf si i = i+1 = = i+p < i+p+1 auquel
cas Ni,p (i ) = 1.
4. Ni,p () 0, et
n
i=1
Ni,p () = 1, .
28
Mmoire
1
N1,0
N2,0
N3,0
N2,1
N1,1
N3,1
N1,2
N2,2
N3,2
0.7
0.6
0.5
0.4
0.3
0.2
0.1
N1,3
N2,3
N3,3
0.6
0.5
0.4
0.3
0.2
0.1
29
Mmoire
On peut construire une matrice de dimension (n + p) (p + 1) qui stocke toutes les
fonctions B-splines Ni,l () avec 0 l p en forme :
N1,0 ()
N1,1 ()
. . . N1,p ()
N2,0 ()
N2,1 ()
. . . N2,p ()
...
...
...
...
Nn,0 ()
Nn,1 ()
. . . Nn,p ()
Nn+1,0 ()
Nn+1,1 () . . .
0
...
...
...
...
Nn+p1,0 () Nn+p1,1 () . . .
0
Nn+p,0 ()
0
...
0
D'o on a le programme suivant :
function [sp]=Bsp(ksiVector,n,p,ksi)
sp=zeros(n+p,p+1);
for j=1:p+1
j0=j-1;
for i=1:n+p-j0
ki=ksiVector(i);
ki1=ksiVector(i+1);
if(j0==0)
if ( ksi>=ki && ksi<ki1 )
sp(i,j)=1;
else
sp(i,j)=0;
end
else
kip=ksiVector(i+j0);
kip1=ksiVector(i+j0+1);
if ( kip==ki )
tg=0;
else
tg=(ksi-ki)/(kip-ki);
end
if ( kip1==ki1 )
td=0;
else
td=(kip1-ksi)/(kip1-ki1);
end
sp(i,j)=tg*sp(i,j0)+td*sp(i+1,j0);
end
end
end
end
30
Mmoire
Ni,p () =
p
p
Ni,p1 ()
Ni+1,p1 ().
i+p i
i+p+1 i+1
function [dsp]=deriveBsp(ksiVector,n,p,ksi)
U=Bsp(ksiVector,n,p,ksi);
dsp=zeros(n+p,p+1);
for j=1:p+1
j0=j-1;
for i=1:n+p-j0
ki=ksiVector(i);
ki1=ksiVector(i+1);
if(j0==0)
dsp(i,j)=0;
else
kip=ksiVector(i+j0);
kip1=ksiVector(i+j0+1);
if ( kip==ki )
dtg=0;
else
dtg=j0/(kip-ki);
end
if ( kip1==ki1 )
dtd=0;
else
dtd=-j0/(kip1-ki1);
end
dsp(i,j)=dtg*U(i,j0)+dtd*U(i+1,j0);
end
end
end
end
Xp () = (x(), y()) =
Ni,p ()Pi ,
i=1
Mmoire
1. Les composantes de Xp () sont des polynmes de degr p sur chaque intervalle
[i , i+1 [.
2. Si [ti , ti+1 [, Xp () ne dpend que les points de contrle Pip , . . . , Pi et se trouve
dans l'enveloppe convexe de ces points.
3. Si i est un noeud simple et p 1, Xp (i ) ne dpend que des points de contrle
Pip , . . . , Pi1 et se trouve dans l'enveloppe convexe de ces points.
On a les programmes suivants :
32
Mmoire
2.5.1
Le problme linaire
Il existe un unique polygone de contrle P = (P0 , ..., PN +2 ) tel que la courbe B-spline de
degr 3 associe satisfasse
i = 0, ..., N,
X3 (ti+3 ) = Qi ,
et
X (a) = va ,
X (b) = vb .
x (t)2 dt.
f (t)2 dt
(f (t) x (t))2 dt =
x (t)2 dt = 2R, o R =
f (t)2 dt+
a
(f (t)x (t))2 dt
(f (t) x (t))x (t)dt = (f (ti+1 ) x (ti+1 ))x (ti+1 ) (f (ti ) x (ti ))x (ti )
ti
ti+1
+
ti
Mmoire
car x(4) 0 et f (ti+1 x(ti+1 ) = f (ti ) x(ti ) = 0. En additionnant, il vient
o h = max|ti+1 ti |.
h3/2
f
2
f X3
et
h1/2 f
2,
2
2
g (t)2 dt
=
a
b
f (t)2 dt
X3 (t)2 dt
a
2
2.
|g (t)| = |g (t) g (t )|
t
=|
g (s)ds|
t
t
g (s)2 ds)1/2
ds)1/2 (
t
1/2
1/2
2,
h1/2 f
h
2
2.
=|
g (s)ds|
t
|t t | g
1/2
2.
Mmoire
2.5.2
N1,p (a)
0
...
...
...
0
N1,p (a)
N2,p (a)
0
...
...
0
0
N2,p (a + h) N3,p (a + h) N4,p (a + h) . . .
0
..
..
.
.
0
0
...
0
A=
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. N (b)
.
.
.
.
.
.
N,p
...
...
. . . NN,p (b)
X3 (0) = 0,
X3 (0) = 3(P1 P0 ),
7
1
1
P 1 + P2 + P 3 ,
X3 (t4 ) =
4
12
6
1
2
1
X3 (ti+3 ) =
Pi + Pi+1 + Pi+2 ,
6
3
6
pour i 2. On a la matrice suivante :
1
0
0
0 ... ...
3 3
0
0 0 ...
1
7
1
0
0 ...
4 12 6
1
2 1
0
0
...
6
3 6
.
.
. .. .. ..
.
.
.
.
.
.
.
.
A= .
.
1 2
.
.
.
.
.
.
.
.
.
.
.
6 3
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... ... ... ... ... ...
1
... ...
7
1
12 4
.
. 3 3
.
... ... 1
Mmoire
B est :
B=
7
12
1
6
0
.
.
.
.
.
.
1
6
2
3
... ...
1
... ...
6
.. ..
.
. ... ...
.
2
1
1
.
.
6
3
6
.
.
1
7
.
.
.
.
6
12
0
(Bv, v) = (
1
7
v1 + v2 )v1 +
12
6
=
1
3
N 2
2
vi +
i=2
1
6
v RN 1 \{0}, v =
N 3
1
2
1
7
1
( vi + vi+1 + vi+2 )vi+1 + ( vN 1 + vN 2 )vN 1
6
3
6
12
6
i=1
N 2
(vi + vi+1 )2 +
i=1
5 2
5 2
v1 + vN 1 > 0
12
12
v RN 1 \{0}.
A=zeros(N+3,N+3);
%premiere ligne
r=Bsp(ksiVector,N+3,p,a);
rr=r(1:N+3,p+1);
A(1,:)=rr';
%deuxieme ligne
s=deriveBsp(ksiVector,N+3,p,a);
ss=s(1:N+3,p+1);
A(2,:)=ss';
%avant-dereniere ligne
36
Mmoire
t=deriveBsp(ksiVector,N+3,p,b);
tt=t(1:N+3,p+1);
A(N+2,:)=tt';
%derniere ligne
u=Bsp(ksiVector,N+3,p,b);
uu=u(1:N+3,p+1);
A(N+3,:)=uu';
%lignes de A
for i=3:N+1
v=Bsp(ksiVector,N+3,p,ksiVector(i+p-1));
vv=v(1:N+3,p+1);
A(i,:)=vv';
end
Q=zeros(N+3,1);
Q(1)=Qpoints(1);
Q(2)=vi;
Q(3:N+1)=Qpoints(2:N);
Q(N+2)=vf;
Q(N+3)=Qpoints(N+1);
Polygon= (A'*A)\(A'*Q);
end
function test1=spline1()
p=3;
a=-5;
b=5;
N=6;
points2trace=linspace(a,b,1000);
ksiVector=zeros(1,N+2*p+1);
ksiVector(1:p)=a;
ksiVector(p+1:N+p+1)=linspace(a,b,N+1);
ksiVector(N+p+2:N+2*p+1)=b;
vi=0;
vf=0;
Qp=zeros(N+1);
for i=1:N+1
w=ksiVector(i+p);
Qp(i)=1 (1+w 2);
37
Mmoire
end
pc=control(N,p,vi,vf,a,b,Qp);
pointsControles=zeros(2,N+3);
pointsControles(1,:)=ksiVector(p:N+p+2);
for i=1:N+3
pointsControles(2,i)=pc(i,1);
end
m2=ip(ksiVector,pointsControles,p,points2trace);
hold on
ezplot('1/(1+x*x)');
q=plot(m2(:,1),m2(:,2),'green');
hold off
end
1/(1+x2)
Bspline courbe N=6
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
5
0
x
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
5
0
x
Mmoire
uh (x)Ni,p (x)dx
a
a
b
f (x)Ni,p (x), i = 2, . . . , n 1.
=
a
D'autre part, si uh est une solution du problme approch dans V0,h , on peut exprimer : :
n1
uh (x) =
uj Nj,p (x).
j=2
f (x)Ni,p (x), i = 2, . . . , n 1.
=
a
Posons
f (x)Ni,p (x)dx,
Fi :=
a
b
Aij :=
a
AU = F.
mij =
et
39
Mmoire
Chaque composante mij est galement calcule par assemblage de contributions lmentaires :
b
mij =
a
np
=
s=1
Ts
On remarque que sur l'lment Ts , il n'a que p+1 fonctions B-splines Ns,p , Ns+1,p , . . . , Ns+p,p
non nulles et il n'a que p + 1 drivs Ns,p , Ns+1,p , . . . , Ns+p,p non nulles. On peut donc utiliser le technique d'assemblage pour calculer les composantes mij .
Chaque composante Fi du vecteur second - membre global est galement calcule par
assemblage de contributions lmentaires :
np
f (x)Ni,p (x)dx =
Fi =
a
f (x)Ni,p (x)dx
s=1
Ts
Sur lment Ts , il n'a que p + 1 fonctions B-splines Ns,p , Ns+1,p , . . . , Ns+p,p non nulles. On
peut donc utiliser le technique d'assemblage pour calculer les composantes Fi .
On a le programme suivant en matlab pour approximation solution u par B-splines :
f u n c t i o n t e s t=E l e m e n t F i n i 1 D p a r B s p l i n e ( )
ComparaisonparBspline ( ) ;
end
f u n c t i o n t e s t 0=C o m p a r a i s o n p a r B s p l i n e ( )
nh=15; % nombre de l i b e r t e
p=3;
a l p h a =1;
b e t a =1;
a =0;
b=1;
nbpt =200;
s h i f t =(ba ) / 1 0 0 0 ;
I=l i n s p a c e ( a , b s h i f t , nbpt ) ;
f u n c t i o n y=f ( x )
y=x ^ 4 ;
end
[ g ,G]= s o l u t i o n ( p , nh , alpha , beta , @f , a , b , I ) ;
gp=d e r S o l u t i o n ( p , nh ,G, I , a , b ) ;
x=I ;
c2 = (37 24 exp ( 1 ) ) / ( exp (1) exp ( 1 ) ) ;
c1 =24 c2 ;
s_exact=z e r o s ( 1 , s i z e ( x , 2 ) ) ;
40
Mmoire
f o r i =1: s i z e ( x , 2 )
s_exact ( i )=c1 exp ( x ( i ) ) + c2 exp( x ( i ))+ x ( i )^4 + 12 x ( i )^2 + 24
end
e r r=gs_exact ;
em=max( abs ( e r r ) )
h o l d on
close all ;
e=p l o t ( I , e r r ) ;
x l a b e l ( ' x ' ) ; y l a b e l ( ' Erreur ' ) ; t i t l e ( ' E r r e u r du s o l u t i o n e x a c t e ' ) ;
s e t ( e , ' Color ' , ' black ' , ' LineWidth ' , 2 ) ;
hold o f f
figure ;
p=p l o t ( I , s_exact ) ;
x l a b e l ( ' x ' ) ; y l a b e l ( ' u( x ) ' ) ; t i t l e ( ' Solution exacte ' ) ;
s e t ( p , ' Color ' , ' blue ' , ' LineWidth ' , 2 ) ;
figure ;
q=p l o t ( I , g ) ;
x l a b e l ( ' x ' ) ; y l a b e l ( ' u ( x ) ' ) ; t i t l e ( ' S o l u t i o n approche ' ) ;
s e t ( q , ' Color ' , ' red ' , ' LineWidth ' , 1 . 5 ) ;
hold o f f
figure ;
d=p l o t ( I , gp ) ;
xlabel ( 'x ' ) ; ylabel ( 'u ' '( x ) ');
t i t l e ( ' P re mi re d r i v e de l a s o l u t i o n approche ' ) ;
s e t ( d , ' Color ' , ' blue ' , ' LineWidth ' , 1 . 5 ) ;
% hold o f f
end
f u n c t i o n [ sp ]=Bsp ( k s i V e c t o r , n , p , k s i )
sp=z e r o s ( n+p , p +1);
f o r j =1:p+1
j 0=j 1;
f o r i =1:n+p j 0
k i=k s i V e c t o r ( i ) ;
k i 1=k s i V e c t o r ( i +1);
i f ( j 0 ==0)
i f ( k s i >=k i && k s i <k i 1 )
sp ( i , j )=1;
else
sp ( i , j )=0;
end
else
k i p=k s i V e c t o r ( i+j 0 ) ;
41
Mmoire
k i p 1=k s i V e c t o r ( i+j 0 +1);
i f ( k i p==k i )
t g =0;
else
t g =( k s i k i ) / ( kip k i ) ;
end
end
end
end
end
i f ( k i p 1==k i 1 )
td =0;
else
td=( kip1 k s i ) / ( kip1 k i 1 ) ;
end
sp ( i , j )= t g sp ( i , j 0 )+td sp ( i +1, j 0 ) ;
% c a l c u l e l e s d r i v e s de f o n c t i o n s s p l i n e s au p o i n t k s i
f u n c t i o n [ dsp ]= d e r i v e B s p ( k s i V e c t o r , n , p , k s i )
U=Bsp ( k s i V e c t o r , n , p , k s i ) ;
dsp=z e r o s ( n+p , p +1);
f o r j =1:p+1
j 0=j 1;
f o r i =1:n+p j 0
k i=k s i V e c t o r ( i ) ;
k i 1=k s i V e c t o r ( i +1);
i f ( j 0 ==0)
dsp ( i , j )=0;
else
k i p=k s i V e c t o r ( i+j 0 ) ;
k i p 1=k s i V e c t o r ( i+j 0 +1);
i f ( k i p==k i )
dtg =0;
else
dtg=j 0 / ( kip k i ) ;
end
end
end
i f ( k i p 1==k i 1 )
dtd =0;
else
dtd= j 0 / ( kip1 k i 1 ) ;
end
dsp ( i , j )= dtg U( i , j 0 )+dtd U( i +1, j 0 ) ;
42
Mmoire
end
end
f u n c t i o n n i p=s p l i n e K s i ( k s i V e c t o r , n , p , k s i )
mat=Bsp ( k s i V e c t o r , n , p , k s i ) ;
n i p=mat ( n , p +1);
end
f u n c t i o n dnip=d s p l i n e K s i ( k s i V e c t o r , n , p , k s i )
mat=d e r i v e B s p ( k s i V e c t o r , n , p , k s i ) ;
dnip=mat ( n , p +1);
end
f u n c t i o n [ ap]= a p r o x i m a t i o n ( g , x0 , x1 )
w=[(18 s q r t ( 3 0 ) ) / 3 6 , ( 1 8 + s q r t ( 3 0 ) ) / 3 6 , ( 1 8 + s q r t ( 3 0 ) ) / 3 6 , ( 1 8 s q r t ( 3 0 ) ) / 3
xpq=[ s q r t ((3+2 s q r t ( 6 / 5 ) ) / 7 ) , s q r t ((3 2 s q r t ( 6 / 5 ) ) / 7 ) ,
s q r t ((3 2 s q r t ( 6 / 5 ) ) / 7 ) , s q r t ((3+2 s q r t ( 6 / 5 ) ) / 7 ) ] ;
gpq =[g ( ( x0+x1 )/2+( x1x0 ) / 2 xpq ( 1 ) ) , g ( ( x0+x1 )/2+( x1x0 ) / 2 xpq ( 2 ) ) ,
g ( ( x0+x1 )/2+( x1x0 ) / 2 xpq ( 3 ) ) , g ( ( x0+x1 )/2+( x1x0 ) / 2 xpq ( 4 ) ) ] ;
ap =0;
f o r i =1:4
ap=ap+w( i ) gpq ( i ) ;
end
ap=ap ( x1x0 ) / 2 ;
end
f u n c t i o n [ i e s ]= i n t e g r e E l e m e n t _ s ( e l F i n i s , s , g )
x0=e l F i n i s ( 1 ) ;
x1=e l F i n i s ( 2 ) ;
l k=s i z e ( e l F i n i s , 2 ) 1 ;
pas=( e l F i n i s ( l k +1) e l F i n i s ( 1 ) ) / l k ;
f u n c t i o n y=h ( x )
y=g ( x+(s 1) pas ) ;
end
i e s=a p r o x i m a t i o n (@h, x0 , x1 ) ;
end
f u n c t i o n mge=i j f u n c t i o n ( k s i V e c t o r , p , alpha , beta , i , j , x )
Nip=s p l i n e K s i ( k s i V e c t o r , i , p , x ) ;
Njp=s p l i n e K s i ( k s i V e c t o r , j , p , x ) ;
dNip=d s p l i n e K s i ( k s i V e c t o r , i , p , x ) ;
dNjp=d s p l i n e K s i ( k s i V e c t o r , j , p , x ) ;
mge=( a l p h a dNip dNjp )+( b e t a Nip Njp ) ;
end
f u n c t i o n [ i j f s ]= i n t g _ i j f u n c t i o n _ E l e m e n t _ s ( k s i V e c t o r , p , alpha , beta , i , j , e l F i
i j f s =i n t e g r e E l e m e n t _ s ( e l F i n i s , s , @ a i j ) ;
43
Mmoire
end
f u n c t i o n a i j=a i j ( x )
a i j=z e r o s ( s i z e ( x , 1 ) , s i z e ( x , 2 ) ) ;
f o r k=1: s i z e ( x , 2 )
a i j ( k)= i j f u n c t i o n ( k s i V e c t o r , p , alpha , beta , i , j , x ( k ) ) ;
end
end
f u n c t i o n [ ms]= m a t s o l u t i o n ( k s i V e c t o r , e l F i n i s , p , nh , alpha , b e t a )
ms=z e r o s ( nh , nh ) ;
c=z e r o s ( nh , nh ) ;
l h=nhp ;
r=s i z e ( e l F i n i s , 2 ) ;
f o r i =1:nh
f o r j =1:nh
Nipa=s p l i n e K s i ( k s i V e c t o r , j , p , e l F i n i s ( 1 ) ) ;
dNjpa=d s p l i n e K s i ( k s i V e c t o r , i , p , e l F i n i s ( 1 ) ) ;
Nipb=s p l i n e K s i ( k s i V e c t o r , j , p , e l F i n i s ( r ) ) ;
dNjpb=d s p l i n e K s i ( k s i V e c t o r , i , p , e l F i n i s ( r ) ) ;
c ( i , j )= a l p h a ( dNjpa NipadNjpb Nipb ) ;
end
end
f o r s =1: l h
f o r i=s : s+p
f o r j=s : s+p
ms( i , j )=ms( i , j )+ i n t g _ i j f u n c t i o n _ E l e m e n t _ s ( k s i V e c t o r , p , alpha , beta , i , j , e l F
end
end
end
end
f u n c t i o n mgem2=j f u n c t i o n m 2 ( k s i V e c t o r , p , f , j , x )
Njp=s p l i n e K s i ( k s i V e c t o r , j , p , x ) ;
mgem2=f ( x ) Njp ;
end
Mmoire
end
l=z e r o s ( nh , 1 ) ;
l h=nhp ;
f o r s =1: l h
f o r j=s : s+p
l ( j )= l ( j )+ intg_jfunction_Element_s ( k s i V e c t o r , p , alpha , beta , j , e
end
end
end
A=m a t s o l u t i o n ( k s i V e c t o r , e l F i n i s , p , nh , alpha , b e t a ) ;
A( 1 , : ) = 0 ;A( 1 , 1 ) = 1 ;
A( nh , : ) = 0 ;A( nh , nh )=1;
L=vectMember2 ( k s i V e c t o r , e l F i n i s , p , alpha , beta , nh , f ) ;
L( 1 ) = 0 ;
L( nh )=0;
U=A\L ;
Mmoire
end
k s i V e c t o r ( 1 , l h+p+2:nh+p+1)=b ;
u=z e r o s ( 1 , s i z e ( I , 2 ) ) ;
f o r x=1: s i z e ( I , 2 )
u ( x )=0;
f o r i =1:nh
u ( x)=u ( x)+U( i ) d s p l i n e K s i ( k s i V e c t o r , i , p , I ( x ) ) ;
end
end
46
Mmoire
Solution approche
0.018
0.016
0.014
0.012
u(x)
0.01
0.008
0.006
0.004
0.002
0
0.2
0.4
0.6
0.8
0.8
Solution exacte
0.018
0.016
0.014
0.012
u(x)
0.01
0.008
0.006
0.004
0.002
0
0.2
0.4
0.6
x
0.06
0.08
0.1
0.12
0.14
0.16
0.2
0.4
0.6
0.8
x 10
6
4
2
Erreur
u(x)
0.04
0
2
4
6
8
0.2
0.4
0.6
0.8
47
Mmoire
3 Commentaire
Commentaire sur la mthode d'lments nis classique et la mthode d'lments nis par B-splines
1. La similarit
Dans les deux mthodes, on utilise la mme formulation variationnelle et la mme
technique l'assemblage.
2. La dirence
La base : Dans la mthode d'lments nis classique, on choisit les fonctions
d'interpolations de Lagrange et dans la mthode d'lments nis par B-splines,
on choisit les fonctions B-splines. Pour le degr un, les bases de deux mthodes
sont concides, mais elles sont direntes en degr suprieur 1.
La continuit : Les fonctions d'interpolations de Lagrange de degr p sont seulement de classe C 0 mais les fonctions B-splines de degr p sont de classe C p1 .
Les fonctions d'interpolations de Lagrange peuvent recevoir des valeurs ngatives,
mais les fonctions B-splines sont toujours positifs, donc tous les composants de la
matrice de raideur dans la mthode des lments nis par B-splines sont toujours
positifs.
Le nombre de fonctions de base : Avec la mme N lments, dans la mthode des
lments nis classique pour degr p, on doit calculer N p + 1 fonctions de base,
mais dans la mthode des lments nis par B-splines, on doit seulement calculer
N + p fonctions de base.
L'erreur entre deux mthodes :
48
Mmoire
3
20
x 10
20
x 10
solution approche
solution exacte
solution exacte
solution approche
15
15
err = 4.2711e004
err = 1.3527e004
u(x)
10
u(x)
10
0.2
0.4
0.6
0.8
0.2
0.4
20
0.8
0.8
solution approche
solution exacte
15
err = 4.5438e007
0.014
0.8
x 10
solution exacte
solution approche
0.016
0.6
x
err = 7.6583e006
0.012
u(x)
u(x)
10
0.01
0.008
5
0.006
0.004
0.002
0
0.2
0.4
0.6
0.8
0.2
0.4
0.018
0.018
solution exacte
solution approche
0.016
0.014
solution approche
solution exacte
0.016
0.014
err = 1.6163e006
0.01
err = 2.3235e007
0.012
0.01
u(x)
0.012
u(x)
0.6
x
0.008
0.008
0.006
0.006
0.004
0.004
0.002
0.002
0.2
0.4
0.6
x
0.8
0.2
0.4
0.6
x
49
Mmoire
RFRENCES
[1] P.A.RAVIART, J.M.THOMAS, Introduction l'analyse numrique des quations aux
drives partielles, MASSON (1983)
[2] Pierre PANSU, Interpolation et Approximation par des B-splines, February 9, 2004.
[3] J.Austin Cottrell, Thomas J.R.Hughes, Yuri Bazilevs, Isogeometric Analysis : toward
integration of CAD and FEA, WILEY(2009)
50