Vous êtes sur la page 1sur 17

République 

algérienne démocratique et populaire
Ministère de l'Enseignement Supérieur et de la Recherche Scientifique
Université de Jijel

Rapport de travaux pratiques


« Informatique III »

Nom et prénom: kh-A.Aziz


D’abord c’est quoi ’ Matlab ’ ?
MATLAB (ou bien « matrix laboratory ») est un langage
de programation P O O ( programmation orientée objet );
il est utilisé à des fins de  calcul numérique.
Développé par la société The MathWorks, MATLAB
permet de manipuler des matrices, d'afficher des courbes et
des données, de mettre en œuvre des algorithmes, de créer
des interfaces utilisateurs, et peut s’interfacer avec d’autres
langages comme le C, C++, Java, et Fortran.
MATLAB est utilisé dasn des milieux très différents
comme l’ingénierie, les sciences ,l’économie et l’industrie.
I - les différents fenetres de matlab:
1/les classes d’objets :

>> a=2+3i >> b=[1 2 ; 3 4 ]

a= b=

2.0000 + 3.0000i 1 2
3 4
>> class a
>> class b
ans =
ans =
char
char
>> c='abcd' >> d=['paul ' 'claire']

c= d=

abcd paul claire

>> class c >> class d

ans = ans =

char char

2/ les variabeles affectées:


>> who

Your variables are:

a ans b c d
>> whos
Name Size Bytes Class Attributes

a 1x1 16 double complex


ans 1x4 8 char
b 2x2 32 double
c 1x4 8 char
d 1x11 22 char

-desaffecter la variable ‹a›:

>> clear a
-pour effacer les données en mémoire en ecrit : clear
-pour vider la fenetre de command en ecrit : clc

II - Utilisation de l’aide en ligne :

>> a=[1,3,5,1]' >> b=[1,1,2,2]'

a= b=

1 1
3 1
5 2
1 2

-Calcule de ‹a.b›:
>> dot(a,b)

ans =
16

-Calcule de ||a||1:
>> norm(a,1) % the largest column sum of ‹a›

ans =

10

-Calcule de ||a||2:
>> norm(a,2) % the norm of ‹a›

ans =

6
-Calcule de ||a||∞:

>> norm(a,inf) % the largest row sum of ‹a›

ans =

5
-Calcule de [1,3,5]’ ˄ [1,1,2]’:

>> a=[1,3,5]' >> b=[1,1,2]'

a= b=

1 1
3 1
5 2

>> c=cross(a,b)

c=

1
3
-2
- Ecrire sous forme de fraction:
% 21/5 = 4.2
% 1/2=0.5
% 1/3=0.33333333
% pi=3.141592653589793
>> format rat
>> 4.2 >> 0.5

ans = ans =

21/5 1/2
>> 0.33333333333 >> 3.141592653589793

ans = ans =

1/3 355/113

-les differents forme d’affichage (test sur le π):  

short: long short e long e


>> format short >> format long >> format short e >> format long e
>> pi >> pi >> pi >> pi

ans = ans = ans = ans =


3.1416 3.141592653589793 3.1416e+000 3.141592653589793e+000

short g long g short eng long eng


>> format short >> format long g >> format eng >> format short
g >> pi >> pi >> pi
>> pi
ans= ans = ans =
ans = 3.14159265358979 3.1416e+000 3.14159265358979e+000
3.1416
III - Construction de vecteurs :
1-verification sur logiciel :
>> a=[1 2 3] >> b=[1,2,3] >> c=[1:2:3] >> d=[1,2,3]'

a= b= c= d=

1 2 3 1 2 3 1 3 1
2
3

>> e=[0;i]

e=

0
0 + 1.000000000000000i
% ecriture complexe de d’un nombre ou la partie reel vaut ’0’ et la partie immaginaire vaut ’1’
>> e'

ans =

0 0 - 1.000000000000000i
% ecriture complexe de transposé et de conjugée d’un nombre ou la partie reel vaut ’0’ et la
partie immaginaire vaut ’1’
>> e.'
ans =
0 0 + 1.000000000000000i
% ecriture complexe de transposé d’un nombre ou la partie reel vaut ’0’ et la partie immaginaire vaut
’1’

>> a=0:10

a=

0 1 2 3 4 5 6 7 8 9 10
>> b=0.10

b=

0.100000000000000
>> c=[0:10]

c=

0 1 2 3 4 5 6 7 8 9 10
>> f=0.7:3.4

f=

0.700000000000000 1.700000000000000 2.700000000000000

>> a=[0:0.1:1]

a=

Columns 1 through 4

0 0.100000000000000 0.200000000000000 0.300000000000000

Columns 5 through 8

0.400000000000000 0.500000000000000 0.600000000000000


