Lorem

Delete this widget in your dashboard. This is just an example.

Ipsum

Delete this widget in your dashboard. This is just an example.

Dolor

Delete this widget in your dashboard. This is just an example.
 

Maple - TD no 1 (Corrigé)

vendredi 28 décembre 2018

Maple - TD no 1 (Corrigé)

Maple - TD no 1 (Corrigé)

Maple - TD no 1 (Corrigé)



Exercice 1 -
1. Somme des n premiers entiers : somme:=proc(n) > local res, i: > res:=0: > for i from 1 to n do > res:=res+i > od: > res: > end;
2. On peut par exemple écrire : prod:=proc(n) > local res, i: > res:=1: > for i from 3 to n by 3 do > res:=res*i > od: > res: > end:
3. On doit cette fois utiliser une boucle while : p2:=proc(n) > local i: > i:=0: > while 2^i <= n do > i:=i+1 > od: > 2^i: > end: 1
Exercice 2 -
1. Calcul itératif de la factorielle : fact1:=proc(n) > local res, i: > res:=1: > for i from 1 to n do > res:=res*i > od: > res: > end: On constate que l'on a besoin d'une unique variable intermédiaire (res), et non pas de n variables intermédiaires ! Inutile de remplacer > res:=1: > for i from 1 to n do > res:=res*i > od: > res: par > res[0]:=1: > for i from 1 to n do > res[i]:=res[i-1]*i > od: > res[n]:
 2. On appelle récursivement la procédure que l'on dé nit. Il ne faut pas oublier le cas d'arrêt lorsque n = 0. fact2:=proc(n) > local res: > if n=0 then > res:=1 > else > res:=fact2(n-1)*n > fi: > res: > end:
 Exercice 3 -
 On suit le comportement de la procédure décrit dans l'énoncé : power2:=proc(n) > local res: > if n=0 then > res:=1 > elif irem(n,2)=0 then > res:=(power2(n/2))^2 2 > else > res:=2*(power2((n-1)/2))^2 > fi: > res: > end:
Exercice 4 -
1. La procédure naïve parcourt la séquence en mémorisant à chaque étape : le minimum des distances de s[i] à p pour les i déjà visités (dans la variable min) ; l'indice i pour lequel ce minimum est atteint (dans la variable res). On peut par exemple initialiser min et res pour i = 1. proche1:=proc(s,p) > local n, min, res, i, aux: > n:=nops(s): > min:=abs(s[1]-p): > res:=1: > for i from 2 to n do > aux:=abs(s[i]-p); > if aux < min then > min:=aux: > res:=i > fi > od: > s[res]: > end: On calcule la longueur de s, ce qui peut se faire en O(n). On fait un nombre constant d'opérations pour chaque i allant de 2 à n, ce qui est également en O(n). Cet algorithme est donc linéaire.
2. On suit l'algorithme donné dans l'énoncé : proche2:=proc(s,p,n) > local res, milieu, a, b, i, s1, s2: > if n = 1 then > res:=s[1] > else > milieu:=iquo(n,2): > a:=s[milieu]: > b:=s[milieu+1]: > if a > p then > s1:=[seq(s[i],i=1..milieu)]: > res:=proche2(s1,p,milieu) > elif b < p then > s2:=[seq(s[i],i=milieu+1..n)]: > res:=proche2(s2,p,n-milieu) > elif p-a > b-p then > res:=b 3 > else > res:=a > fi > fi: > res: > end: Notons C(n) = C 0 (q) la complexité pour une liste de longueur n = 2q . On a la formule de récurrence suivante : C(1) = 1 ⇔ C 0 (0) = 1 C(n) 6 C(n/2) + 1 si n > 2 ⇔ C 0 (q) 6 C 0 (q − 1) + 1 si q > 1 Si n > 2, on a uniquement une borne supérieure : en e et, dans le cas où a < p < b, la procédure s'arrête immédiatement (pas d'appel récursif). La suite (C 0 (q))q∈N est inférieure ou égale à une suite arithmétique de raison 1 et de premier terme 1, donc pour tout q ∈ N : C 0 (q) 6 q + 1 Or, pour tout n ∈ N puissance de 2 : C(n) = C 0 (log(n)) Donc, pour tout n ∈ N puissance de 2 : C(n) 6 log(n) + 1 Cet algorithme est donc en O(log(n)).

