MATLAB - Algèbre

Jusqu'à présent, nous avons vu que tous les exemples fonctionnent dans MATLAB ainsi que dans son GNU, également appelé Octave. Mais pour résoudre les équations algébriques de base, MATLAB et Octave sont un peu différents, nous allons donc essayer de couvrir MATLAB et Octave dans des sections séparées.

Nous discuterons également de la factorisation et de la simplification des expressions algébriques.

Résolution d'équations algébriques de base dans MATLAB

le solveLa fonction est utilisée pour résoudre des équations algébriques. Dans sa forme la plus simple, la fonction de résolution prend l'équation entre guillemets comme argument.

Par exemple, résolvons pour x dans l'équation x-5 = 0

solve('x-5=0')

MATLAB exécutera l'instruction ci-dessus et retournera le résultat suivant -

ans =
   5

Vous pouvez également appeler la fonction de résolution comme -

y = solve('x-5 = 0')

MATLAB exécutera l'instruction ci-dessus et retournera le résultat suivant -

y =
   5

Vous pouvez même ne pas inclure le côté droit de l'équation -

solve('x-5')

MATLAB exécutera l'instruction ci-dessus et retournera le résultat suivant -

ans =
   5

Si l'équation implique plusieurs symboles, alors MATLAB suppose par défaut que vous résolvez pour x, cependant, la fonction de résolution a une autre forme -

solve(equation, variable)

où, vous pouvez également mentionner la variable.

Par exemple, résolvons l'équation v - u - 3t 2 = 0, pour v.Dans ce cas, nous devrions écrire -

solve('v-u-3*t^2=0', 'v')

MATLAB exécutera l'instruction ci-dessus et retournera le résultat suivant -

ans =
   3*t^2 + u

Résolution d'équations algébriques de base en octave

le roots La fonction est utilisée pour résoudre les équations algébriques dans Octave et vous pouvez écrire les exemples ci-dessus comme suit -

Par exemple, résolvons pour x dans l'équation x-5 = 0

roots([1, -5])

Octave exécutera l'instruction ci-dessus et retournera le résultat suivant -

ans = 5

Vous pouvez également appeler la fonction de résolution comme -

y = roots([1, -5])

Octave exécutera l'instruction ci-dessus et retournera le résultat suivant -

y = 5

Résolution d'équations quadratiques dans MATLAB

le solvefonction peut également résoudre des équations d'ordre supérieur. Il est souvent utilisé pour résoudre des équations quadratiques. La fonction renvoie les racines de l'équation dans un tableau.

L'exemple suivant résout l'équation quadratique x 2 -7x +12 = 0. Créez un fichier de script et tapez le code suivant -

