Cours Algo Matlab Tsgeo1 - 2021 2022

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 26

ALGORITHMIQUE ET INITIATION A MATLAB

TS GEO 1
EN-TP
Promo 2021-2022

Enseignant :

Kassiénou LAMIEN
Docteur en Mathématiques Appliquées
Spécialité: Analyse Numériques et Simulations
Maître-Assistant à l’IST/ENS
Contenu

• Installation de MATLAB

• Motivation

• Partie I: ALGORITHMIQUE

1. Définitions
2. Quelques exemples de langages de programmations
3. Quelques instructions communes à l’ensemble des langages

• Partie II: INITIATION A MATLAB

1. Introduction
2. Généralités et prises en main
3. Les vecteurs
4. Les matrices
5. Programmation en matlab
6. Le graphisme
7. Résolution des EDO
Motivation

Activité 1 : script et work space


Saisir directement (work space ) et sur une page d’édition (script) l’ensemble des instructions
suivantes:

t=linspace(-5,5,1000);
x=(1+t.^2).*sin(20*t);
y=(1+t.^2).*cos(20*t);
z=t;
plot3(x,y,z);

Activité 2 : : Fonction à une variable

Créer et exécuter la fonction à une variable suivante :

function fonction_parametree(n)
t = linspace(-5,5,n);
x = (1+t.^2).*cos(20*t) ou sin (t) .^3;
y = (1+t.^2).*sin(20*t) ou cos(t) +cos(t).^4;
curve = animatedline('Color','r','LineWidth',4);
set(gca, 'XLim', [-30, 30], 'YLim', [-30, 30], 'ZLim', [-5, 5]);
view(43,24);
hold on
for i=1:length(t)
addpoints(curve, x(i), y(i), t(i));
head = scatter3(x(i), y(i), t(i), 'Filled', 'MarkerFacecolor', 'k', 'MarkerEdgecolor', 'k');
drawnow
pause(0.00001);
delete(head)
end

Activité 3 : Fonction à deux variables

Créer et exécuter la fonction à deux variables suivantes :

function fonction_a_deux_variables(n,a)
x=linspace(0,pi,n);
y=linspace(0,pi,n);
[X Y] = meshgrid(x,y);
f = sin(Y.^2 + a*X) - a*cos(a*Y - X.^2);
mesh(X,Y,f);
end

Partie I : algorithmique
En général, la résolution d’un problème en s’aidant d’un ordinateur à travers un programme
informatique s’effectue suivant le schéma :

Problème Résumé des tâches nécessaires Codage

Solution Ordinateur

1- Définition
Un algorithme est une suite d’instructions (Résumé des tâches nécessaires), qui une fois
exécutée conduit à un résultat donné.

Pour fonctionner, un algorithme doit donc contenir uniquement des instructions


compréhensibles par celui qui devra l’exécuter.

a) Exemple d’Algorithme:
- La recette qui permet de cuisiner un plat spécifié est un algorithme;
- Indiqué un chemin à une personne égarée c'est lui faire exécuté un algorithmes;
- faire chercher un objet à quelqu’un par téléphone c’est fabriquer et faire exécuter
des algorithmes.

b) Exemple d’algorithme de trois instructions:


- première instruction: choisir un nombre réel
- deuxième instruction: lui soustraire le quart de son carré
- troisième instruction: donner la racine carrée du résultat

Cette série d’instructions forme un algorithme, qui correspond à l’ensemble des tâches
nécessaires pour la détermination de l’image d’un réel par la fonction:

𝟏 𝟐
𝒇(𝒙) = √𝒙 − 𝒙
𝟒
c) Remarque:

Un algorithme est écrit pour un objectif bien déterminé, pour cela, le rédacteur doit avoir de
l’intuition, être méthodique et très rigoureux.

Pour transmettre des instructions à un ordinateur pour qu’il effectue les tâches à votre place,
un langage de programmation (la langue que comprend votre machine) est Nécessaire.

2- Quelques exemples de langages de programmations:

 C
 C++
 COBOL
 FORTRAN
 JAVA
 PASCAL
 ADA
 PROLOG
 MATLAB
 …