Cour MATLAB

dimanche 6 mai 2018


Généralités sur matlab

2.1 Lancement de Matlab
L’interface Matlab se compose d’une fenêtre principale divisée en quatre sous-fenêtres. A
gauche, il y a la fenêtre Current Folder qui gère l’emplacement des fichiers. Celui-ci sera utile
pour le travail avec les m-files. Au centre, il y a une grande fenêtre : Command Window. La
Command Window est la fenêtre d’interaction avec Matlab. En haut à droite, il y a la fenêtre
Workspace qui permet de gérer les variables utilisées. Nous y reviendrons au paragraphe
2.3. En bas à droite la fenêtre Command History indique les dernières commandes
effectuées.
Figure 1- Lancement de MATLAB
Le symbole [>>] indique à l’utilisateur où il faut rentrer la commande. On ne peut pas «
revenir en arrière », c’est-à-dire, il ne faut pas essayer de placer le curseur sur une ligne audessus
du dernier [>>]. Pour taper une autre commande on le fait à la suite.
>> 2+3
ans =
 5
>> 3*5
ans =
 15
Si on rentre des commandes erronées, Matlab nous l’indique par un message d’erreur :
>> 2*
2*
 |
Error: Expression or statement is incomplete or incorrect.
>> ax
Undefined function or variable 'ax'.
Les touches [↑] et [↓] permettent de naviguer parmi les dernières commandes effectuées,
ce qui peut être utile si l’on commet une erreur et qu’on veut éviter de taper à nouveau
toute la commande.
2.2 Commandes et calculs de base
Matlab possède de nombreuses fonctions prédéfinies utiles en mathématiques que nous
allons étudier au cours de ces travaux pratiques.
>> pi
ans =
 3.1416
>> cos(pi/3)
ans =
 0.5000
>> log(1.5)
ans =
 0.4055
>> j^2
ans =
 -1
Il peut parfois être utile de stocker une valeur dans une variable pour l’utiliser plus tard.
L’affectation d’une variable en Matlab se fait au moyen du signe [=]. Le nom d’une variable
doit commencer par une lettre (majuscule ou minuscule, sans accent) puis peut contenir des
lettres (même remarque), des chiffres et des caractères soulignés [_]. Le nom peut contenir
au maximum 31 caractères. La valeur d’une variable peut être un nombre, une chaîne de
caractères ou un tableau (voir la section 3). Contrairement au C++ ou au fortran, Matlab
n’est pas « typé ». Autrement dit, une variable contenant un entier peut contenir plus tard
une chaîne de caractères ou un tableau. Précisons que Matlab est « case-sensitive », c’est-à-
dire qu’il fait la distinction entre majuscules et minuscules.
>> A=21
A =
 21
>> a=12.24
a =
 12.2400
>> A='Bonjour'
A =
Bonjour
On peut évidement faire des calculs avec des variables. Le résultat d’un calcul est, par
défaut, stocké dans une variable nommée ans. Celle-ci peut être changée pour n’importe
quelle autre variable. Par défaut, Matlab affiche le résultat de la dernière opération. Cet
affichage peut être supprimé en terminant votre commande par la touche [ ;]. Plusieurs
commandes peuvent être rentrées sur une même ligne en les séparant soit par [,] soit par [
;].
>> x=3;y=4;
>> z=x^2+y^2
z =
 25
Pour une liste complète des opérations mathématiques que l’on peut faire dans Matlab voir
le paragraphe 3.3.
2.3 Gestion des variables
Dès que nous commençons à avoir un certain nombre de variables, on peut rapidement se
perdre. Si l’on tape le nom d’une variable, Matlab renvoie la valeur de celle-ci. Mais
comment savoir quelle variable a été utilisée ? Pour se retrouver, Matlab propose plusieurs
solutions. La commande who permet de lister simplement les variables utilisées, alors que
whos donne des informations détaillées sur toutes les variables.
>> who
Your variables are:
A a ans x y z
>> whos
 Name Size Bytes Class Attributes
 A 1x7 14 char
 a 1x1 8 double
 ans 1x1 8 double
 x 1x1 8 double
 y 1x1 8 double
 z 1x1 8 double