0.700000000000000

Columns 9 through 11

0.800000000000000 0.900000000000000 1.000000000000000

>> b=[0:0.15:1]

b=

Columns 1 through 4

0 0.150000000000000 0.300000000000000 0.450000000000000

Columns 5 through 7

0.600000000000000 0.750000000000000 0.900000000000000

>> c=[1:-0.15:0]
c=

Columns 1 through 4

1.000000000000000 0.850000000000000 0.700000000000000


0.550000000000000

Columns 5 through 7

0.400000000000000 0.250000000000000 0.100000000000000

>> d=linspace(0,1,10)

d=

Columns 1 through 4

0 0.111111111111111 0.222222222222222 0.333333333333333

Columns 5 through 8

0.444444444444444 0.555555555555556 0.666666666666667


0.777777777777778

Columns 9 through 10

0.888888888888889 1.000000000000000

-la difference entre [debut: fin]et[debut:pas:fin]et linspace(a,b,n):


[debut:pas:fin] : c’est une command de generation automatique d’un
vecteur qui prend comme valeur de debut ‹debut› et comme derniere valeur
‹fin› avec une incrementation de ‹pas› entre les valeur de l’interval
{debut , fin } , si « pas = 0 » l’incrementation est egale à «1»
mais dans ce type de generation automatique , la dernier valeur n’est pas
assurée d’atteindre à couse de «pas» ,par example :
>> f=0.7:3.4

f=

0.700000000000000 1.700000000000000 2.700000000000000


linspace(a,b,n) : c’est une autre command de generation automatique d’un
vecteur avec ‹a› le debut de vecteur , ‹b› la fin de vecteur et ‹n› represente
l’incrementation ou le «pas» . Dans ce mode de generation , le vecteur
atteindre ca valeur final pareceque l’intreval {a,b} est divisée
uniformément avec le pas =(b-a)/(n-1) .

une methode pour partager un intervall borné en 50 intervalles egaux:


>> a=1;b=10;

>> pas=(b-a)/(50-1);
>> c=a:pas:b

III - Construction de matrice et matrice particulieres :


>> a=[1 2 3 ; 4 5 6]
a=

1 2 3
4 5 6
1- si b=[a,zeros(2,3);diag([1,2]), eye(2,4)] a un sens alors :
b=

1 2 3 0 0 0
4 5 6 0 0 0
1 0 0 0 0 0
0 2 0 1 0 0

-la taille de b :
>> size(b)
ans =

4 6

2-remplacement de la dernier colone :


>> b(: , 6)=[7 8 9 10]

b=

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

-extraction des sous matrice:


matrice correspondant aux lignes 2 et 4 :
>> b([2,4] , :)

ans =

4 5 6 0 0 8
0 2 0 1 0 10

matrice correspondant aux colonnes 2 et 6 :


>> b( : , [2,6])

ans =

2 7
5 8
0 9
2 10

3-les reponses des instructions :


a’ : 1 4 % transposé de a
2 5
3 6
diag(a) : 1 5 % elements diagonaux de a
diag(diag(a)): 1 0
0 5 % diagonaliser les valeur 1 et 5
triu(a) : 1 2 3 % la matrice triangulaire superieur de a
0 5 6
tril(a) : 1 0 0 % la matrice triangulaire inferieur de a
4 5 0
rand(size(a)) : % des valeur aleatoire selon la loi uniforme correspandant au
valeur de dimension de a
eye(size(a)) : 1 0 0 % faire une matrice identité de meme taile que
0 1 0 la la matrice a

4-
>
> a(1,2)=0
a=

1 0 3 % changer la valeur qui correspand à la 1er ligne et la 2eme colone


4 5 6 par le 0 .
>> a(4,2)=5

a=

1 0 3 % ajouter 2 lignes nul à la matrice a et changer la valeur qui correspand à la


4 5 6 4er ligne et la 2eme colone par le 5 .
0 0 0
0 5 0

a(10) = 6 % parce que matlab commence à compter à partir de la 1er ligne 1er
colone ; colone par colone jusqu’a la la 3eme colone où il arreter à la 10 eme
elements qui correspandant au 6 .

V-Operation sur les matrice:


>> a=[1 2 3 ; 4 5 6] >> u=[2;4;6]

a= u=

1 2 3 2
4 5 6 4
6

>> b=a+2

b=

3 4 5 % additionner ’2’ au tout elements de a


6 7 8

>> c=a*3

c=

3 6 9 % multiplier par ’2’ au tout elements de a


12 15 18
>> d=a+2*eye(size(a))

d= % l’ajout terme à terme les element de la matrice ‹a› et les