3- Quelques instructions communes à l’ensemble des langages:

 Affectation ou lecture
L’affectation ou la lecture signifie que l’utilisateur doit rentrer une valeur, qui peut être
variable, pour que le programme la mémorise.

 Affichage
Sous la demande de l’utilisateur, le programme cherche et affiche la valeur sollicitée par
l’utilisateur.
 Les boucles
Une boucle est une structure répétitive ou itérative, c’est-à-dire que la boucle effectue n fois
un calcul sous le contrôle d’une condition d’arrêt. Il existe deux types de boucles.

- La boucle pour qui a pour schéma général:

Pour compteur = valeur initiale à valeur final

Instruction(s)

fin

- La boucle tant que qui a pour schéma général:

tant que conditions

instructions

fin

 Les tests
Il existe principalement deux types de tests :

- la forme complète qui a pour schéma général:

si conditions

instruction(s)

sinon

instruction(s)

fin

- la forme simplifiée qui a pour schéma général:

si conditions
instruction(s)

fin

Néanmoins, on a la possibilité d’imbriqué un ou plusieurs tests.

Par exemple :

si conditions

instruction(s)

sinon
si conditions

instructions

sinon

instruction(s)

fin
fin
Remarque : les tests vérifient une condition et exécutent les instructions une seule
fois, par conséquent ils sont distincts des boucles.

Application 1 :
soit U la suite de nombres réels définie par:

𝟏
𝑼𝟎 =
{ 𝟐
𝑼𝒏+𝟏 = 𝟐𝑼𝒏 + 𝟑
1-Ecrire un algorithme pour calculer U210 en utilisant la boucle Pour.
(Autrement dit: déterminer un résumé des tâches nécessaires pour obtenir U210 , en
utilisant la boucle Pour )
2- Ecrire un algorithme pour calculer U1002 en utilisant la boucle tant que.
(Autrement dit: déterminer un résumé des tâches nécessaires pour obtenir U210 , en
utilisant la boucle tant que)

Correction :

1- Proposition d’algorithme pour calculer U210 en utilisant la boucle Pour


En effet, les tâches à effectuer se résume à calculer U1, U2, U3, … , U210. Ce qui constitue
l’algorithme demandéIl peut également se mettre sous la forme :
Calculer Un , n pour n allant de 1 à 210. D’où avec la boucle Pour on obtient :

U0 = 1/2
pour n = 0 à 209
Un+1 = 2Un + 3
fin
U210

2- Proposition d’algorithme pour calculer U210 en utilisant la boucle tant que

U0 = 1/2
n=0
tant que n est inférieur ou égale à 1001
Un+1 = 2Un + 3
n=n+1
fin
U1002
Partie II: INITIATION A MATLAB

INTRODUCTION
Type d’outil
MATLAB est un langage de programmation et un environnement de développement.

Société
MATLAB est commercialisé par The MathWorks une société américaine

Domaines
MATLAB est utilise aujourd’hui dans tous les domains: calcul numérique, éducation,
recherche, industrie, développement de projets, ...

Historique
MATLAB veut dire Matrix Laboratory. Il fut conçu par le mathématicien Cleve Moler de
Univerisité du Nouveau Mexique à la fin des années 70 à partir des bibliothèques Fortran,
LINPACK et EISPACK. Par la suite, Jack Little (ingénieur) comprend rapidement les
capacités et entreprend avec Steve Bangert, de le recoder en C. En 1984 Jack Little, Cleve
Moller et Steve Bangert créèrent la société The MathWorks afin de commercialiser la
version 1.0 de MATLAB .

Capacités
MATLAB est un langage interactif, de haut niveau exécution de tâches plus rapide que C,
C++ et fortran.

Outils et modules associés


Plusieurs outils sont incorporés à MATLAB pour la résolution de problèmes spécifiques:
Communications Toolbox, Control System Toolbox, Excel Link
MATLAB Compiler, Neural Network Toolbox, Optimization Toolbox, Real-Time
Workshop®, Robust Control Toolbox, SimMechanics, Simulink, Statistics Toolbox,
System Identification Toolbox, Virtual Reality Toolbox,

Alternatives
D’autres outils ont été développés (certains gratuits) et sont des alternatives à MATLAB:
Fermat, GNU Octave, IDL (langage), JMathLib, LMS Imagine.Lab, AMESim, Scilab,
Sysquake.
1. Généralités et prise en main

1.1 Aide, documents en ligne, espace de travail


Pour démarrer MATLAB, double cliquer sur l’icone de démarrage

Nous obtenons alors une fenêtre subdivisées en 4 parties :


-tout en haut la barre des menus qui se présente dans une même configuration que WORD.
En dessous
- à droite la fenêtre d’exécution des commandes MATLAB ou workspace,
-à gauche le contenu du dossier contenant le programme en cours

Il existe plusieurs fonctions intégrées à MATLAB qu’on peut utiliser sans forcement toutes les
retenir. Il est donc intéressant de savoir utiliser l’aide en ligne qui donne toutes les fonctions et
les syntaxes correspondantes. L’aide est uniquement disponible en langue anglaise. Elle permet
de retrouver toutes les informations utiles. En allant dans le menu Help->MATLAB help, une
nouvelle fenêtre s'ouvre partagée en deux. A gauche, on peut en cliquant sur le signet supérieur
correspondant, activer :
-Contents : La table des matières de l'aide en ligne. En cliquant sur un chapitre de l'arborescence,
son contenu est affiché dans la fenêtre de droite.
-Index : L'index de l'aide en ligne, qui répertorie toutes les commandes Matlab et permet
d'accéder à leur mode d'emploi spécifique. Pour une commande connue, on peut taper le nom
dans la fenêtre de saisie Search index for. Si on ne connait pas la commande on peut la
rechercher dans la liste alphabétique proposée. Pour avancer dans l'alphabet taper la première
lettre de la commande recherchée dans la fenêtre de saisie.
-Search : C’est un moteur de recherche dans l'index. On peut aussi taper lookfor nom du sujet
dans la fenêtre de travail MATLAB.
- Favorites : La liste des chapitres de l'aide stockées dans les favoris. Pour ajouter un chapitre
dans cette liste, se positionner dessus à partir de Contents et cliquer sur le bouton de droite de
la souris.
-Une aide très importante se présente sous la forme de programmes de démonstration auxquels
on peut accéder à partir de Help > Demo, ou bien en tapant demos directement dans la fenêtre
de commande.

1.2 Calculs élémentaires

Chaque commande passée à MATLAB est interprétée, le résultat est affiché, et l'utilisateur
reçoit de nouveau le prompt pour la commande suivante : c'est le mode interactif.

Déclaration des variables

MATLAB permet de créer et d’initialiser des variables. La déclaration des variables en


MATLAB suit les règles suivantes:
-toutes les variables sont des matrices ;
-pas de déclaration de type.

Exemples

a=2 (entrer)
Donne la valeur 2 à la variable a et affiche le résultat
a=2
b=3; (entrer)
Donne la valeur 3 à la variable b et garde le résultat en mémoire
b (entrer)
Permet d’afficher la valeur de la variable b.
b=a (entrer)
Change la valeur de la variable b en lui assignant la valeur de la variable a.

Opérations élémentaires

1+9 (entrer)
ans=10
6/2 (entrer)
ans=3
1/3
ans=0.3333
format long
Permet d’afficher une variable avec plus de chiffres avec la virgule.
ans= 0.33333333333333
format short
C’est le format par défaut
2^5
ans=32

Variables spéciales
pi (enter)
ans=3.1416
realmin
ans = 2.2251e-308
Plus petit entier positif que le logiciel peut enregistrer.
realmax
ans =1.7977e+308
Plus grand entier positif que le logiciel peut enregistrer.
eps
ans =2.2204e-016
Valeur assez petite et positive

Fonctions mathématiques
sin(pi/2)
ans=1
cos, tan, asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh, exp, log, sqrt, …

Gestion des variables


who
pour afficher toutes les variables.
whos
pour afficher toutes les variables avec indication sur leur taille.
size(a)
pour afficher les dimensions de la matrice a.
clear a
pour effacer la variable a.
clear (ou clear all) pour effacer toutes les variables.
clc pour effacer l’espace de travail,
2. Les vecteurs
2.1. Création d’un vecteur
Par énumération (pour les vecteurs n’ayant pas beaucoup d’éléments)

v=[1 2 5 4]
v=1 2 5 4

ou bien
v=[1,2,5,4]
w=[1;2;5;4]
w=
1
2
5
4
ou bien
w=v’

Par description (pour les vecteurs possédant plusieurs éléments suivant une logique)
x=0:pi/11:pi
X= Columns 1 through 7

0 0.2856 0.5712 0.8568 1.1424 1.4280 1.7136

Columns 8 through 12

1.9992 2.2848 2.5704 2.8560 3.1416

y=linspace(0,pi,12)
y = Columns 1 through 7
0 0.2856 0.5712 0.8568 1.1424 1.4280 1.7136
Columns 8 through 12
1.9992 2.2848 2.5704 2.8560 3.1416

z=linspace(0,pi)
Donne 100 éléments par défaut

2.2. Indexage et adressage


Pour afficher des éléments d’un vecteur
v(3)
ans = 5
v(2:1:4)
ans=2 5 4

ou
v(2:4)
v([4 3 2 3])
ans = 4 5 2 5
v([2 3])=[0 10]
v = 1 0 10 4

2.3. Opérations scalaires


a=2*v
a = 2 4 10 8
b=a-5
b =-3 -1 5 3
c=a.^2
c = 4 16 100 64
d=a*a’
d=184

2.4. Combinaison de vecteurs


K=[a b]
K =2 4 10 8 -3 -1 5 3
L=[k([3 7 4]) k(5:-1:1)]
L =10 5 8 -3 8 10 4 2

2.5. Récapitulatif : utilisation des symboles


[] énumération d’éléments
: description d’éléments
() ensemble d’arguments
, séparateur d’arguments
; séparateur de lignes; non affichage du résultat de l’exécution d’une instruction
. force l’opération à s’appliquer sur chaque éléments
Application 2
Donner sans l’aide de l’ordinateur les résultats des instructions suivantes:

1) a =0:3:18