eq = 'x^2 -7*x + 12 = 0';
s = solve(eq);
disp('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));

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

The first root is: 
   3
The second root is: 
   4

Résolution d'équations quadratiques en octave

L'exemple suivant résout l'équation quadratique x 2 -7x +12 = 0 en octave. Créez un fichier de script et tapez le code suivant -

s = roots([1, -7, 12]);

disp('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));

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

The first root is: 
   4
The second root is: 
   3

Résolution d'équations d'ordre supérieur dans MATLAB

le solvefonction peut également résoudre des équations d'ordre supérieur. Par exemple, résolvons une équation cubique comme (x-3) 2 (x-7) = 0

solve('(x-3)^2*(x-7)=0')

MATLAB exécutera l'instruction ci-dessus et retournera le résultat suivant -

ans =
   3
   3
   7

Dans le cas d'équations d'ordre supérieur, les racines sont longues contenant de nombreux termes. Vous pouvez obtenir la valeur numérique de ces racines en les convertissant en double. L'exemple suivant résout l'équation du quatrième ordre x 4 - 7x 3 + 3x 2 - 5x + 9 = 0.

Créez un fichier de script et tapez le code suivant -

eq = 'x^4 - 7*x^3 + 3*x^2 - 5*x + 9 = 0';
s = solve(eq);
disp('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));
disp('The third root is: '), disp(s(3));
disp('The fourth root is: '), disp(s(4));

% converting the roots to double type
disp('Numeric value of first root'), disp(double(s(1)));
disp('Numeric value of second root'), disp(double(s(2)));
disp('Numeric value of third root'), disp(double(s(3)));
disp('Numeric value of fourth root'), disp(double(s(4)));

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

The first root is: 
6.630396332390718431485053218985
 The second root is: 
1.0597804633025896291682772499885
 The third root is: 
- 0.34508839784665403032666523448675 - 1.0778362954630176596831109269793*i
 The fourth root is: 
- 0.34508839784665403032666523448675 + 1.0778362954630176596831109269793*i
Numeric value of first root
   6.6304
Numeric value of second root
   1.0598
Numeric value of third root
   -0.3451 - 1.0778i
Numeric value of fourth root
   -0.3451 + 1.0778i

Veuillez noter que les deux dernières racines sont des nombres complexes.

Résolution d'équations d'ordre supérieur en octave

L'exemple suivant résout l'équation du quatrième ordre x 4 - 7x 3 + 3x 2 - 5x + 9 = 0.

Créez un fichier de script et tapez le code suivant -

v = [1, -7,  3, -5, 9];
s = roots(v);

% converting the roots to double type
disp('Numeric value of first root'), disp(double(s(1)));
disp('Numeric value of second root'), disp(double(s(2)));
disp('Numeric value of third root'), disp(double(s(3)));
disp('Numeric value of fourth root'), disp(double(s(4)));

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

Numeric value of first root
 6.6304
Numeric value of second root
-0.34509 + 1.07784i
Numeric value of third root
-0.34509 - 1.07784i
Numeric value of fourth root
 1.0598

Résolution du système d'équations dans MATLAB

le solveLa fonction peut également être utilisée pour générer des solutions de systèmes d'équations impliquant plus d'une variable. Prenons un exemple simple pour démontrer cette utilisation.

Résolvons les équations -

5x + 9y = 5

3x - 6y = 4

Créez un fichier de script et tapez le code suivant -

s = solve('5*x + 9*y = 5','3*x - 6*y = 4');
s.x
s.y

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

ans =
   22/19
ans =
   -5/57

De la même manière, vous pouvez résoudre des systèmes linéaires plus grands. Considérez l'ensemble d'équations suivant -

x + 3y -2z = 5

3x + 5y + 6z = 7

2x + 4y + 3z = 8

Résolution du système d'équations en octave

Nous avons une approche un peu différente pour résoudre un système d'équations linéaires «n» en «n» inconnues. Prenons un exemple simple pour démontrer cette utilisation.

Résolvons les équations -

5x + 9y = 5

3x - 6y = 4

Un tel système d'équations linéaires peut être écrit comme l'équation matricielle unique Ax = b, où A est la matrice des coefficients, b est le vecteur colonne contenant le côté droit des équations linéaires et x est le vecteur colonne représentant la solution comme montré dans le programme ci-dessous -

Créez un fichier de script et tapez le code suivant -

A = [5, 9; 3, -6];
b = [5;4];
A \ b

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

ans =

   1.157895
  -0.087719

De la même manière, vous pouvez résoudre des systèmes linéaires plus grands comme indiqué ci-dessous -

x + 3y -2z = 5

3x + 5y + 6z = 7

2x + 4y + 3z = 8

Extension et collecte d'équations dans MATLAB

le expand et le collectLa fonction développe et recueille une équation respectivement. L'exemple suivant montre les concepts -

Lorsque vous travaillez avec de nombreuses fonctions symboliques, vous devez déclarer que vos variables sont symboliques.

Créez un fichier de script et tapez le code suivant -

syms x   %symbolic variable x
syms y   %symbolic variable x
% expanding equations
expand((x-5)*(x+9))
expand((x+2)*(x-3)*(x-5)*(x+7))
expand(sin(2*x))
expand(cos(x+y))
 
% collecting equations
collect(x^3 *(x-7))
collect(x^4*(x-3)*(x-5))

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

ans =
   x^2 + 4*x - 45
ans =
   x^4 + x^3 - 43*x^2 + 23*x + 210
ans =
   2*cos(x)*sin(x)
ans =
   cos(x)*cos(y) - sin(x)*sin(y)
ans =
   x^4 - 7*x^3
ans =
   x^6 - 8*x^5 + 15*x^4

Extension et collecte d'équations dans Octave

Vous devez avoir symbolic package, qui fournit expand et le collectpour développer et collecter une équation, respectivement. L'exemple suivant montre les concepts -

Lorsque vous travaillez avec de nombreuses fonctions symboliques, vous devez déclarer que vos variables sont symboliques mais Octave a une approche différente pour définir les variables symboliques. Notez l'utilisation deSin et Cos, qui sont également définis dans un package symbolique.

Créez un fichier de script et tapez le code suivant -

% first of all load the package, make sure its installed.
pkg load symbolic

% make symbols module available
symbols

% define symbolic variables
x = sym ('x');
y = sym ('y');
z = sym ('z');

% expanding equations
expand((x-5)*(x+9))
expand((x+2)*(x-3)*(x-5)*(x+7))
expand(Sin(2*x))
expand(Cos(x+y))
 
% collecting equations
collect(x^3 *(x-7), z)
collect(x^4*(x-3)*(x-5), z)

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

ans =

-45.0+x^2+(4.0)*x
ans =

210.0+x^4-(43.0)*x^2+x^3+(23.0)*x
ans =

sin((2.0)*x)
ans =

cos(y+x)
ans =

x^(3.0)*(-7.0+x)
ans =

(-3.0+x)*x^(4.0)*(-5.0+x)

Factorisation et simplification des expressions algébriques

le factor fonction factorise une expression et la simplifyLa fonction simplifie une expression. L'exemple suivant illustre le concept -

Exemple

Créez un fichier de script et tapez le code suivant -

syms x
syms y
factor(x^3 - y^3)
factor([x^2-y^2,x^3+y^3])
simplify((x^4-16)/(x^2-4))

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

ans =
   (x - y)*(x^2 + x*y + y^2)
ans =
   [ (x - y)*(x + y), (x + y)*(x^2 - x*y + y^2)]
ans =
   x^2 + 4