MATLAB - Opérations arithmétiques

MATLAB permet deux types différents d'opérations arithmétiques -

  • Opérations arithmétiques matricielles
  • Opérations arithmétiques de tableau

Les opérations arithmétiques matricielles sont les mêmes que celles définies en algèbre linéaire. Les opérations de tableau sont exécutées élément par élément, à la fois sur un tableau unidimensionnel et multidimensionnel.

Les opérateurs de matrice et les opérateurs de tableaux sont différenciés par le symbole de point (.). Cependant, comme l'opération d'addition et de soustraction est la même pour les matrices et les tableaux, l'opérateur est le même dans les deux cas.

Le tableau suivant donne une brève description des opérateurs -

N ° Sr. Opérateur et description
1

+

Addition ou plus unaire. A + B ajoute les valeurs stockées dans les variables A et B. A et B doivent avoir la même taille, sauf si l'une est un scalaire. Un scalaire peut être ajouté à une matrice de n'importe quelle taille.

2

-

Soustraction ou moins unaire. AB soustrait la valeur de B de A. A et B doivent avoir la même taille, sauf si l'un est un scalaire. Un scalaire peut être soustrait d'une matrice de n'importe quelle taille.

3

*

Multiplication matricielle. C = A * B est le produit algébrique linéaire des matrices A et B. Plus précisément,

Pour A et B non scalaires, le nombre de colonnes de A doit être égal au nombre de lignes de B. Un scalaire peut multiplier une matrice de n'importe quelle taille.

4

.*

Multiplication de tableau. A. * B est le produit élément par élément des tableaux A et B. A et B doivent avoir la même taille, sauf si l'un d'entre eux est un scalaire.

5

/

Division droite par barre oblique ou matrice. B / A est à peu près le même que B * inv (A). Plus précisément, B / A = (A '\ B') '.

6

./

Division droite du tableau. A./B est la matrice avec les éléments A (i, j) / B (i, j). A et B doivent avoir la même taille, sauf si l'un d'eux est un scalaire.

sept

\

Antislash ou division gauche matricielle. Si A est une matrice carrée, A \ B est à peu près le même que inv (A) * B, sauf qu'il est calculé d'une manière différente. Si A est une matrice n par n et B est un vecteur colonne à n composantes, ou une matrice à plusieurs de ces colonnes, alors X = A \ B est une solution à l'équation AX = B . Un message d'avertissement s'affiche si A est mal mis à l'échelle ou presque singulier.

8

.\

Division du tableau à gauche. A. \ B est la matrice avec les éléments B (i, j) / A (i, j). A et B doivent avoir la même taille, sauf si l'un d'eux est un scalaire.

9

^

Puissance de la matrice. X ^ p est X à la puissance p, si p est un scalaire. Si p est un entier, la puissance est calculée par quadrillage répété. Si l'entier est négatif, X est inversé en premier. Pour les autres valeurs de p, le calcul fait intervenir des valeurs propres et des vecteurs propres, tels que si [V, D] = eig (X), alors X ^ p = V * D. ^ p / V.

dix

.^

Puissance de la baie. A. ^ B est la matrice avec les éléments A (i, j) à la puissance B (i, j). A et B doivent avoir la même taille, sauf si l'un d'eux est un scalaire.

11

'

Matrice transposée. A 'est la transposée algébrique linéaire de A. Pour les matrices complexes, c'est la transposée conjuguée complexe.

12

.'

Transposer le tableau. UNE.' est le tableau transposé de A. Pour les matrices complexes, cela n'implique pas de conjugaison.

Exemple

Les exemples suivants illustrent l'utilisation d'opérateurs arithmétiques sur des données scalaires. Créez un fichier de script avec le code suivant -

a = 10;
b = 20;
c = a + b
d = a - b
e = a * b
f = a / b
g = a \ b
x = 7;
y = 3;
z = x ^ y

Lorsque vous exécutez le fichier, il produit le résultat suivant -

c =  30
d = -10
e =  200
f =  0.50000
g =  2
z =  343

Fonctions pour les opérations arithmétiques

Outre les opérateurs arithmétiques mentionnés ci-dessus, MATLAB fournit les commandes / fonctions suivantes utilisées à des fins similaires -

N ° Sr. Description de la fonction
1

uplus(a)

Unaire plus; incrémente du montant a

2

plus (a,b)

Plus; renvoie a + b

3

uminus(a)

Moins unaire; décrémente du montant a

4

minus(a, b)

Moins; renvoie a - b

5

times(a, b)

Array multiplier; renvoie a. * b

6

mtimes(a, b)

Multiplication matricielle; renvoie a * b

sept

rdivide(a, b)

Division du tableau à droite; renvoie a ./ b

8

ldivide(a, b)

Division du tableau gauche; renvoie a. \ b

9

mrdivide(A, B)

Résoudre des systèmes d'équations linéaires xA = B pour x

dix

mldivide(A, B)

Résoudre des systèmes d'équations linéaires Ax = B pour x

11

power(a, b)

Puissance de la matrice; renvoie a. ^ b

12

mpower(a, b)

Puissance de la matrice; renvoie a ^ b

13

cumprod(A)

Produit cumulatif; renvoie un tableau de la même taille que le tableau A contenant le produit cumulatif.

  • Si A est un vecteur, alors cumprod (A) renvoie un vecteur contenant le produit cumulatif des éléments de A.

  • Si A est une matrice, cumprod (A) renvoie une matrice contenant les produits cumulés pour chaque colonne de A.

  • Si A est un tableau multidimensionnel, alors cumprod (A) agit le long de la première dimension non singleton.

14

cumprod(A, dim)

Renvoie le produit cumulé le long de la dimension dim .

15

cumsum(A)

Somme cumulative; renvoie un tableau A contenant la somme cumulée.

  • Si A est un vecteur, alors cumsum (A) renvoie un vecteur contenant la somme cumulée des éléments de A.

  • Si A est une matrice, alors cumsum (A) renvoie une matrice contenant les sommes cumulées pour chaque colonne de A.

  • Si A est un tableau multidimensionnel, alors cumsum (A) agit le long de la première dimension non-singulière.

16

cumsum(A, dim)

Renvoie la somme cumulée des éléments le long de la dimension dim .

17

diff(X)

Différences et dérivés approximatifs; calcule les différences entre les éléments adjacents de X.

  • Si X est un vecteur, alors diff (X) renvoie un vecteur, un élément plus court que X, des différences entre éléments adjacents: [X (2) -X (1) X (3) -X (2) ... X (n) -X (n-1)]

  • Si X est une matrice, alors diff (X) renvoie une matrice de différences de lignes: [X (2: m,:) - X (1: m-1, :)]

18

diff(X,n)

Applique diff récursivement n fois, ce qui donne la nième différence.

19

diff(X,n,dim)

C'est la nième fonction de différence calculée le long de la dimension spécifiée par dim scalaire. Si l'ordre n est égal ou dépasse la longueur de la dimension dim, diff renvoie un tableau vide.

20

prod(A)

Produit d'éléments de tableau; renvoie le produit des éléments du tableau de A.

  • Si A est un vecteur, alors prod (A) renvoie le produit des éléments.

  • Si A est une matrice non vide, alors prod (A) traite les colonnes de A comme des vecteurs et renvoie un vecteur ligne des produits de chaque colonne.

  • Si A est une matrice vide 0 par 0, prod (A) renvoie 1.

  • Si A est un tableau multidimensionnel, alors prod (A) agit le long de la première dimension non singleton et renvoie un tableau de produits. La taille de cette dimension se réduit à 1 tandis que les tailles de toutes les autres dimensions restent les mêmes.

La fonction prod calcule et renvoie B comme simple si l'entrée, A, est unique. Pour tous les autres types de données numériques et logiques, prod calcule et renvoie B comme double.

21

prod(A,dim)