les elements de le produit de la matrice identité de taile 2*3
3 2 3 avec le scalaire 2.
4 7 6
Comparaison
>> e=a*a
??? Error using ==> mtimes
Inner matrix dimensions must agree. % produit matriciel impossible .
>> f=a.*a

f=
% une nouvelle matrice formé à partir de le produit terme à terme de la matrice «a»
1 4 9 à elle meme ( élévation au carré ).
16 25 36
>> g=a^3
??? Error using ==> mpower % la matrice doivent etre matrice carré pour éléver à un puissance
Matrix must be square.

>> h=a.^3

h= % une nouvelle matrice formé à partir de le produit terme à terme de la matrice ‹a›
1 8 27 à lui meme 2 fois ( élévation au cube )
64 125 216

>> i=exp(a) % une nouvelle matrice formé de l’exponentielle de chaque valeur de la matrice
‹a› sous la forme scientifique .
i=

1.0e+002 *

0.027182818284590 0.073890560989307 0.200855369231877


0.545981500331442 1.484131591025766 4.034287934927352

>> j=sqrt(a) % une nouvelle matrice formé de la racine carré de chaque valeur de la matrice a.

j=

1.000000000000000 1.414213562373095 1.732050807568877


2.000000000000000 2.236067977499790 2.449489742783178

>> k=a*u

k= % produit matriciel algebrique

28
64

>> l=a.*a'
??? Error using ==> times
Matrix dimensions must agree. % erreur algebrique ( produit matriciel impossible)

>> m=a*a' % produit algebrique de la matrice ‹a› et la matrice transposé de ‹a›

m=

14 32
32 77

* le point dans les command précedentes sert à faire les opérations mathématiques
sur chaque element de la matrice .

VII-Creation d’une fct dans un fichier externe:


-convertisseur de coordonnée :
dans un (M-File) on introduit le programme suivant :
function [ rho,theta] = cart2polr( x,y )
%un programme qui convert les coordonnée cartésienne en coordonnée
polaire

rho=sqrt((x^2)+(y^2));
theta=atan(x/y);
end

% et à la fin en sauvgarde le travail avec le meme nom de la


fonction et avec une extension « .m ».

VIII-la boucle « for »:


a-calcule de factoriel:
dans un (M-File) on introduit le programme suivant :
function [nfact] = fact( n)
%un programme qui calcule le factoriel d'un entier naturel

k=1;
nfact=1;
for k=1 : n
nfact=nfact*n;
end
end

% et à la fin en sauvgarde le travail avec le meme nom de la


fonction et avec une extension « .m ».
b-une matrice carré avec la boucle for :
dans un (M-File) on introduit le programme suivant :
function [matrix] = mat(n)
%un programme qui affiche une matrice carré tel que aij=1/(i^2+j^2+1)
i=n;
j=n;
matrix=zeros(i,j)
for i=1 : n
for j=1 : n
matrix(i,j)=1/((i^2)+(j^2)+1);
j=j+11;
end
i=i+1;
end
end
% et à la fin en sauvgarde le travail avec le meme nom de la
fonction et avec une extension « .m ».

IX- La boucle « if »:
programme qui determine les racine d’un polynome de 2nd degrée
dans un (M-File) on introduit le programme suivant :
function [racine] = solution(a,b,c)
%un programme qui determine si le polynome de 2eme degree admet
des racine , et si oui le progamme donne les racine .
delta=((b^2)-(4*a*c));
if delta<0
'pas de solution dans R '

elseif delta ==0


'racine double '

racine=(-b)/(2*a);
elseif delta >0
'deux racine'
racine=[(-b-sqrt(delta))/(2*a);((-b)+
sqrt(delta))/(2*a)];

end
% et à la fin en sauvgarde le travail avec le meme nom de la
fonction et avec une extension « .m ».

X- La boucle « while » :
a-
dans un (M-File) on introduit le programme suivant :

function [ n ] = test( k,epsilon)


%un programme qui determine le plus petit entier n tel que
1/(n^k) < epsilon (k et epsilon entrer par l’utilisateur).
n=1;
y=1;
while(y>epsilon)
n=n+1;
y=1/(n^k);
end

end
% et à la fin en sauvgarde le travail avec le meme nom de la
fonction et avec une extension « .m ».

b-
dans un (M-File) on introduit le programme suivant :
function [n ] = somme(indimax,borne )
%un programme qui renvoyer le plus petit entier n qui est
inferieur d’une indice maximal donnée par l’utilisateur , et la
somme de la suite géometrique de raison(1/n) soit superieur de la
borne donnée .
n=1;
s=1;

if (n==indimax)
'indice max atteint'
end

while(s<=borne && n<indimax)


n=n+1;
s=s+(1/n);
end

end

% et à la fin en sauvgarde le travail avec le meme nom de la

fonction et avec une extension « .m ».

Vous aimerez peut-être aussi