L’onglet Workspace donne une alternative graphique à la commande whos. En double
cliquant sur une variable on peut voir sa valeur et même la modifier. Pour effacer
complètement une variable, il suffit de rentrer la commande clear suivie du nom de la
variable. Pour tout effacer, clear all.
2.4 Historique des commandes
Matlab garde en mémoire les dernières commandes effectuées. Elles sont visibles dans
l’onglet Command History. On peut également y accéder directement dans la Command
Window au moyen des touches [↑] et [↓]. Ceci est particulièrement utile pour répéter la
dernière commande.
2.5 Aide
Matlab possède un grand nombre de fonctions et commandes. On ne pourra pas toutes les
traiter en détail. Afin d’obtenir de l’information (nombre de paramètres d’une fonction,
valeur de retour, etc), il suffit de rentrer help nom_de_la_commande.
La commande lookfor est très utile. Elle permet de chercher les fonctions par mots clefs.
Plus précisément, lookfor XYZ renvoie toutes les fonctions qui contiennent XYZ dans la
première ligne de leur descriptif. Nous y reviendrons au paragraphe sur m-files. Si vous êtes
perdu, la commande help help pourra vous aider...
2.6 Sauvegarde
 Le Workspace : On peut sauver l’état de la session en cours dans un fichier .mat. Pour
cela, dans la barre d’outils, dans l’onglet Variable cliquer sur Save Workspace, et vous
choisissez l’emplacement et le nom de votre fichier. Matlab sauvegarde ainsi le nom et la
valeur de chacune des variables. La prochaine fois que vous utilisez Matlab, au moyen de
l’onglet File /Open vous retrouvez le Workspace dans l’état dans lequel vous l’avez laissé.
 Les m-files : Il s’agit d’un fichier dans lequel on regroupe des commandes. C’est très utile
pour aborder des pr
3. Vecteurs et matrices
La structure de données de Matlab est le tableau ; même un nombre est considéré comme
une matrice 1 × 1. Toutes les fonctions et opérations relatives aux tableaux sont très
optimisées et sont à utiliser aussi souvent que possible.
3.1 Création
Un tableau est délimité par des crochets. On sépare les colonnes par des espaces et les
lignes par des points-virgules.
>> A=[1 2 3 ; 4 5 6]
A =
 1 2 3
 4 5 6
>> B=[1; 2; 3]
B =
 1
 2
 3
Les tableaux qui n’ont qu’une seule ligne sont appelés des vecteurs lignes ou des listes ; ceux
qui n’ont qu’une seule colonne sont appelés des vecteurs colonnes ou simplement des
vecteurs. Si le nombre d’éléments dans chaque ligne (ou colonne) n’est pas le même, Matlab
signale une erreur.
>> A=[1 2 3; 4 5]
Error using vertcat
Dimensions of matrices being concatenated are not consistent.
 Matlab propose des commandes pour créer certaines matrices particulières très
simplement. Pour plus d’information, lire le help de chaque fonction.
Commande Description
ones(n,m) Matrice de taille n × m ne contenant que des 1.
zeros(n,m) Matrice de taille n × m ne contenant que des 0.
eye(n,m) Matrice de taille n × m contenant des 1 sur la
première diagonale et des 0 ailleurs.
diag(v) Matrice diagonale où les éléments de la
diagonale sont les composantes du vecteur v.
rand(n,m) Matrice de taille n × m contenant des nombres
aléatoires
Tableau 1 : Commandes pour créer des matrices
 [a:p:b] : Matlab dispose également de moyens très simples pour créer des listes. La
commande [a:p:b] crée une liste dont les éléments sont
a, a + p, a + 2p, . . . , a + np,
où n N, a+np b < a+(n+1)p
Le cas particulier [a:b] est un raccourci pour [a:1:b]. Si les conditions initiales sont erronées,
Matlab renvoie un message d’erreur.
Remarque : Il n’y a pas de différence entre les commandes [a:p:b], (a:p:b) et a:p:b.
>> x=[1:2:10]
x =
 1 3 5 7 9
>> y=[-5:0]
y =
 -5 -4 -3 -2 -1 0
>> z=[10:2:-10]
z =
 Empty matrix: 1-by-0
 linspace : Un autre cas particulier de [a:p:b] est la fonction linspace(a,b,n). Celle-ci crée
