mathematique informatique avec scilab

Telechargé par mbalaremymaxime
1
Mathématique
&
Informatique
Copyright © 2015
Loïc Vrillon
2
Mathématique & Informatique
Notations matricielles.
Une matrice se présente sous la forme de données encadrées par 2 crochets. Chaque élément d'une ligne est séparé du
suivant par une virgule ou des espaces. Le point-virgule sert à passer à la ligne suivante.
A = [a11 , ... , a1q ; ... ; ap1 , ... , apq] désigne une matrice de dimension (p , q) , c’est-à-dire de p lignes et q colonnes.
Les éléments A(i , j) = aij sont référencés en colonne : A(i , j) = A(i + (j - 1)*p) avec i = 1, ... , p et j = 1, ... , q
La matrice transposée et conjuguée de A est notée A' : 
. Noter A.' pour une transposition seule.
L'application d'une fonction f usuelle (sin, exp, sqrt, ...) aux éléments de A s'écrit f(A) : f(A) = f([aij]) = [f(aij)]
Si I = [i1, ... , ir] et J = [j1, ... , js] sont 2 vecteurs d'indices, alors A(I , J) = [aij]i I, j J est une matrice extraite de A.
NB. Par convention [] est assimilée au scalaire et [ ] symbolise la matrice vide.
Cas p = 1 ou q = 1 :
x = [v1 , ... , vq] désigne un vecteur ligne (1 , q) composé de q valeurs vj x(j) = vj
y = [w1 ; ... ; wp] désigne un vecteur colonne (p , 1) composé de p valeurs wi y(i) = wi
Soit n vecteurs lignes réels x1 , ... , xn de même dimension :
X = [x1 ; ... ; xn] désigne la matrice composée des vecteurs xi en ligne X(i , :) = xi
X' = [x1 ; ... ; xn]' désigne la matrice composée des vecteurs xi en colonne X'(: , j) = xj'
Opérations de base :
Les symboles +, -, *, /, ^ sont utilisés pour les opérations habituelles sur les matrices et les symboles .*, ./, .^
sont utilisés pour les opérations élément par élément : A .op B = [aij op bij]
L'antislash \ sert à inverser une matrice : A \ B = A-1 * B
L'expression x = A \ b revient à résoudre A* x = b , et l'expression x = A / b revient à résoudre x * b = A
Le symbole .*. représente le produit tensoriel : A .*. B = A B = [aij * B]
NB. Validité des opérations matricielles :
(p , q) (p , q) = (p , q)
(p , q) * (q , r) = (p , r)
(p , q) / (r , q) = (p , r)
(p , q) \ (p , r) = (q , r)
Fonctions usuelles.
zeros(p , q) fournit la matrice p lignes, q colonnes dont les éléments sont des 0.
ones(p , q) fournit la matrice p lignes, q colonnes dont les éléments sont des 1.
eye(n , n) fournit la matrice identité d'ordre n.
norm(x) fournit la norme euclidienne du vecteur x.
det(A) fournit le déterminant de la matrice A.
inv(A) fournit la matrice inverse de la matrice A.
spec(A) fournit les valeurs propres de la matrice A.
Discrétisation.
La fonction linspace permet de créer un vecteur ligne constitué de points régulièrement espacés entre une valeur a et une
valeur b. Sa syntaxe est : linspace( valeur a, valeur b, nombre de points ). Le pas est égal à (b - a) / (nb_pts - 1).
Par exemple : x = linspace(0, 10, 6) est équivalent à x = [0, 2, 4, 6, 8, 10]
Pour obtenir des points équidistants à partir d'une valeur a jusqu'à une valeur limite b, on peut aussi écrire :
valeur a : valeur du pas : valeur b. Par défaut, la valeur du pas est de +1 (a:b a:1:b).
Par exemple : x = 0:2:11 est équivalent à x = [0, 2, 4, 6, 8, 10]
NB. Avec linspace les bornes a et b sont toujours atteintes.
Scilab - Scientific Laboratory - est un logiciel de calcul scientifique
(équations, graphiques, optimisations, statistiques, graphes, ...) disposant
d'une bibliothèque de plusieurs centaines de fonctions. Créé à l'INRIA,
il est distribué sous licence CeCILL (Open Source) par Scilab Enterprises
et téléchargeable sur le site internet : http://www.scilab.org/
3
Mathématique & Informatique
EXEMPLES.
A = [1,2;3,4] = 1. 2. ; B = [5,6;7,8] = 5. 6.
3. 4. 7. 8.
x = [9,10] = 9. 10. ; y = [11,12] = 11. 12. ; z = [13;14] = 13.
14.
Addition :
A + B = B + A = 6. 8. ; A + 1 = 2. 3. ; x + y = 20. 22.
10. 12. 4. 5.
Soustraction :
A - B = -4. -4. ; B - A = 4. 4. ; x - y = -2. -2.
-4. -4. 4. 4.
Multiplication :
5 * A = 5 .* A = A * 5 = A .* 5 = 5. 10.
15. 20.
A * B = 19. 22. ; B * A = 23. 34. ; A .* B = B .* A = 5. 12.
43. 50. 31. 46. 21. 32.
A * z = 41. ; x * y' = 219. ; x' * y = 99. 108.
95. 110. 120.
Division :
A / 2 = A ./ 2 = 0.5 1. ; 3 / A = -6. 3. ; 3 ./ A = 3. 1.5
1.5 2. 4.5 -1.5 1. 0.75
A / B = 3. -2. ; A ./ B = 0.2 0.3333333
2. -1. 0.4285714 0.5
x / A = -3. 4. ; x ./ y = 0.8181818 0.8333333
Exponentiation :
A ^ 2 = 7. 10. ; A .^ 2 = 1. 4. ; x ^ 3 = x .^ 3 = 729. 1000.
15. 22. 9. 16.
Inversion :
A \ B = -3. -4. ; A \ 1 = -2. 1. ; A \ z = -12.
4. 5. 1.5 -0.5 12.5
Fonction :
exp(A) = 2.7182818 7.3890561 ; spec(A) = 5.3722813
20.085537 54.59815 -0.3722813
Produit tensoriel :
A .*. B = 5. 6. 10. 12. ; x .*. y = 99. 108. 110. 120.
7. 8. 14. 16.
15. 18. 20. 24.
21. 24. 28. 32.
4
Mathématique & Informatique
Graphisme en 2 dimensions :
On utilise la fonction plot2d pour représenter une courbe dans le plan :
plot2d( x, y, options )
Cas 1 : la courbe est donnée par une équation cartésienne y(x)
1) Définir le domaine de variation de l'abscisse x :
x = linspace( xmin , xmax , nx )
2) Ecrire l'expression analytique de l'ordonnée y :
y = f (x)
3) Dessiner la courbe : plot2d( x, y, options )
Cas 2 : la courbe est donnée par des équations paramétriques x(t), y(t)
1) Définir le domaine de variation du paramètre t :
t = linspace( tmin , tmax , nt )
2) Ecrire les expressions analytiques de l'abscisse x et de l'ordonnée y des points :
x = f1 (t)
y = f2 (t)
3) Dessiner la courbe : plot2d( x, y, options )
Cas 3 : la courbe est donnée une équation polaire r()
1) Définir le domaine de variation de l’angle theta :
theta = linspace( thetamin , thetamax , ntheta )
2) Ecrire les expressions analytiques du rayon r, de l'abscisse x et de l'ordonnée y :
r = f(theta)
x = r .* cos(theta)
y = r .* sin(theta)
3) Dessiner la courbe : plot2d( x, y, options )
Les options style = n1 , frameflag = n2 , axesflag = n3 , permettent de choisir respectivement la couleur de la courbe,
l'échelle du tracé, le type d'axes, en fonction des valeurs des entiers n1 , n2 , n3 .
Pour plus de détails, accéder à l'aide de Scilab : F1  Graphiques  plot2d
Remarques :
- Lorsqu’on dessine une courbe avec plot2d, on peut écrire indifféremment ses coordonnées en ligne ou en colonne.
- La fonction plot2d relie 2 points successifs d'une même courbe par un trait.
Par exemple : plot2d([a1 , a2], [b1 , b2]) trace un trait entre le point P1(a1, b1) et le point P2(a2, b2).
Il est donc inutile de discrétiser des segments de droite, il suffit de préciser leurs extrémités.
- Pour définir uniquement les options d'un dessin, on peut utiliser l'expression : plot2d(%inf, %inf, options)
- Il est possible de dessiner simultanément N courbes sur le même graphique en utilisant la syntaxe suivante :
xi = linspace(min xi , max xi , n) ; yi = fi (xi) ; plot2d([x1 ; ... ; xN]' , [y1 ; ... ; yN]' , options)
Les coordonnées xi et yi sont fournies en colonne, d'où la présence du symbole ' (apostrophe droite).
Si x1 = ... = xN = x, on utilise la formulation simplifiée : plot2d(x' , [y1 ; ... ; yN]' , options)
A noter que le nombre n de points de calcul doit être le même pour toutes les courbes, sinon il faut faire appel à la
fonction plot2d pour chaque courbe séparément :
xi = linspace(min xi , max xi , ni) ; yi = fi (xi) ; plot2d(xi , yi , options)
5
Mathématique & Informatique
Exemples de programmes Scilab :

// Chaînette
a = 5 ;
x = linspace(-10, +10, 200) ;
y = a*cosh(x/a) ;
plot2d(x, y)


// Figure de Lissajous
a1 = 4.1 ; f1 = 4 ; a2 = 2.2 ; f2 = 3 ;
t = linspace(0, 1, 200) ;
x = a1*sin(2*%pi*f1*t) ;
y = a2*sin(2*%pi*f2*t) ;
plot2d(x, y)

// Spirale logarithmique
a = 1 ; m = 0.1 ;
theta = linspace(-33,+10,1000) ;
r = a*exp(m*theta) ;
x = r.*cos(theta) ;
y = r.*sin(theta) ;
plot2d(x, y)
1 / 1087 100%

mathematique informatique avec scilab

Telechargé par mbalaremymaxime
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !