previous Scilab - Remarques à propos des scalaires, vecteurs, matrices et tableaux


Où l'on verra également la différence entre :

*
.*
/
./
^
.^



1. Scilab manipule des scalaires, vecteurs et matrices


--> a = 6

a =

6.


--> b = [ 1 3 8 ]

b =


    1.    3.    8.


--> c = [ 2 10 ; 3 8]

c =
 
    2.    10. 
    3.    8. 


--> d = [ 1 2 ; 3 4 ]

d =

    1.    2. 
    3.    4.


--> e = [ -2 -8 -3 ]

e =

  - 2.  - 8.  - 3.


--> f = [ 8 ; 5 ; 2 ]

f =

    8. 
    5. 
    2. 


--> whos

Name                     Type           Size           Bytes 
a                        constant       1 by 1         24   
b                        constant       1 by 3         40          
c                        constant       2 by 2         48   
d                        constant       2 by 2         48 
e                        constant       1 by 3         40
f                         constant       3 by 1         40    


a est un scalaire (autrement dit une matrice 1x1)

b est un vecteur ligne (autrement dit une matrice 1x3)

c est une matrice (2x2)

d est une matrice (2x2)

e est un vecteur ligne (autrement dit une matrice 1x3)

f est un vecteur colonne (autrement dit une matrice 3x1)

 

2. Tableau (Array) et matrice


Multiplication de matrice *
Multiplication de tableau (élément par élément) .*
Puissance de matrice ^
Puissance de tableau (élément par élément) .^
Division de matrice
B / A est équivalent à :  B * inv(A)
/
Division de tableau (élément par élément) ./



* est le produit matriciel :

--> [ 2 10 ; 3 8] *[ 1 2 ; 3 4 ]

ans =

    32.    44. 
    27.    38.


.* désigne la multiplication élément par élément, ce qui est complètement différent :

--> [ 2 10 ; 3 8] .* [ 1 2 ; 3 4 ]

ans =
 
    2.    20. 
    9.    32.


--> [ 2 10 ; 3 8] / [ 1 2 ; 3 4 ]

ans =
 
    11.  - 3. 
    6.   - 1. 


--> [ 2 10 ; 3 8] ./ [ 1 2 ; 3 4 ]

ans =
 
    2.    5. 
    1.    2. 


--> [ 2 10 ; 3 8] ^2

ans =
 
    34.    100. 
    30.    94. 


--> [ 2 10 ; 3 8] .^2

ans =
 
    4.    100. 
    9.    64.


--> 6*[ 1 3 8 ]

ans =
 
    6.    18.    48.


--> 6.*[ 1 3 8 ]

ans =
 
    6.    18.    48.


--> 6*[ 2 10 ; 3 8]

ans =
 
    12.    60. 
    18.    48. 


--> 6.*[ 2 10 ; 3 8]

ans =
 
    12.    60. 
    18.    48. 


--> [ 1 3 8 ].*[ -2 -8 -3 ]

ans =
 
  - 2.  - 24.  - 24. 


Le calcul suivant n'a pas de sens :

--> [ 1 3 8 ] *[ -2 -8 -3 ]

!--error 10
Inconsistent multiplication.



Soit un vecteur ligne 1x7 :

--> x = 0 : 6

x  =
 
    0.    1.    2.    3.    4.    5.    6. 


--> y = (x+1).^2

y =
 
    1.    4.    9.    16.    25.    36.    49.

y est un vecteur ligne 1x7.


 
Testons avec une matrice carrée 2x2 :

--> x = [ 1 2 ; 3 4 ]

x =

    1.    2. 
    3.    4.


--> y = (x+1).^2

y =
 
    4.     9.  
    16.    25.


--> y = (x+1)^2

y =

    16.    21. 
    28.    37.

 
--> t = 0 : 5

t =

    0.    1.    2.    3.    4.    5.


--> u = t.^2 + 3.*t./ (5 + 2.*t)

u =

    0.    1.4285714    4.6666667    9.8181818    16.923077    26.


--> [t ; u]

ans =

    0.    1.           2.           3.           4.           5.  
    0.    1.4285714    4.6666667    9.8181818    16.923077    26. 


--> [t ; u]'

ans =

    0.    0.        
    1.    1.4285714 
    2.    4.6666667 
    3.    9.8181818 
    4.    16.923077 
    5.    26.       


--> z = 4 : 2 : 14

z =
 
    4.    6.    8.    10.    12.    14. 


--> t./z

ans =

    0.    0.1666667    0.25    0.3    0.3333333    0.3571429 



(C) Fabrice Sincère ; Révision 1.1.1