0% ont trouvé ce document utile (0 vote)
70 vues2 pages

TP0 Memoscilab

Scilab memo tp

Transféré par

Has Saadaoui
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
70 vues2 pages

TP0 Memoscilab

Scilab memo tp

Transféré par

Has Saadaoui
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université de Rennes 1 Année 2019 – 2020

UFR Mathématiques Mémo Scilab L3 ANU

Recommandations générales Opérations d’algèbre linéaire


Édition : Utiliser l’éditeur intégré à scilab. Placer les fonctions dans des fichiers suffixés .sci et les norm(X,p) kXkp (p∈ [1, +∞[ ou p= ’inf’)
scripts d’exécution dans des fichiers suffixés .sce. Pour nommer les fichiers, variables ou fonctions norm(A,p) |||A|||p (norme subordonnée lorsque p∈ {1,2,’inf’}, de Frobenius si p=’fro’)
ne pas utiliser de caractères spéciaux : accents, espaces, etc. Utiliser des noms de variables et de det(A) Déterminant de la matrice A
fonctions qui facilitent la programmation, sans toutefois l’alourdir. rank(A) Rang de la matrice A
Penser à commenter les programmes à l’aide du symbole // commentaire. trace(A) Trace de la matrice A
Exécution : Ne pas oublier de se placer préalablement dans le répertoire de travail qui contient les inv(A) Inverse de la matrice A
fichiers à utiliser. A\b Résolution d’un système linéaire Ax = b
Vos fonctions sont rendues utilisables par le logiciel une fois préalablement exécutées (exec fichier. kernel(A) Base orthonormée du noyau de A
sci ou touche play de l’éditeur). Toute modification d’une fonction ne sera effective qu’après nouvelle spec(A) Vecteur des valeurs propres de A avec multiplicité
exécution du fichier la contenant. [P,D]=spec(A) A = P DP −1 , P contient les vecteurs propres lorsqu’ils existent
Deboguage : Pour la résolution d’une erreur, commencer par l’identifier !
La commande pause glissée dans une fonction ou un programme permet d’interrompre l’exécution et Booléens et opérateurs logiques
de récupérer la main dans la ligne de commande afin d’examiner les variables ; l’exécution est reprise %T, %F Booléens VRAI et FAUX, respectivement
par resume ou interrompue définitivement par abort. ==,>,<,>=,<= Tests =, >,<,≥,≤, respectivement
Un message d’erreur de scilab indique le lieu et la nature de l’erreur, mais il faut souvent examiner & Opérateur logique ET
les quelques lignes précédentes qui peuvent en être la source réelle. | Opérateur logique OU
Dans la recherche d’une erreur affectant le résultat d’un algorithme, une stratégie de deboguage
efficace consiste à décliner une série de tests élémentaires et progressifs qui permettent de valider
les différentes étapes de l’algorithme indépendamment les unes des autres. Cette validation peut/doit Quelques fonctions et variables
être effectuée au fil de la programmation qui est alors elle-même progressive. sqrt, log, exp, cos, sin, tan, cosh, sinh, tanh, abs, int, floor, sign, real, imag
À l’aide ! User et abuser des commandes help ou apropos. %pi, %e, %i, %inf, %eps, %nan

Structures de contrôle
Définition de vecteurs et matrices function [ y1 , y2 ]= f ( x1 , x2 , x3 ) Le programme de la fonction f doit impérativement définir
... les arguments de sortie y1 et y2 (elle n’est pas destinée à
[ ] Définition d’un vecteur ou d’une matrice (séparateurs , et ;) endfunction
faire autre chose, comme du tracé graphique).
a:h:b Vecteur incrémental de pas h entre a et b
linspace(a,b,N) Vecteur de N valeurs équiréparties entre a et b
for i = LISTE LISTE est un vecteur de valeurs parcourues successive-
... ment par la variable i, le plus souvent un vecteur incré-
zeros(m,n) Matrice nulle de taille m×n end
ones(m,n) Matrice de 1 de taille m×n mental 1:n ou décrémental n:-1:1
rand(m,n) Matrice aléatoire (coeff. unif. distribués dans [0, 1]) de taille m×n while condition condition est un booléen
...
eye(m,n) Matrice de type identité de taille m×n end
diag(X) Construction de la matrice carrée dont la (0-ième) diagonale est le vecteur X
if cond_1 then On peut utiliser plusieurs elseif successifs. Attention à la
diag(X,i) Construction de la matrice carrée dont la i-ième diagonale est le vecteur X ... position de then : une erreur courante et difficile à repérer
elseif cond_2 then
...
est de placer then sur la ligne suivant le booléen cond_1.
else
...
Manipulation de vecteurs et matrices end
length(X) Longueur d’un vecteur (ou nombre de composantes d’une matrice X)
size(A) Taille m×n de la matrice A
size(A,1) Nombre de lignes de la matrice A Messages d’erreurs fréquents
size(A,2) Nombre de colonnes de la matrice A Index invalide. Tentative d’accès à une composante inexistante d’une
A(I,J) Extraction de la sous-matrice des coeff. de A situés aux lignes I et colonnes J, matrice : vérifier les «effets de bord» dans les boucles,
I et J pouvant être des listes d’entiers la nature des indices (réels, entiers, positifs, non-nuls et
A(:,1) Extraction de la première colonne de A inférieurs aux tailles des vecteurs).
A(2:$-1,1) Extraction de la première colonne de A excepté le premier et le dernier coefficient Multiplication incoherente. Produit incompatible de matrices.
diag(A) Extraction du vecteur formant la diagonale de A La sous-matrice n’est pas Affectation d’une sous-matrice avec dimensions incompa-
diag(A,i) Extraction du vecteur formant la i-ième diagonale de A correctement definie. tibles.
A.#B où l’opérateur binaire # ∈ {*,/,^}, Opération composante par composante entre Division par zero... Le message est limpide.
les matrices A et B Attention : La matrice est Ce n’est pas une erreur mais un «warning». La résolu-
A’ Adjoint de la matrice A (transconjuguée dans le cas de matrices de complexes) presque singuliere ou mal tion d’un système linéaire faisant intervenir une matrice
A.’ Transposée de la matrice A conditionnee. rcond = ... «presque non-inversible».
Université de Rennes 1 Année 2019 – 2020
UFR Mathématiques Un exemple de programme L3 ANU
1 // Fichier / Users /~ name / TP / fonctions . sci
2
Remarque. L’exemple suivant utilise très peu de fonctionnalités intégrées au logiciel et est 3 function y = f ( x )
plutôt un pretexte pour illustrer les usages de syntaxe et les possibilités de vectorisation. 4 y = (1+25* x .^2) .^( -1)
5 endfunction
6
7 function D = diffdiv (x , y )
Un problème d’interpolation 8 n = length ( x ) ;
9 D = zeros (n , n ) ;
Étant données différentes valeurs d’un entier n ∈ N, on souhaite éprouver la qualité de 10 D (: ,1) = y ;
l’interpolation de Lagrange de la fonction f : x 7→ (1+25x 2 )−1 , en n+1 points uniformément 11 for j =2: n
répartis dans l’intervalle [−1, 1] : xj = j/n, pour 0 ≤ j ≤ n. 12 for i =1:( n - j +1)
13 D (i , j ) = ( D ( i +1 ,j -1) -D (i ,j -1) ) /( x ( i +j -1) -x ( i ) ) ;
Le polynôme d’interpolation est calculé sous sa forme de Newton : 14 end
15 end
p(X) = f (x0 ) + f [x0 , x1 ](X − x0 ) + . . . + f [x0 , x1 , . . . , xn ](X − x0 ) . . . (X − xn−1 ), 16 endfunction
17
pour laquelle les coefficients sont obtenus en calculant récursivement les différences divisées 18 function y = fastexp (x ,D , t )
(généralisation du taux d’accroissement aux ordres supérieurs) : 19 n = length ( x ) ;
20 y = D (1 , n ) * ones ( t ) ;
f [x1 , x2 , . . . , xj ] − f [x0 , x1 , . . . , xj−1 ] 21 for k =n -1: -1:1
f [x0 , x1 , . . . , xj ] = .
xj − x0 22 y = (t - x ( k ) ) .* y + D (1 , k ) ;
23 end
Le polynôme p est alors évalué par exponentiation rapide (algorithme de Horner). 24 endfunction

1 // Fichier / Users /~ name / TP / script . sce


2
3 clear ;
4 exec fonctions . sci ;
5 x = linspace ( -1 ,1 ,400) ; x = x ’; y = f ( x ) ;
6
7 z = []; Z = [];
8 for n = [1:10]
9 X = linspace ( -1 ,1 , n +1) ;
10 val = f ( X ) ; D = diffdiv (X , val ) ;
11 yp = fastexp (X ,D , x ) ; Z = [Z , yp ];
12 end
13
14 scf (1) ; clf ;
15 plot (x ,y , ’ - ’) ; plot (x ,Z , ’ -- ’) ;
16 title ( " Polynomes d ’ ’ interpolation de degre n " ) ;
17 legend ([ " f " ," n = " + string ([1:10]) ]) ;
18 xs2png (1 , " graphe . png " ) ;

Initialisation :
Chargement de l ’ environnement de travail

--> cd / Users /~ name / TP /;


--> exec script . sce ;

Vous aimerez peut-être aussi