2) b=linspace(0,12,7)

3) c = 4*b

4) d=size(a)

5) e=b’

6) f=b^2

7) g=a.^2

8) h=b.*a

9) i=b([1 3 7])

10) j= i(1,2)

11) b([1 5 7]) = [5:-2:1]

3. Les matrices

3.1. Création
Une matrice est un ensemble de lignes comportant toutes le même nombre de colonnes.

Exemples : Créer les matrices


M1 = M2=
1 2 3 1 2 3
4 5 6 11 13 15
7 8 9

M1=[1 2 3;4 5 6;7 8 9] ou M1=[1:3;4:6;7:9]

M2=[1 2 3;11 13 15] ou M2=[1:1:3;11:2:15]

3.2. Opérations scalaires

M3=10*M1
M3 =
10 20 30
40 50 60
70 80 90

M4=M1/2
M4 =
0.5000 1.0000 1.5000
2.0000 2.5000 3.0000
3.5000 4.0000 4.5000

M5=M1^2
M5 =
30 36 42
66 81 96
102 126 150

M6=M1.^2
M6 =
1 4 9
16 25 36
49 64 81

3.3. Opérations entre matrices


N1=M2*M1
N1 =
30 36 42
168 207 246

(2,3)(3,3)=(2,3)

N2=M1*M2
(3,3)(2,3) impossible

P=[4 8 6;7 9 4; 7 2 1]
N3=M2/P
N3 =
0.8525 -0.5902 0.2459
3.6967 -2.2131 1.6721
N4=M2*inv(P)

N4 =
0.8525 -0.5902 0.2459
3.6967 -2.2131 1.6721

3.4. Matrices particulières


Matrice identité
eye(4)
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

Matrice nulle
zeros(2,3)
ans =
0 0 0
0 0 0

1 partout
ones(2,3)
ans =
1 1 1
1 1 1

Matrice diagonale
diag([4 5 3])
ans =
4 0 0
0 5 0
0 0 3

diag([4 5 3], 1)
ans =
0 4 0 0
0 0 5 0
0 0 0 3
0 0 0 0

