Académique Documents
Professionnel Documents
Culture Documents
Prparation lagrgation
Option calcul scientifique
Matlab et Scilab Les logiciels Matlab et Scilab prsentent peu de diffrences (sauf syntaxiques).
Scilab est un logiciel gratuit, dvelopp par INRIA, et disponible ladresse http://www.scilab.org.
Il peut tre install indiffremment sous Windows, Linux et Mac.
Logiciels de calcul matriciel numrique, langage de programmation pour le calcul scientifique.
Calcul matriciel rapide (prfrer les outils dalgbre matriciel que les boucles)
Fonctions de haut niveau prdfinies : rsolution de systmes linaires, mthodes numriques de rsolution
dEDO...
Librairie graphique intgre
Prise en main
Matlab
2+2,2*3
(1-%i)^2
X=2/3;
X
A=[A,1/2,1/6 ; 1/3,1/3,1/2 ; -1,1,0]
A*inv(A)
B=sin(%pi*A)
B(:,1)
clear;
B
4:10
2+2,2*3
(1-i)^2
X=2/3;
X
A=[A,1/2,1/6 ; 1/3,1/3,1/2 ; -1,1,0]
A*inv(A)
B=sin(pi*A)
B(:,1)
clear;
B
4:10
Remarques :
Le ; permet de ne pas afficher le rsultat.
*lab value les fractions (il ne sagit pas de calcul formel).
On peut composer les fonctions propres *lab.
Exemple : sin(inv(sqrt(A)).
1
Fonctions
Le logiciel se prsente sous la forme dune fentre de commande o peuvent tre excute toute instruction.
Afin de raliser des programmes plus labors, il est prfrable de les dcomposer en fonctions, que lon appelle par la
suite dans la fentre de commande ou lintrieur dautres fonctions.
Scilab
Matlab
function [p,q]=toto(n)
// commentaire en Scilab
// Entre : n entier
// Sorties : p entier,
//
q chaine de caracteres
function [p,q]=toto(n)
% commentaire en Matlab
% Entre : n entier
% Sorties : p entier,
%
q chaine de caracteres
Syntaxe
p=prod(1:n);
q=tralala;
p=prod(1:n);
q=tralala;
endfunction
end
Sauvegarde
Excution
Lavantage de Scilab est que lon peut directement taper des scripts (fichier dextension .sci) que lon excute dans
la fentre de commande avec exec(monscript.sci) ou en utilisant la commande Excuter dans Scilab du menu
Excuter. Ces scripts peuvent contenir des fonctions et des instructions.
Exercice 2 :
Crer une fonction fact2 qui calcule la factorielle de n laide dune boucle for ou while en suivant les syntaxes
suivantes.
Scilab
Matlab
a=1;
if a>0
disp(positif,a)
else
disp(positif ou nul,a)
end
a=1;
if a>0
fprintf(%d positif \n,a)
else
fprintf(%d positif ou nul \n,a)
end
Instruction if-(else)-end
Boucle for-end
for i=0:5
disp(i)
end
Boucle while-end
i=0;
while (i<=5)
disp(i)
i=i+1;
end
Oprateurs
relationnels
Oprateurs logiques
galit : ==, diffrence : ~= (ou <> en Scilab), infrieur strict : <, suprieur strict : >,
infrieur ou gal : <=, suprieur ou gal : >=.
Conjonction et : &, disjonction ou : |, ngation non : ~.
A=[1,2 ; 1, 3; 1,4]
X=[1, 2, 3] (resp. X=[1;2;3])
X=[0:0.55:1]
X=linspace(0., 1., 10) (vecteur ligne)
eye(n,n)
ones(n,m)
zeros(n,m)
C=[ones(2,3), zeros(2,1) ; rand(3,4)]
D=C(2:4, 1:2:4)
D(4,1)
x=diag(A)
D=diag(x)
size(A)
size(A,1)
size(A,2)
A
Exercice 3 :
Appliquer les instructions prcdentes pour construire deux matrices A et B de taille 3 3 dont les lments sont des
entiers quelconques. Tester les instructions suivantes :
3*A, A.*B, A./B, A.^2, A^2, A.^B, cos(A), exp(B), C=[A,B], D=[A B], E=[A;B]
Exercice 4 :
crire une fonction qui renvoie une matrice contenant le triangle de Pascal.
Graphiques
Syntaxe Scilab
Syntaxe Matlab
Algbre linaire
Norme p de la matrice A ou du vecteur x avec
p N ou p=inf,fro
Dterminant, rang et trace de la matrice A
Inverse de A
Renvoie les valeurs propres de A (et les vecteurs
propres selon lutilisation)
norm(A,p), norm(x,p)
det(A), rank(A), trace(A)
inv(A)
Scilab : spec(A), Matlab : eig(A)