une liste de n éléments uniformément répartis entre a et b. Autrement dit,
linspace(a,b,n) est la même chose que [a: b−a/n−1:b].
 logspace : Il est parfois utile de travailler avec des échelles logarithmiques ; pour cela, la
commande logspace(x1,x2,n) crée une liste de n points répartis logarithmiquement
uniformément entre 10x1 et 10x2
.
 Une dernière méthode pour créer des tableaux est la concaténation. Si A et B sont deux
tableaux, alors [A B], ou [A,B] est le tableau obtenu en collant B à la droite de A, et [A ;B]
est le tableau obtenu en collant B au-dessous de A. Comme d’habitude, il faut faire
attention aux tailles de A et de B.
>> A=[1,3,5], B=[2,4,6], C=[1,2;3,4]
A =
 1 3 5
B =
 2 4 6
C =
 1 2
 3 4
MATLAB & SIMULINK
>> A(2,:)
ans =
 5 6 7 8
>> A(:,3)
ans =
 3
 7
>> A([1 3 5])
ans =
 1 2 3
>> A([1; 3; 5])
ans =
 1
 2
 3
>> A([1 3;4 6])
ans =
 1 2
 6 7
Pour modifier les éléments d’une matrice, on utilise les mêmes commandes que ci-dessus.
On ajoute à la commande le signe [=] et la nouvelle valeur.
>> A(2,3)=0
A =
 1 2 3 4
 5 6 0 8
>> A([1 3 5])=[-1 -1 -1]
A =
 -1 -1 -1 4
 5 6 0 8
>> A(:,4)=[10 20]
A =
 -1 -1 -1 10
 5 6 0 20
Remarquons cependant que dans ce cas on est autorisé à dépasser la taille de la matrice
initiale. Matlab crée automatiquement une nouvelle matrice en ajoutant aux anciennes
valeurs les nouvelles. Si rien n’est spécifié, il remplit avec des 0.
>> B=[1 2;3 4]
B =
 1 2
 3 4
>> B(2,4)=99
B =
 1 2 0 0
 3 4 0 99
4. Opérations avec les matrices
4.1 Opérations de bases
Matlab permet de faire certaines opérations avec des matrices. Dans ce qui suit, A et B sont
des tableaux et c est un scalaire.
Commande Description
A+B Addition terme à terme ; A et B doivent avoir le même
format.
A+c = c+A Addition de c aux éléments de A.
A-B
Soustraction terme à terme ; A et B doivent avoir le
même format.
A-c Soustraction de c aux éléments de A.
c-A Tableau dont les éléments sont c − aij .
A*B Produit matriciel standard ; nb. col. A doit être le
même que
A*c = c*A Multiplication de c aux éléments de A.
A.*B Multiplication terme à terme ; A et B doivent avoir le
même format.
Aˆn (n +)
A * A * . . . * A (n fois) ; A doit être carrée.
Aˆn (n -)
A
-1
* A-1
 * . . . * A-1
 (|n| fois) ; A doit être inversible.
A.ˆB Tableau dont les éléments sont

A’ Transposition et conjugaison.
A.’ Transposition ; A.’ = A’ dans le cas où A est réelle.
B/A
Le résultat est un tableau X tel que XA = B. Si A est
inversible, alors X = BA-1
; nb. col. A doit être le même
que nb. col. B.
A\B
Le résultat est un tableau X tel que AX = B. Si A est
inversible, alors X = A
−1
B ; nb. lign. A doit être le même
que nb. lign. B.
A./B Division terme à terme des éléments de A par ceux de
B ; A et B doivent avoir le même format.
A.\B
Division terme à terme des éléments de B par ceux de
A ; A et B doivent avoir le même format.
A/c Division des éléments de A par c.
Tableau 3 : Opérations avec des matrices
Précisons que Matlab ne renvoie pas un message d’erreur lors d’une division par 0, mais
donne le résultat Inf. Attention néanmoins à ne pas travailler avec Inf comme avec un
nombre.
>> A=[1 2 3; 5 0 0; 4 0 7]
A =
 1 2 3
 5 0 0
 4 0 7
>> B=[-1 -2 -3; -5 0 0; -4 0 -7]
B =
 -1 -2 -3
 -5 0 0
 -4 0 -7
>> A+B
ans =
 0 0 0
 0 0 0
 0 0 0
>> A*B
ans =
 -23 -2 -24
 -5 -10 -15
 -32 -8 -61