diag([4 5 3],-1)
ans =
0 0 0 0
4 0 0 0
0 5 0 0
0 0 3 0

Remarque: d’une manière Générale, on a: diag(V, -k) ou diag(V, k).


Indexage
M1
M1 =
1 2 3
4 5 6
7 8 9
M1(3,2)
ans =8
M1(:,2)
ans =
2
5
8
M1(1,:)
ans =
1 2 3

Application 3

Indiquez ce que vaut la matrice A après exécution. Si la séquence d'instructions doit


engendrer une erreur, indiquez simplement <erreur.
1- A=[1,2]; A=[A;A]; A=A*eye(2)
2- A=[1;2]; A=[A;[2;1]]
3- A=[1,1,1]; A=[A;3:-1:1]
4- A=3*ones(2,1) ;A=[A,2*eye(2)]
5- A=3*ones(3,3); A=A.*eye(3)
6- A=[1,-1,2]; A=[A;A;3*ones(1,3)]; A=A(2:3,1:2)
7- A=[ones(1,3); 2*ones(1,3)]; A=A';A(3,3)=4
8- ind=3:6; A=[1:12:10]; A=A(ind)
9- A = [0 1 2 ], B = [ 2 , 1 , 0 ; [ 1 2 0 ] ], C = [ A ; B ]
10- A = [0 2 ; 3 4], B = A*A, C = A.*2, D = A.^2

Application 4
Ecrire les instructions MATLAB permettant d’exécuter les tâches suivantes.
1. Créer le vecteur V = (1, 1/2, 1/3, 1/4, ..., 1/1000)
2. Soit X le vecteur crée par l’instruction X = 1 : 0.01 : 10 .
a) Mettre dans une variable n la taille du vecteur X.
b) Afficher à l’écran la valeur du 3è élément de X.
c) Créer un vecteur Y qui contient tous les éléments de X lus dans le sens inverse.
d) Echanger le 5é et le 8é élément de Y.
4. Programmer en MATLAB
4.1. Opérations logiques et contrôle d’exécution

4.1.1- Opérations logiques


Dans la programmation on a besoin des opérateurs logiques. Les plus courants sont: > , <,
>= (supérieur ou égal) , <= (inférieur ou égal) , == (égalité comparative à ne pas
confondre avec =), ~= (non égal ou différent), & (et), | (ou).

Exemple: Pour coder la condition: si m ≥ 10 ou m < 8,5


on utilisera: if m>=10 | m < 8.5

Par exemple: l’instruction: x>1


Test les éléments de x et donne la réponse 1 si la condition est vérifiée et 0 sinon :

X=[-2 3 5;-1 0 1]
x=
-2 3 5
-1 0 1

>> x>1
ans =
0 1 1
0 0 0

A ne pas confondre avec l’instruction suivante:


>> x(x>1)

ans =
3
5
qui permet d’extraire les éléments de x qui vérifient la condition définie.

4.1.2- Contrôles d’exécution

-La boucle for (pour)

for
expression(s)
end

Exemple:

>>for n=1:5
for m=1:5
A(n,m)=n^2+m^2;
end
end

>>A =
2 5 10 17 26
5 8 13 20 29
10 13 18 25 34
17 20 25 32 41
26 29 34 41 50

- La boucle while (tant que)

while expression
commande(s)
end

-Le test if (si)

if expression
commande 1 (si expression vrai)
else
commande 2 (si expression n’est pas vrai)
end
Exemple : Trouver le programme matlab correspondant aux algorithmes avec la boucle Pour
et la boucle Tant que de l’exercice d’application à la fin de la partie algorithmique.

4.2. M-files ou scripts


Lorsqu’on a un programme comportant plusieurs instructions, il faut les saisir dans un M-file.
Cela permet de l’enregistrer et de l’exécuter par la suite. Un script (ou M-file) est un fichier
extension .m contenant des instructions MATLAB.
Il est important de bien ranger les fichiers MATLAB afin de ne pas avoir de problème à
l’exécution. Pour cela il faut créer des dossiers et sous dossiers sur votre machine pour les
différents programmes.