Renvoie les produits le long de la dimension dim. Par exemple, si A est une matrice, prod (A, 2) est un vecteur de colonne contenant les produits de chaque ligne.

22

prod(___,datatype)

multiplie et retourne un tableau dans la classe spécifiée par le type de données.

23

sum(A)

  • Somme des éléments du tableau; renvoie des sommes selon différentes dimensions d'un tableau. Si A est virgule flottante, c'est-à-dire double ou simple, B est accumulé nativement, c'est-à-dire dans la même classe que A, et B a la même classe que A. Si A n'est pas virgule flottante, B est accumulé en double et B a classe double.

  • Si A est un vecteur, sum (A) renvoie la somme des éléments.

  • Si A est une matrice, sum (A) traite les colonnes de A comme des vecteurs, renvoyant un vecteur ligne des sommes de chaque colonne.

  • Si A est un tableau multidimensionnel, sum (A) traite les valeurs le long de la première dimension non singleton comme des vecteurs, renvoyant un tableau de vecteurs de ligne.

24

sum(A,dim)

Somme le long de la dimension de A spécifiée par dim scalaire .

25

sum(..., 'double')

sum(..., dim,'double')

Effectuez des ajouts en double précision et retournez une réponse de type double, même si A a un type de données simple ou un type de données entier. Il s'agit de la valeur par défaut pour les types de données entiers.

26

sum(..., 'native')

sum(..., dim,'native')

Effectuez des ajouts dans le type de données natif de A et renvoyez une réponse du même type de données. C'est la valeur par défaut pour simple et double.

27

ceil(A)

Arrondir vers l'infini positif; arrondit les éléments de A aux nombres entiers les plus proches supérieurs ou égaux à A.

28

fix(A)

Arrondir vers zéro

29

floor(A)

Arrondir vers l'infini négatif; arrondit les éléments de A aux entiers les plus proches inférieurs ou égaux à A.

30

idivide(a, b)

idivide(a, b,'fix')

Division entière avec option d'arrondi; est identique à a./b sauf que les quotients fractionnaires sont arrondis vers zéro aux nombres entiers les plus proches.

31

idivide(a, b, 'round')

Les quotients fractionnaires sont arrondis aux nombres entiers les plus proches.

32

idivide(A, B, 'floor')

Les quotients fractionnaires sont arrondis vers l'infini négatif aux nombres entiers les plus proches.

33

idivide(A, B, 'ceil')

Les quotients fractionnaires sont arrondis vers l'infini aux nombres entiers les plus proches.

34

mod (X,Y)

Module après division; renvoie X - n. * Y où n = plancher (X./Y). Si Y n'est pas un entier et que le quotient X./Y est dans l'erreur d'arrondi d'un entier, alors n est cet entier. Les entrées X et Y doivent être des tableaux réels de même taille, ou des scalaires réels (à condition que Y ~ = 0).

Veuillez noter -

  • mod (X, 0) est X
  • mod (X, X) vaut 0
  • mod (X, Y) pour X ~ = Y et Y ~ = 0 a le même signe que Y
35

rem (X,Y)

Reste après division; renvoie X - n. * Y où n = fix (X./Y). Si Y n'est pas un entier et que le quotient X./Y est dans l'erreur d'arrondi d'un entier, alors n est cet entier. Les entrées X et Y doivent être des tableaux réels de même taille, ou des scalaires réels (à condition que Y ~ = 0).

Veuillez noter que -

  • rem (X, 0) est NaN
  • rem (X, X) pour X ~ = 0 est 0
  • rem (X, Y) pour X ~ = Y et Y ~ = 0 a le même signe que X.
36

round(X)

Arrondir à l'entier le plus proche; arrondit les éléments de X aux entiers les plus proches. Les éléments positifs avec une partie fractionnaire de 0,5 arrondis à l'entier positif le plus proche. Les éléments négatifs avec une partie fractionnaire de -0,5 arrondis à l'entier négatif le plus proche.