>> A.*B
ans =
 -1 -4 -9
 -25 0 0
 -16 0 -49
>> A^2
ans =
 23 2 24
 5 10 15
 32 8 61
>> A/B
ans =
 -1 0 0
 0 -1 0
 0 0 -1
Important. Pour la résolution de systèmes d’équations, utilisez toujours les commandes B/A
et A\B. N’inversez JAMAIS une matrice !
4.2 Fonctions sur les matrices
Etant donnée une matrice A, il y a un certain nombre de choses que l’on peut calculer en
rapport avec A. Nous présentons ici quelques fonctions définies dans Matlab prenant
comme paramètre des tableaux.
Commande Description
det(A) Renvoie le déterminant de A ; celle-ci doit être
carrée.
trace(A) Renvoie la trace de A.
rank(A) Renvoie le rang de A
null(A) Renvoie une base du noyau de A ; l’argument
supplémentaire ’r’ donne une « meilleure » base
diag(A) Renvoie la première diagonale de A.
norm(v)
Renvoie la norme euclidienne de v ; v est un
vecteur. Il est aussi possible de calculer d’autres
normes ;
mean(A) Renvoie une liste contenant la moyenne des
éléments de chaque colonne.
sum(A) Renvoie une liste contenant la somme des
éléments de chaque colonne.
prod(A) Renvoie une liste contenant le produit des
éléments de chaque colonne.
max(A) Renvoie une liste contenant la valeur maximale
chaque colonne.
min(A) Renvoie une liste contenant la valeur minimale de
chaque colonne.
length(A) Renvoie le maximum entre le nombre de lignes et
de colonnes ;
Tableau 4 : Fonctions sur des matrices
Finalement, on précise que toutes les fonctions mathématiques classiques (cos, sin, log, exp,
etc) s’appliquent également aux tableaux. Le résultat est un tableau où l’on a appliqué terme
à terme la fonction en question.
>>teta=[0:pi/4:pi]
teta =
 0 0.7854 1.5708 2.3562 3.1416
>> sin(teta)
ans =
 0 0.7071 1.0000 0.7071 0.0000

guide pour MATLAB

guide pour  MATLAB 

guide pour  MATLAB

Installation et emplacement

