Académique Documents
Professionnel Documents
Culture Documents
Dr. M. DIOP
1
Table des matières
1 Calcul Matriciel 8
2.3.4 La commande if . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.1 Graphes 2D et 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2
4 APPLICATION DES METHODES NUMERIQUES AVEC SCILAB 41
4.3 Calcul des structures (barres et poutres ) selon la Méthode des Eléments
3
INTRODUCTION
l’automatisme ... .
Scilab est un logiciel, un outil et en même temps un langage. C’est un logiciel interactif
domaine de l’ingénierie.
au clavier (comme une calculatrice) ; soit de réaliser des programmes (appelés scripts) ou
Toutefois, les principales notions sont présentées et invitent l’étudiant à chercher par lui-
I Environnement de Scilab
• Pour lancer Scilab dans les environnements Windows ou MacOs, il suffit de cliquer sur
4
où on distingue 4 fenêtres :
2 : C’est la zone de commande (aussi appelé le terminal). Cette zone permet de taper les
commandes ou les expressions à évaluer à droite du prompt −− > puis taper < enter >
3 : C’est la zone des variables, des tableaux. Cette zone permet de visualiser les variables
4 : C’est la zone de l’historique des commandes. Il est possible de faire glisser ces com-
• Scilab est un langage interprété, c’est à dire qu’il exécute directement (sans compilation)
Exemple
−− > 2+5
ans =
Le résultat est mis automatiquement dans une variable appelée ans (answer). Celle-ci peut
5
être utilisée pour le calcul suivant.
Il peut être utile d’enregistrer le résultat d’un calcul dans une variable autre que ans. On
le fait en mettant le nom de la variable à gauche d’un signe égal qui à droite a le résultat
du calcul :
Exemple
−− > a=2+5
a=
• Scilab gère les nombres entiers, réels, complexes, les chaı̂nes de caractères ainsi que les
possible, et si plusieurs lignes d’instructions ont été tapées, les modifications ne sont pas
aisées.
• Pour ouvrir l’éditeur à partir de la console, cliquez sur la première icone dans la barre
d’outils ou sur Applications > SciNotes dans la barre de menus. (ou dans la console edit).
L’éditeur s’ouvre avec un fichier par défaut qui s’intitule « sans titre 1 »
6
• Pour compiler le fichier on clique sur Exécuter dans la barre de menus, trois options
sont proposées :
a) fichier sans écho : le fichier est exécuté sans que le programme ne s’écrive dans la
c) jusqu’au curseur, avec écho : réécrit la sélection choisie avec la souris dans la console
et l’exécute.
• L’aide sur SciLab est caractérisé par la fonction help qui va afficher l’aide général. Pour
avoir une aide spécifique, il faut renseigner à la fonction help ce que nous voulons chercher
réellement.
• Le logiciel Scilab est essentiellement basé sur le calcul matriciel numérique. Tous les
objets utilisés dans Scilab sont donc définis au travers de matrices ou vecteurs.
7
Chapitre 1
Calcul Matriciel
Les composantes d’une même ligne sont séparées par un espace ou une virgule. Les
lignes sont séparées par un point virgule. La matrice est déterminée par des crochets,
-->A = [1 2;3 4]
A =
1. 2.
3. 4.
Les composantes d’une matrice peuvent être des nombres réels, complexes ou d’un
v =
8
Afin d’alléger l’affichage, un point-virgule « ; » en fin de commande empêche le renvoie
−− > v(i)
Soit A une matrice, l’élément en troisième ligne et quatrième colonne s’obtient par :
» A(3,4)
−− > A(i, :)
−− > A( :, j)
On peut aussi facilement extraire des sous matrices d’une matrice à l’aide de cette syntaxe
Pour mettre sous forme d’un vecteur colonne les colonnes de A les unes après les autres,
on écrit :
−− > A( :)
Enfin, pour supprimer des lignes ou des colonnes d’une matrice, on les remplace par une
A([1 2], :) ou A(1 :2, :) fournit la matrice composée des 2 premières lignes de A
9
TP Soit
0 −8 6 6
A= ∈ M4 (R)
−1 −8 7 −8
1 −14 11 1
1. créer la matrice A.
A(2,3), A(2, :), A( :,3), A(2 :3, :),A(1 :2,3 :4), A([1,3],[2,4]),A( :,1)=[], A(2, :)=[], A=[A ;[0
NB : Plusieurs commandes peuvent être écrites sur une ligne. Elles seront alors séparées
Le symbole // dans une ligne a pour effet que le reste de la ligne ne sera pas exécuté (ceci
Remarque C’est l’opérateur d’incrémentation sous Scilab. Par défaut l’incrément est de
1.
Dans Scilab, il existe des fonctions qui permettent de générer automatiquement des
matrices particulières.
La fonction ones(m,n) construit une matrice de taille m × n dont toutes les composantes
-->A=ones(3,5)
A =
1. 1. 1. 1. 1.
10
1. 1. 1. 1. 1.
1. 1. 1. 1. 1.
De façon similaire, on peut définir une matrice de composantes nulles avec zeros(m,n).
-->A=zeros(5,3)
A =
0. 0. 0.
0. 0. 0.
0. 0. 0.
0. 0. 0.
0. 0. 0.
La fonction eye(m,n) construit une matrice dont les éléments diagonaux sont égaux à
-->A=eye(3,4)
A =
1. 0. 0. 0.
0. 1. 0. 0.
0. 0. 1. 0.
v=linspace(1,5,3)
v =
1. 3. 5.
11
Nous présentons dans la suite (TP) un ensemble de fonctions usuelles liées à l’utilisation
des matrices.
max(A) , min(A) , rank(A) , det(A) , diag(A) , triu(A) tril (A), inv(A) et spec(A)
Pour obtenir les dimensions d’un vecteur, on peut utiliser les fonctions size ou length.
-->p=[1 2 3 4]
p =
1. 2. 3. 4.
-->q=p’
q =
1.
2.
3.
4.
Maintenant pour
-->length(p)
ans =
4.
12
Scilab renvoie 4 et il renvoie aussi la même valeur que
-->length(q)
ans =
4.
De même,
-->size(p)
ans =
1. 4.
-->size(q)
ans =
4. 1.
0
p est la transposée de p. La fonction length peut aussi être utilisée pour les matrices.
Les opérateurs les plus courants :+, −, ∗, /,∧ s’utilisent de manière classique. Le dernier
signifie ”puissance”.
−− > 1+2*3
−− > (1+2)*3
−− > 2∧ (1/2)
−− > 2∧ 1/2
Au vu des résultats précédents et d’autres que vous auriez pu essayer, proposez des règles
13
Attention
Avec Scilab, il faut être très attentif sur le type d’opérations souhaitées et cela en parti-
Comme exemple, considérons deux vecteurs que l’on multiplie entre eux :
v1 = [1 ; 2 ; 3] ;
v2 = [1, 2, 3] ;
L’opération v1*v2 effectue le produit d’un vecteur colonne v1 avec un vecteur ligne v2 et
−− > y1 = v1*v2
−− > y1 =
1. 2. 3.
2. 4. 6.
3. 6. 9.
−− > y2 = v2*v1
−− > y2 =
−− > 14
Alors que si l’on veut effectuer le produit composante par composante, il faut utiliser
−− > y3 = v1’.*v2
−− > y3 =
−− > 1 4 9
Les opérations usuelles entre matrices et vecteurs sont aussi possibles. Par exemple, si A
-->A=[1 2;3 4]
A =
14
1. 2.
3. 4.
-->B=[4 3;2 1]
B =
4. 3.
2. 1.
-->A+B
ans =
5. 5.
5. 5.
-->A-B
ans =
- 3. - 1.
1. 3.
-->A*B
ans =
8. 5.
20. 13.
0
La transposée d’une matrice est obtenue avec . Par exemple, C = AT s’obtient avec
15
-->C=A’
C =
1. 3.
2. 4.
-->P=A.*B
P =
4. 6.
6. 4.
construit une matrice P = (pij ) ayant les mêmes dimensions et définie par
De même
-->Q=A./B
Q =
0.25 0.6666667
1.5 4.
16
TP Soit la matrice A= [1 2 3 ;2 5 4 ;1 0 -1]
Description
colonne.
colonne.
2. En utilisant uniquement les commandes ones et zeros donner les instructions qui per-
l’élément a1,3 .
NB Les dimensions des matrices intervenant dans les opérations doivent évidemment être
17
compatibles pour l’opération envisagée. Si tel n’est pas le cas, un message d’erreur sera
L’algorithme d’élimination de Gauss est implémenté pour résoudre les systèmes linéaires.
A =
1. - 1. 2.
7. - 3. 2.
1. 8. 5.
-->b=[0; 2; -5]
b =
0.
2.
- 5.
-->x=A\b
x =
0.1833333
- 0.45
- 0.3166667
18
Il existe d’autres fonctions fonctions numériques pour résoudre les systèmes linéaires
x = A\b par
-->A1=inv(A)
A1 =
-->x=A1*b
x =
0.1833333
- 0.45
- 0.3166667
x + 2y − z = 1
−x + 3y − z = 0
−x + 2y − 5z = 0
TP Soit
0 1 1
A=
1 0 1
1 1 0
19
3. Si oui, Calculer son inverse A−1 .
0 2 −1
A=
−1 3 −1
−1 2 0
1. Déterminer le spectre de A.
2y − z = 1
−x + 3y − z = 0
−x + 2y = 0
Remarque
Les commandes effectuées jusqu’à maintenant ont créé des variables qui sont stockées
20
Chapitre 2
lab. Parmi les fonctions fréquemment utilisées, on peut noter les suivantes :
21
−− > conj : complexe conjugué,
principale d’un programme. Scilab a son propre éditeur, mais n’importe quel éditeur de
text suffit.
prédéfinie, mais à coté de ses fonctions prédéfinies, Scilab offre à l’utilisateur la possibi-
lité de définir ses propres fonctions : La première méthode permet de définir des fonctions
simples sur une ligne de commande. La seconde, beaucoup plus générale permet de définir
♠ Commande deff()
créer la fonction directement dans l’espace de travail courant, sans utiliser un m-file .
deff(’y=f(x)’,’y=expression’)
Remarque
L’expression mathématique qui constitue le corps de la fonction ainsi que les variables
sont considérées par Scilab comme des chaines de caractères et doivent donc être tapées
22
entre apostrophes.
♠ Les fonctions
Pour définir une fonction en Scilab, la méthode la plus courante est de l’écrire dans un
fichier dont le nom comporte l’extension .sci, dans lequel on pourra d’ailleurs mettre plu-
y1 =
y2 =
..
.
yn =
endfunction
où les variables arg1 , arg2 , · · · argn sont les variables d’entrées et ils ne doivent pas être
Les variables y1 , y2 , ...yn sont les arguments de sortie, la fonction doit affecter une valeur
pour y1 , y2 , ...yn .
Le rôle d’une fonction est d’effectuer des opération sur une ou plusieurs entrée pour ob-
Une fonction est appelé depuis un script (un programme principal) ou dans une fenêtre
» nom fonction( )
TP : définir une fonction avec function où f (x) = x2 +x+1 et calculer f(2), f(-1), f(0),f(10)
function[y] = lmi(x)
23
y = x.∧ 2 + x + 1
end
Il peut également afficher quelque chose en utilisant la commande disp(...) qui affiche
le contenu.
−− > A=[1 2 3] ;
−− > disp(A)
Les instructions de contrôle sont à la base de tout calcul numérique. En Scilab, les
boucles for et while sont très utilisées pour les processus itératifs. Leur utilisations est le
premier pas dans la programmation. Il est donc indispensable de les bien comprendre.
== égal
< inférieur à
> supérieur à
| ou
∼ non
24
2.3.2 La boucle for
La boucle for / end répète une instruction un certain nombre de fois. Sa forme
générique est :
instruction 1
instruction 2
instruction k
end
for est associée à une variable, et exécute un processus plusieurs fois en prenant à chaque
for i = 1 : 2 : 10
instruction 1
instruction 2
instruction k
end
Exemple Soit A=[1 1 2 3] utilise la boucle for pour soustraire à tous les éléments (sauf
25
−− > for i = 2 : 4
−− > A(i)=A(i)-A(1)
−− > end
-->A=zeros(5,5);
-->for i=1:5
-->A(i,i)=1;
-->end
-->for i=1:4
-->A(i,i+1)=2;
-->end
-->disp(A)
1. 2. 0. 0. 0.
0. 1. 2. 0. 0.
0. 0. 1. 2. 0.
0. 0. 0. 1. 2.
0. 0. 0. 0. 1.
TP Calculer
100
i2
X
S=
i=1
La boucle while / end répète une instruction jusqu’à ce qu’une condition, ou un groupe
26
while condition
instruction
end
Example Calculer
100
i2
X
S=
i=1
−− > S=0
−− > i=1
−− > S = S + i2 ;
−− > i=i+1
−− > end
-->A=eye(5,5);
-->i=1;
-->while i<5
--> A(i,i+1) = 2;
--> i = i + 1;
-->end
-->disp(A)
1. 2. 0. 0. 0.
0. 1. 2. 0. 0.
27
0. 0. 1. 2. 0.
0. 0. 0. 1. 2.
0. 0. 0. 0. 1.
1. Construire une fonction suite.sci calculant les premiers termes de la suite un . Cette
fonction aura comme arguments d’entrée les données suivantes : la matrice A, le second
2.3.4 La commande if
Les instructions conditionnés permettent d’ effectuer une action si une certaine condi-
La plus simple est if, qui exécute des commandes seulement si une condition est remplie.
Dans sa version la plus complète la structure if permet aussi de prévoir ce que l’on fait si
La commande if
if condition 1
expression 1
else
expression 2
end
28
La forme générale de la commande if est
if condition 1
expression 1
elseif condition 2
expression 2
else
expression 3
end
x si x<0
y=
x2 x≥0
si
-->A=zeros(5,5);
-->for i=1:5
-->for j=1:5
--> A(i,j) = 2;
-->elseif j==i
--> A(i,j) = 1;
-->end
-->end
-->end
-->disp(A)
29
1. 2. 0. 0. 0.
0. 1. 2. 0. 0.
0. 0. 1. 2. 0.
0. 0. 0. 1. 2.
0. 0. 0. 0. 1.
D’autres instructions de contrôle telles que switch, break, continue, et error sont dispo-
nibles. Vous pourrez consulter la documentation avec la commande help suivi du nom de
la commande.
TP
Faire un programme sous Scilab qui trouve les racines d’une équation de second degré
ax2 + bx + c=0
TP
x si x<0
y = x2 si x>0
10 si x=0
TP
TP Soit
Xn+1 = AXn + b
X0 donné
30
1 2 −1 1
Avec A =
−1 3 −1
et b=
1
−1 2 0 1
1
Calculer X1 , X2 , X3 , X4 , X5 , X6 , X7 . Prenez X0 =
0
1
• Nous pouvons calculer le temps CPU d’exécution d’un programme. Il suffit de faire
l’instruction tic au début du script et ensuite de faire toc en fin du script pour avoir le
31
Chapitre 3
données en Scilab
Dans cette partie, nous allons présenter les principes de base indispensable pour des-
siner des courbes sous Scilab. Les graphiques, crées peuvent être visualiser en TP.
3.1 Graphes 2D et 3D
La commande de base utilisée est la commande plot. Dans sa syntaxe la plus simple,
Exemple : Pour obtenir le graphe de la fonction sin(x) sur l’intervalle [0, 2π], nous com-
−− > x = [0 : .5 : 2π] ;
−− > y=sin(x) ;
−− > plot(x,y)
Remarque
32
Si une figure existe déjà, elle trace le graphe sur cette figure sinon Scilab crée automati-
Exemple :
−− > figure(1) ;
−− > f=cos(x) ;
−− > plot(x,f)
−− > figure(2) ;
−− > g=sin(x) ;
−− > plot(x,g)
Ces deux séquences construisent deux fenêtres, la première contenant le graphe de cos(x),
TP :
−− > x=[0 : .1 : 2 ∗ π] ;
−− > f=cos(x) ;
−− > g=sin(x) ;
−− > plot(x,f)
−− > plot(x,g)
Les deux graphes, celui de cos(x) et celui de sin(x), apparaissent dans la même fenêtre et
−− > x=[0 : .1 : 2 ∗ π]
−− > f=cos(x) ;
−− > g=sin(x) ;
−− > plot(x,f,x,g)
33
Le tracé d’une courbe paramétrique dans l’espace se base sur la commande param3d
Exemple
−− > x = 4*sin(t) ;
−− > y =4*cos(t) ;
−− > z =2*t ;
−− > param3d3(x,y,z)
−− > t = linspace(0,10*pi,500) ;
−− > x = cos(t) ;
−− > y = sin(t) ;
−− > plot3(x,y,t)
−− > title(’Helice’)
plot2d4 : flèches
Lorsque plusieurs tracés ont lieu dans la même fenêtre, il peut être intéressant d’utiliser
un style différent pour distinguer les différents tracés. Pour cela on ajoute un troisième
34
comme suit :
g vert * étoiles
b bleu d diamants
Exemple
Exemple
−− > f=cos(x) ;
−− > g=sin(x) ;
−− > plot(x,f,’o’,x,g,’*’)
Exemple
−− > y1 = cos(x) ;
−− > y2 = cos(2 ∗ x) ;
−− > y3 = cos(4 ∗ x) ;
35
−− > plot (x,y3 ,’k :’)
Les différentes fonctions suivantes permettent de gérer les labels des axes et commen-
taires sur les figures, ainsi que diverses fonctions pour manipuler les graphiques.
√
Pour donner un titre à une figure, on utilise la fonction title comme suit :
suit :
suit :
−− > xgrid
√
La légende (surtout en cas de plusieurs graphes) peut être affichée en utilisant la com-
Exemple de programmation
TP :
−− > y = sin(x);
−− > plot(x,y)
−− > xgrid
36
−− > legend (’y=sin (x)’) ;
TP
Soit un vecteur x contenant des valeurs comprises entre 0 et 10 avec un pas de 0.05.
2. Ecrire (prog.sci) qui trace le graphe de f (x), Ajouter le libellé des axes (titres) et don-
TP
Soit un vecteur x contenant des valeurs comprises entre −6π et 6π avec un pas de 0.001.
Soit deux fonctions f et g définie par : f (x) = sin( π4 x) et g(x) = cos( π4 x).
(Veillez à ce que ce graphe ait un titre, des noms aux axes, une légende).
Il est possible de décomposer une fenêtre en sous-fenêtres et d’afficher une figure différente
TP :
1. Soit un vecteur x contenant des valeurs comprises entre 0 et 2π avec un pas de 0.1.
2. Utiliser la fonction subplot pour tracer ces courbes dans la même fenêtre (Veillez à ce
que chaque graphe ait un titre, des noms aux axes, une légende).
TP :
x(t) = A cos(t)
avec 0 ≤ t ≤ 2π
y(t) = B sin(t)
37
1 Tracer ces équations dans le plan pour A = 2 et B = 1.
TP :
+∞
X
f (t) = an cos(nwt)
n=1
Avec an = 2A
nπ
sin(n π2 ) et w = 2π
T
valeurs de n.
•Surfaces (ou nappes) : le tracé d’une surface dans l’espace se base sur : la fonction
mesh(X,Y,Z) ou surf(X,Y,Z)
−− > y = x ;
domaine de calcul de Z.
−− > surf(X,Y,Z) //Donne une représentation où les mailles sont colorées.
0.2 : π]
−− > x = [- pi :0.2 : pi ] ;
−− > y = [- pi :0.2 : pi ] ;
38
−− > surf (X,Y,Z).
Dans le cas d’une nappe, la figure proposée par Scilab n’est pas toujours très lisible. Il faut
cliquer sur l’icône pivoter en haut à gauche de la fenêtre graphique, puis faire tourner
la figure en maintenant le clic droit enfoncé sur le graphique jusqu’à obtenir une vue
correcte.
Scilab ne permet pas uniquement l’affichage des point pour tracer des courbes, mais
Les calculs statistiques de base peuvent être effectués avec Scilab. Pour des calculs plus
Application
Pour des véhicules légers on a relevé les consommations moyenne de carburant en fonction
Vitesse (km/h) 10 20 30 40 50 60 70 80 90
2. Calculer les moyennes arithmétiques, les variances, les écart type, la covariance de x y
suit :
−− > plot(X,Y)
39
On peut également utiliser plod2d
√
Pour la moyenne on utilise la fonction mean comme suit :
Parmi les fonction de dessin, on peut trouver : histplot, hist3d pie, polarplot, stem...
etc.
40
Chapitre 4
L’analyse numérique est le domaine des mathématiques où l’on conçoit et étudie des
Nous allons voir dans ce qui suit, comment utiliser Scilab comme un véritable langage de
programmation.
4) créer l’algorithme de calcul : que va-t-on vouloir faire étape par étape
6) évaluer chaque étape : lancer le programme à chaque étape et voir la cohérence des
résultats.
41
4.1 Problèmes aux limites
et mécaniques.
u(a) = ga , (4.2)
u(b) = gb (4.3)
Où c(x) ∈ L∞ (]a, b[) un coefficient qui dépend des propriétés du matériau (module de
2. Diffusion de la chaleur
∂T (x, t) ∂ 2 T (x, t)
−α = f (x, t), ∀x ∈]a, b[ , ∀t > 0 (4.4)
∂t ∂x2
T (x, 0) = T0 (x), ∀x ∈]a, b[, (4.5)
42
Où T est la température de la barre métallique de longueur l([a, b]) = b − a, α > 0 le
Es
Où b(x) = Ep Ip (x)
, Es module de réaction du sol, Ep le module d’élasticité du pieu, Ip (x)
l’inertie du pieu, f ∈ L2 (]a, b[) et 0 < b ∈ L∞ (]a, b[). Ce problème modélise la déformation
Tous ces problèmes sont appelés ”problèmes aux limites” et leur résolution analytique est
Nous allons dans cette partie proposer une méthode d’approximation à savoir la
méthode des différences finies pour trouver la solution approchée des ces types de problèmes.
La méthode est basée sur l’approximation des dérivées par leur quotient différentiel.
u(x + h) − u(x)
u0 (x) = lim
h→0 h
u(x+h)−u(x)
Pour h ≪ 0 on pose u0 (x) approximativement égale à son quotient différentiel h
i.e
u(x + h) − u(x)
u0 (x) '
h
43
pour h ”très petit” (h ≪ 0). On utilise le développement limité de u autour de x à l’ordre
2, on a alors
h2 (2)
u(x + h) = u(x) + hu0 (x) + u (η)
2!
u(x + h) − u(x) h
− u0 (x) = u(2) (η) → 0
h 2!
u(x + h) − u(x)
u0 (x) '
h
u(x + h) − u(x)
u0 (x) '
h
u(x) − u(x − h)
u0 (x) '
h
u(x + h) − u(x − h)
u0 (x) '
2h
44
par :
u(x + h) − 2u(x) + u(x − h)
u00 (x) '
h2
par :
u(x − 2h) − 4u(x − h) + 6u(x) − 4u(x + h) + u(x + 2h)
u(4) (x) '
h4
suivante :
u(xi + h) − 2u(xi ) + u(xi − h)
u00 (xi ) ' ;
h2
avec fi la valeur approchée de f au point xi . Les conditions aux bords sont discrétisées
45
ui+1 − 2ui + ui−1
− + ci ui = fi , ∀i ∈ {1, 2, . . . N } (4.11)
h2
u0 = ga (4.12)
uN +1 = gb , (4.13)
On dit usuellement qu’on a discrétisé le problème par une méthode de différences finies
Ah Uh = Fh
2
aii = + ci , ∀i ∈ {1, 2, . . . N }
h2
−1
aij = h2
, ∀(i, j) ∈ ({1, 2, . . . N })2 et |i − j| = 1 ,
aij = 0, ailleurs
u1
u2
.
Uh =
.
.
uN
46
et
ga
f1 + h2
f2
.
Fh =
.
.
.
gb
fN + h2
linéaire
Ah Uh = Fh
1
− u00 (x) + u(x) = p, ∀x ∈]0, 1[ (4.14)
EI
u(a) = 0, (4.15)
u(b) = 0 (4.16)
qui traduit la déformation d’une poutre en flexion fixée à ses extrémités, où le module de
Ah Uh = Fh
poutre.
PROJET
47
Dans ce projet on utilise la méthode des différences finies pour la résolution
numérique.
Problème 1
∂u ∂ 2u
= µ 2, x ∈ [−L, L], t ∈ [0, T ],
∂t ∂x
U n+1 = M U n
48
où la matrice M et le vecteur U n sont à préciser.
1+x si|x| < 1,
u0 (x) =
0 sinon.
Problème 2
luant est miscible dans le liquide, mais plus léger. La concentration de polluant C(x, y, t)
!
∂C ∂C ∂C ∂ 2C ∂ 2C
+ V1 + V2 −K +
∂t ∂x ∂y ∂x2 ∂y 2
Γ1 = {(x, y) ∈ Γ |V.n(x, y) ≥ 0}
C|Γ0 = Cin
49
Sur le bord sortant, le fluide transporte le polluant vers l’extérieur. On impose alors
une condition aux limites de Neumann. Cette condition autorise la sortie du polluant du
domaine.
∂C
=0
∂n|Γ1
C(x, y, t = 0) = C0 (x, y)
C n+1 = AC n
Dans ce TP, nous allons implémenter les algorithmes des méthodes de résolution des
la méthode de Newton-Raphson.
2) Tracer le graphe y = f (x) sur un intervalle tel qu’il vous permet de localiser la solution
de l’équation.
50
√ √
3) Il est à noter que, les solutions exactes de cette équation sont x1 = 2 et x2 = − 2
1. La méthode de dichotomie
a) Quel est le nombre d’opération nécessaire pour atteindre une précision de = 0.01 si
• Déclarer a, b et .
• Quelle est la fonction qui vérifie le théorème des points fixes, sur l’intervalle [0, 3] ?
• Écrire un programme Scilab qui donne la solution de cette équation. Prendre = 0.01
et x0 = 0 puis x0 = 3. Conclure !.
3. La méthode de Newton
• Écrire un programme Scilab qui donne la solution de cette équation. Prendre = 0.01
et x0 = 2 puis x0 = 3. Conclure !.
51
4.2.2 TP : Système Linéaire
Durant ce TP, nous allons implémenter les méthodes numériques de résolution des
9x1 + x2 + x3 = 14
(S) : x1 + 15x2 + 4x3 = 43
x1 + 4x2 + 24x3 = 81
Xk+1 = M Xk + D
associée à la matrice A.
3. 2. Proposer pour chacune des méthodes utilisées un code qui résout (S).
Durant ce TP, nous allons implémenter sous Matlab des algorithmes d’interpolation
de Newton.
tance, la chaine de mesure et le matériel utilisé dans cette expérimentation sont illustrés
52
sur la figure suivante :
Température (25o C) 15 20 30 40 50 60
2. Interpolation de Lagrange
grange.
a) Déterminer le degré du polynôme de Newton qui passe par tous ces points .
ton .
Le but de ce TP est le calcul numérique d’une intégrale définie en utilisant les méthodes
53
On se propose de calculer l’intégrale définie :
Z 3
ln(2x + 1)dx
0
1. Ecrire un programme qui calcule cette intégrale en utilisant les méthodes du point
conclure.
Z 2π
cos(x)dx
0
Kutta.
3. Afficher sur la même figure, la solution exacte ainsi que les solutions estimées.
54
4.3 Calcul des structures (barres et poutres ) selon
Dans cette partie, nous allons réaliser sous Scilab, des calculs symboliques ( opération
sur les polynômes, recherche des racines, dérivation, intégration, résolution d’équations
comme résultat. N’ayant pas été abordée au cours théorique, la collection de fonctions
Scilab permettant la réalisation de ces types de calcul se trouve dans la boite à outil
PROJET
A-Instructions :
Chaque groupe choisira librement un système dans leur domaine sur lequel il doit tra-
vailler. Les groupes doivent collaborer au moment du choix du système pour éviter que 2
B-Résultats attendus :
- Livrable
- Contenu du rapport :
55
5. La discrétisation du problème en 2D d’espace,
7. Les programmes.
C-Modalités d’évaluation
Critères Cote
Concordance système-modèle 2
Les interprétations 3
Modèle complet en 2D 2
Discrétisation du modèle 2D 3
Total 20
56