Exemple :

On peut créer un dossier sur le C en sélectionnant :


Démarrer/poste de travail/C/Fichier/Nouveau/Dossier/ ‘donner un nom’ (votre nom par
exemple)

Ou bien
Démarrer/poste de travail/C/Clic droit/Nouveau/Dossier/’donner un nom’
Créer un sous dossier à l’intérieur du dossier créé.

Pour Créer un M-file, on procède comme suit :


>>edit ou Barre d’outils /New M-file

Pour enregistrer :

save/ chemin d’accès vers le dossier prévu pour les différents programmes, puis le nom du
programme suivi de enregistré.

Exécuter un M-file
A partir du work space :
>>cd(‘C/ nom dossier/ nom sous dossier’) + entrée

Remarque: on peut exécuter les M-files à partir de la barre d’outils du fichier: Debug/run ou
bien taper F5. Ou bien à partir du work space, dans la première fenêtre en haut, clique droit sur
le nom de fichier et run.

Application 4 :

A l’aide de M-file, créer le programme matlab de chacune des questions de l’application de la


partie algorithmique. Exécuter chaque programme après l’avoir enregistré.

4.3. Les fonctions


Une fonction est un M-file comportant des variables d’entrées et des variables de sorties.

Exemple
function y=temps(x)
% temps affiche un message suivant le temps qu’il fait
% et retourne l’opposé de la valeur de x
if length(x)>1 error (‘x doit être scalaire’); end
if x~=0
disp (‘espérons que demain sera meilleur!’)
end
y=-x;
end

5. Le graphisme
5.1. Graphisme dimension 2
On utilise l’instruction plot pour les représentations graphiques en dimension 2.
Exemple1: représentation graphique sur [0, 2pi] de la fonction f(x) = sin(x).
x=linspace(0,2*pi,30);
y=sin(x);
plot(x,y)

Exemple2 : représentation graphique sur [0, 2pi] des fonctions f(x) = cos(x) et g(x) = sin(x)
sur la même figure.

x=linspace(0,2*pi,30);
plot(x,cos(x))
hold on
plot(x,sin(x))
hold off

Exemple3 : représentation graphique sur [0, 2pi] des fonctions f(x) = cos(x) et g(x) = sin(x)
sur la même figure avec une légende, un titre et annotation des axes du repère.

x=linspace(0,2*pi,30);
plot(x,sin(x),x,cos(x))
legend(‘courbe de sinus’,’courbe de cosinus’)
title(‘Courbes de fonctions circulaires’)
xlabel('abscisse'), ylabel('ordonnée')

Exemple4 : représentation graphique sur [0, 2pi] sur la même figure de la fonctions f(x) =
cos(x) en bleue avec les symboles <: et de g(x) = sin(x) en rouge avec le symbole +.

x=linspace(0,2*pi,30);
plot(x,sin(x),'r+',x,cos(x),'b<:')