Si vous avez l'intention de lancer MATLAB sur un PC, en particulier la version "Student", il est
tout à fait possible que vous devrez l'installer vous-même. Vous pouvez facilement accomplir
ceci en utilisant les CD du produit. Suivez les instructions d'installation comme vous le feriez
avec nouveau logiciel que vous installez. À un moment donné de l'installation, vous pouvez
On vous demandera quelles boîtes à outils vous souhaitez inclure dans votre installation. À moins que vous
avoir de graves problèmes d'espace, nous vous suggérons d'installer tout ce qui semble
vous intéressez ou que vous pensez que vous pourriez utiliser à un moment donné dans le futur. nous
demandez seulement que vous soyez sûr d'inclure le Symbolic Math Toolbox parmi ceux
vous installez. Si possible, nous vous encourageons également à installer SIMULINK, qui est
décrit au chapitre 8.
En fonction de votre version, on vous demandera peut-être si vous voulez
spécifiez certains emplacements de répertoire (c'est-à-dire, dossier) associés à Microsoft Word.
Si vous le faites, vous serez en mesure d'exécuter l'interface M-book décrite dans
Chapitre 6. Si votre ordinateur est équipé de Microsoft Word, nous vous recommandons fortement de
inclure ces emplacements de répertoire pendant l'installation.
Si vous autorisez les paramètres par défaut lors de l'installation, MATLAB
probablement être trouvé dans un répertoire avec un nom tel que mathas matlabR12 ou matlab SR12
ou MATLAB - vous devrez peut-être chasser pour le trouver. Le sous-répertoire
bin \ win32, ou peut-être le sous-répertoire bin, contiendra le fichier exécutable
matlab.exe qui exécute le programme, tandis que le répertoire de travail actuel
probablement être réglé sur matlabR12 \ work

Démarrer MATLAB

Vous démarrez MATLAB comme vous le feriez pour n'importe quelle autre application logicielle. Sur un PC vous
accédez-y via le menu Démarrer, dans Programmes sous un dossier tel que MatlabR12
ou étudiant MATLAB. Alternativement, vous pouvez avoir une icône mise en place qui permet
vous pouvez démarrer MATLAB avec un simple double-clic. Sur une machine UNIX, généralement
il suffit de taper matlab dans une fenêtre de terminal, mais vous pouvez d'abord
Vous devez trouver le répertoire matlab/bin et l'ajouter à votre chemin. Ou vous pouvez
avoir une icône ou un bouton spécial sur votre bureau qui réalise la tâche
Cependant, vous démarrez MATLAB, vous verrez brièvement une fenêtre qui affiche
le logo MATLAB ainsi que des informations sur le produit MATLAB, puis
La fenêtre MATLABDesktop va être lancée. Cette fenêtre contiendra une barre de titre, un
barre de menus, une barre d'outils et cinq fenêtres intégrées, dont deux sont cachées. le
La fenêtre la plus grande et la plus importante est la fenêtre de commande sur la droite. nous
ira plus en détail dans le chapitre 3 sur l'utilisation et la manipulation de l'autre
quatre fenêtres: la zone de lancement, le navigateur de l'espace de travail, l'historique des commandes
fenêtre et le navigateur du répertoire actuel. Pour l'instant nous nous concentrons sur le
Fenêtre de commande pour commencer à émettre des commandes MATLAB aussi rapidement
possible. En haut de la fenêtre de commande, vous pouvez voir quelques général
informations sur MATLAB, peut-être quelques instructions spéciales pour obtenir
commencé ou accéder à l'aide, mais le plus important de tous, une ligne qui contient un
rapide. L'invite sera probablement un signe double (>> ou?). Si la commande
La fenêtre est "active", sa barre de titre sera sombre, et l'invite sera suivie par
un curseur (une ligne verticale ou une boîte, clignotant habituellement). C'est l'endroit où vous
entrera vos commandes MATLAB . Si la fenêtre de commande
n'est pas actif, il suffit de cliquer n'importe où. La figure 1-1 contient un exemple de
MATLAB Desktop nouvellement lancé.
MATLAB Windows 

Nous avons déjà décrit la fenêtre de commande MATLAB et l'aide
Navigateur, et ont mentionné en passant la fenêtre Historique des commandes, Current
Navigateur de répertoire, navigateur Workspace et LaunchPad. Ceux-ci et plusieurs
d'autres fenêtres que vous rencontrerez pendant que vous travaillez avec MATLAB, permettra
vous: contrôler les fichiers et dossiers auxquels vous et MATLAB aurez besoin d'accéder; écrire
et éditez les petits programmes MATLAB (c'est-à-dire les fichiers M) que vous utiliserez pour
exécuter MATLAB plus efficacement; garder une trace des variables et des fonctions
vous définissez comme vous utilisez MATLAB; et concevoir des modèles graphiques pour résoudre des problèmes
et simuler des processus. Certaines de ces fenêtres lancent séparément, et
certains sont intégrés dans le bureau. Vous pouvez ancrer certains de ceux qui lancent
séparément à l'intérieur du Bureau (via le bouton de menu View: Dock), ou vous
pouvez séparer les fenêtres à l'intérieur de votre bureau MATLAB sur votre ordinateur
Bureau en cliquant sur la flèche courbe dans le coin supérieur droit.
Ces caractéristiques sont décrites plus en détail au chapitre 3. Pour l'instant, nous
Je veux attirer votre attention sur l'autre type de fenêtre que vous rencontrerez.
à savoir les fenêtres graphiques. La plupart des commandes que vous émettez
générer des graphiques ou des images. Ceux-ci apparaîtront dans une fenêtre séparée. MATLAB
la documentation fait référence à ces fenêtres de chiffres. Dans ce livre, nous devonsappelle aussi les fenêtres graphiques. Au chapitre 5, nous allons vous apprendre à générer
et manipuler les fenêtres graphiques MATLAB plus efficacement

Mettre fin à une session

Le moyen le plus simple de conclure une session MATLAB est de taper quit à l'invite.
Vous pouvez également cliquer sur le symbole spécial qui ferme vos fenêtres (généralement un ×
dans le coin supérieur gauche ou droit). L'un ou l'autre peut ou peut ne pas tout fermer
les autres fenêtres MATLAB (dont nous avons parlé dans la dernière section)
sont ouverts. Vous devrez peut-être les fermer séparément. En effet, c'est notre expérience
cela laissant des fenêtres générées par MATLAB autour après la fermeture du MATLAB
Le bureau peut être dangereux pour votre système d'exploitation. Encore une autre façon de sortir
est d'utiliser l'option Quitter MATLAB dans le menu Fichier du bureau. Avant
vous quittez MATLAB, vous devez être sûr de sauvegarder toutes les variables, imprimer des graphiques
ou d'autres fichiers dont vous avez besoin, et en général nettoyer après vous. Quelques stratégies
Le moyen le plus simple de conclure une session MATLAB est de taper quit à l'invite.
Vous pouvez également cliquer sur le symbole spécial qui ferme vos fenêtres (généralement un ×
dans le coin supérieur gauche ou droit). L'un ou l'autre peut ou peut ne pas tout fermer
les autres fenêtres MATLAB (dont nous avons parlé dans la dernière section)
sont ouverts. Vous devrez peut-être les fermer séparément. En effet, c'est notre expérience
cela laissant des fenêtres générées par MATLAB autour après la fermeture du MATLAB
Le bureau peut être dangereux pour votre système d'exploitation. Encore une autre façon de sortir
est d'utiliser l'option Quitter MATLAB dans le menu Fichier du bureau. Avant
vous quittez MATLAB, vous devez être sûr de sauvegarder toutes les variables, imprimer des graphiques
ou d'autres fichiers dont vous avez besoin, et en général nettoyer après vous. Quelques stratégies
pour ce faire sont abordés dans le chapitre 3


Liste des commandes pour la manipulation des fichiers sous Matlab


Liste des commandes pour la manipulation des fichiers sous Matlab



cour et exercice matlab

Ouverture et fermeture d’un fichier

fid=fopen(‘nomfich.ext’,’permission’) : ouvre un fichier nomfich.ext et retourne un entier identificateur de fichier dans fid
- ‘permission’ =
_ ‘r’ ouvre en lecture seulement un fichier existant (par défaut)
_ ‘w’ ouvre en écriture seulement un fichier existant ou créé un nouveau fichier; efface le contenu du fichier
_ ‘a’ ouvre en écriture seulement un fichier existant ou créé un nouveau fichier; le contenu n’est pas effacé place les nouvelles données écrites à la fin du fichier
_ ‘r+’ ouvre en lecture et en écriture un fichier existant place les nouvelles données écrites en début de fichier et écrase le contenu du fichier
_ ‘w+’ ouvre en lecture et en écriture un fichier existant ou crée un nouveau fichier; efface le contenu du fichier
_ ‘a+’ ouvre en lecture et en écriture un fichier existant ou crée un nouveau fichier; le contenu n’est pas effacé place les nouvelles données écrites à la fin du fichier
fclose(‘all’) : ferme tous les fichiers ouverts

Lire des données texte

A = fscanf(fid, ‘forma’t , taille) : lit un fichier texte identifié par fid et retourne
les données dans une matrice A
- ‘format’ : interprétation des données
‘%s’ = interprète une chaîne de caractères
‘%d’ = interprète des entiers
‘%e’, ‘%f’ et ‘%g’ = nombres à virgule flottante
‘%*d’ = passe les valeurs entières dans les données
- taille : étendue des valeurs lues dans le fichier
N = lit les N premières valeurs du fichier
inf = lit jusqu’à la fin du fichier (par défaut)
[n m] = lit n*m éléments du fichier arrangés dans un tableau n*m

L = fgets(fid) : lit une ligne d’un fichier texte identifié par fid et l’enregistre
dans une chaîne de caractères L sans le caractère de fin de ligne
- retourne -1 si fgets rencontre la fin du fichier
- fichiers texte seulement
- commence la lecture de la ligne à partir de l’indicateur de position
(par défaut, le début du fichier à son ouverture)
Ecrire des fichiers texte
fprintf(fid,’format’ ,A) : écrit les données de la matrice A dans un fichier identifié par fid et retourne le nombre de bytes écrit dans le fichier
- ‘format’ : interprétation des données
‘%s’ = interprète une chaîne de caractères
‘%d’ = interprète des entiers
‘%e’ = notation exponentielle
‘%f’ = valeurs décimales à virgule fixe
‘\n’ = retour à la ligne
‘\t’ = espace tabulation



Exercice 1
1.       Ecrire deux fonctions codch et decodch qui reçoivent comme paramètres d’entrée une ligne de texte et une variable numérique. La fonction codch renvoie en sortie une ligne de texte codé avec le code contenu dans la variable numérique, tandis que la fonction decodch permet de le décodage (opération inverse).
(Le codage de la ligne consiste par exemple à faire une opération arithmétique entre la valeur de la variable et le code ascii de la ligne du texte).
2.       Créer trois fichiers texte (fich1.txt,  fich2.txt et fich3.txt) ;
3.       Ouvrir le fichier fich1.txt avec la commande : edit fich1.txt et saisissez quelques lignes de texte et sauvegarder le contenu.
4.       Ouvrir le fichier fich1.txt en mode lecture et le fichier fich2.txt en mode écriture (ajout).
Utiliser la fonction codch pour coder chaque ligne de fich1.txt et envoyer le résultat (texte codé) dans le fich2.txt. (Utiliser la fonction fgets ou fgetl pour lire les lignes de texte du fichier)
5.       Vérifier le contenu du fich2.txt avec la commande type fich2.txt
6.       Utiliser la fonction decodch pour décoder le contenu du fichier fich2.txt. le résultat de décodage sera enregistré dans le fichier fich3.txt

Réponse

1.
function B=codch(A,n)

A=double (A);
B=A+n;
B=char(B);


function B=decodch(A,n)

B=double (A)- n;
B=char(B);




2.


a=fopen('fich1.txt','w');
b=fopen('fich2.txt','w');
c=fopen('fich2.txt','w');

// lecture et codage des lignes de fich1.txt


m=fopen('fich1.txt','r');

n=10;
i=1;
while (i>0)
    i=fgets(m);
    B=codch(i,n);
    fprintf(b,'%s\n',B);
end


z=fopen('fich2.txt','r');
x=fopen('fich3.txt','a');


// lecture des lignes de fich2.txt et décodage dans fich3.txt

j=1;
while (j>0)
    j=fgets(z);
    B=decodch(j,n);
    fprintf(x,'%s\n',B);
end




Tp4: Programmation sous MATLAB ( exercice corrigé )

samedi 5 mai 2018


TP 4  - Matlab    

   

Manip.1

Ecrire une fonction qui reçoit en entrée une chaine de caractère et un symbole, et renvoi en sortie le nombre d’occurrence de ce symbole dans la chaine.
Réponse

function N = nbr_symbole (ch, s)
L=length(ch) ;
N=0 ;
for i=1 : L
if ch(i) == s
N=N+1 ;
end
end



 Manip.2
Ecrire une fonction qui calcule les nème termes (n passé en argument) de la suite de Fibonacci :
U0 = 1     U1 = 1
 Un+1  = Un   + Un-1         

Réponse :
function U = fib(n)
if n==0 || n==1
    U=1;
else
    U=fib(n-1)+fib(n-2);
end




Manip.3
a)
Ecrire une fonction qui calcule les nème termes (n passé en argument) des suites entières Un et Vn défines ci-dessous et qui les retourne sous forme d’un tableau (la première ligne contiendra les Vn et la seconde ligne les Un).

                          U0 = 1                                     V0 = 1   
                              Un = Vn-1 + 1                    Vn = 2Un  - 1    

b)
Ecrire une fonction select_terme qui permet de sélectionner le nème  terme d’une des suites, en fonction d’un des arguments d’entrée, choix (si choix = 1, on donnera en sortie Un ; si choix = 2, on donnera en sortie Vn; sinon, la sortie donnera les deux:([Un ;Vn]). Utilisez la fonction définie précédemment et l’instruction switch...case.

Réponse :

function U=Un(n)
if n==0
    U=1;
else
    U= Vn(n-1)+1;
end



function V=Vn(n)
if n==0
    V=1;
else
    V= 2*Un(n)-1;
end



function A=select_terme(n,choix)
switch(choix)
    case 1
        A=Un(n);
       
    case 2
        A=Vn(n);
       
    otherwise
        A=[Un(n) Vn(n)];
end

Lorem

Please note: Delete this widget in your dashboard. This is just a widget example.

Ipsum

Please note: Delete this widget in your dashboard. This is just a widget example.

Dolor

Please note: Delete this widget in your dashboard. This is just a widget example.