MATLAB - Algèbre
Jusqu'à présent, nous avons vu que tous les exemples fonctionnent dans MATLAB ainsi que son GNU, également appelé Octave. Mais pour résoudre des équations algébriques de base, MATLAB et Octave sont peu différents, nous allons donc essayer de couvrir MATLAB et Octave dans des sections séparées.
Nous aborderons également la factorisation et la simplification des expressions algébriques.
Résoudre des équations algébriques de base dans MATLAB
La résolution La 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 renverra 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 renverra 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 renverra le résultat suivant −
ans = 5
Si l'équation implique plusieurs symboles, 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, il faut écrire −
solve('v-u-3*t^2=0', 'v')
MATLAB exécutera l'instruction ci-dessus et renverra le résultat suivant −
ans = 3*t^2 + u
Résoudre des équations algébriques de base en octave
Les racines est utilisée pour résoudre des é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
Démo en directroots([1, -5])
Octave exécutera l'instruction ci-dessus et renverra le résultat suivant −
ans = 5
Vous pouvez également appeler la fonction de résolution comme −
Démo en directy = roots([1, -5])
Octave exécutera l'instruction ci-dessus et renverra le résultat suivant −
y = 5
Résoudre des équations quadratiques dans MATLAB
La résolution fonction 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ésoudre des é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 −
Démo en directs = 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ésoudre des équations d'ordre supérieur dans MATLAB
La résolution fonction peut également résoudre des équations d'ordre supérieur. Par exemple, résolvons une équation cubique sous la forme (x-3) 2 (x-7) =0
solve('(x-3)^2*(x-7)=0')
MATLAB exécutera l'instruction ci-dessus et renverra le résultat suivant −
ans = 3 3 7
Dans le cas d'équations d'ordre supérieur, les racines sont longues et contiennent 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ésoudre des é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 −
Démo en directv = [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
Système de résolution d'équations dans MATLAB
La résolution La 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 illustrer cette utilisation.
Résolvons les équations −
5x + 9a =5
3x – 6a =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érons l'ensemble d'équations suivant −
x + 3y -2z =5
3x + 5a + 6z =7
2x + 4a + 3z =8
Système de résolution d'équations en octave
Nous avons une approche un peu différente pour résoudre un système de 'n' équations linéaires à 'n' inconnues. Prenons un exemple simple pour illustrer cette utilisation.
Résolvons les équations −
5x + 9a =5
3x – 6a =4
Un tel système d'équations linéaires peut être écrit comme l'équation matricielle unique Ax =b , où A est la matrice de 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 −
Démo en directA = [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 + 5a + 6z =7
2x + 4a + 3z =8
Développer et collecter des équations dans MATLAB
Le développer et la collecte fonction se développe et recueille une équation respectivement. L'exemple suivant illustre 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
Développer et collecter des équations en octave
Vous devez avoir symbolique package, qui fournit expand et la collecte fonction pour développer et collecter une équation, respectivement. L'exemple suivant illustre 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. Remarquez l'utilisation de Sin et Cos , qui sont également définis dans le 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 facteur la fonction factorise une expression et la fonction simplifie 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
MATLAB