Exemple5: représentation graphique sur [0, 2pi] sur la même figure subdivisée en 2 lignes,
une colonne, de la fonctions f(x) = cos(x) en bleue avec les symboles <: sur la première ligne
et de g(x) = sin(x) en rouge avec le symbole + sur la deuxième ligne.
x=linspace(0,2*pi,30);
subplot(2,1,1)
plot(x,sin(x),'r+‘)
subplot(2,1,2)
plot(x,cos(x),'b<:')

5.2 Graphisme 3D
- l’instruction Plot3

On utilise l’instruction plot3 pour les représentations graphiques des courbes paramétrées.
Exemple: : représentation graphique sur [0, pi] de la courbe paramétrée définie par :
 x  sin(t )

 y  cos(t )

t=linspace(0,10*pi);
plot3(sin(t),cos(t),t)

- l’instruction Mesh

On utilise l’instruction Mesh pour les représentations graphiques des fonctions à 2 variables.

 L’instruction meshgrid :
Pour
x=[1 2 3], y=[4 5 6],

l’instruction [X,Y]= meshgrid(x,y) donne :

X=
1 2 3
1 2 3
1 2 3
Y=
4 4 4
5 5 5
6 6 6
Ce qui donne l’ensemble des couples :

(X,Y) = {(1,4),(2,4),(3,4),(1,5),…,(3,6)}

Exemple : représentation graphique sur [0, 10] x [0, 10] de la fonction


f(x,y) = cos(x+y)

x=0:.1:10; y=-10:.1:10;
[X,Y] = meshgrid(x,y);
Z=cos(X+Y);
mesh(X,Y,Z)

(Voir l’instruction pie pour les diagrammes circulaire, bar, barh, bar3 pour les
diagramme en batons)

6- Interpolation polynomiale des fonctions spline, polyfit et polyval


Exemple :
un ingénieur des grands travaux étudie un phénomène et relève les mesures expérimentales
suivantes:

Temps 0 1 2 3 4 5 6 7 8 9 10

mesure 0 0, 1 1, 2 1, 2 3 1, 1 0,
ss 5 2 9 5 5

Il souhaite approcher ce phénomène par un polynôme afin d’avancer plus vite dans ses
travaux. Il vous demande de trouver un polynôme dont les valeurs sont suffisamment proches
de celles du phénomène et de faire la vérification sur une figure présentant la courbe qui passe
par l’ensemble des points d’abscisse le temps et d’ordonnée la mesure correspondante, ainsi
que celle du polynôme trouvé.

Correction

function interpolation(d)
t=0:1:10;
m=[0 .5 1 1.2 2 1.9 2 3 1.5 1 .5];
c=polyfit(t,m,d);
tt=0:.05:1;
y=polyval(c,tt);
z=spline(t,m,tt);
plot(t,m,’r’,tt,y,’b’,tt,z,’k’)
legend('Points à interpoler','Courbe avec polyfit', 'Courbe avec spline’)
end

Cette fonction fournit les coefficients du polynôme de degré n dans l’ordre décroissant.
8- Quelques exercice de Travaux Pratiques

Exercice 1:
1- Créer un programme en utilisant une fonction qui retourne l’adresse du plus grand élément
d’un vecteur A donné en argument d’entrée.
2- Créer un programme en utilisant une fonction qui retourne les racines d’un polynôme du
2nd degré dont les coefficients sont donnés en argument d’entrée.

Exercice 2 : (écriver chaque programme sur un M.file)


1) A l’aide de la boucle for, créer la matrice carrée de dimension 5, dont chaque
élément est la moitié de la somme des carrés des indices indiquant sa position.
2) Programmer les représentations graphiques sur l’intervalle [-1 , 1] et sur une même
𝒙𝟑 −𝟒
figure des fonctions 𝒇(𝒙) = et 𝒈(𝒙) = 𝒙𝟐 donner une legende et un titre à
√𝒙𝟐 +𝟏
la figure, puis annoter les axes du repère.
𝒙𝟑 −𝟒
3)Pour 𝒇(𝒙) = remplissez le tableau suivant :
√𝒙𝟐 +𝟏
x -3 -2,5 -2 -1,5 -1 0 1 2,5 3,5 4

f(x)

puis représenter la courbe de f et celles des polynômes P1, P2, P3 et P4 de degré


respectivement 7; 8; 9; et 10 sur une même figure.

Exercice 3:
Créer une fonction permettant de calculer respectivement les 10 premiers termes, les
100 premiers termes et les 200 premiers termes d’une suite géométrique de raison 0 ,5
et de premier terme u(1)=200.

Exercice 4:
Ecrire un programme qui calcule le factoriel d’un entier naturel définit par :
𝟎! = 𝟏
{ 𝟏! = 𝟏
𝒏! = 𝒏(𝒏 − 𝟏)! ∀𝒏 ≥ 𝟐

Exercice 5 :
1- Créer une fonction matlab qui permet de représenter graphiquement la courbe
de f et dont la variable d’entrée est n le nombre de points choisi sur l’intervalle
[0 , π].
Bibliographie
[1] Paul MILAN, cours d’algorithmique.

[2] SO Ousséni, initiation à la simulation numérique en MATLAB,


CAPES Mathématiques, IDS.

[3] SO Ousséni, initiation à MATLAB, licence 1 de génie civil EFP-TP.