English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MATLAB代数

Jusqu'à présent, nous avons vu que tous les exemples peuvent être exécutés dans MATLAB et GNU (connu sous le nom d'Octave). Cependant, MATLAB et Octave sont presque identiques pour résoudre des équations algébriques de base, donc nous essaierons de présenter séparément MATLAB et Octave.

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

Résoudre les équations algébriques de base dans MATLAB

solveLa fonction est utilisée pour résoudre des équations algébriques. La forme la plus simple est que la fonction solve utilise l'équation entre guillemets comme paramètre.

Par exemple, résolvons l'équation x-5 =0. Dans ce cas, nous devrions écrire

solve('x-5=0')

MATLAB exécute les instructions ci-dessus et renvoie les résultats suivants-

ans =
   5

Vous pouvez également appeler la fonction Solve comme-

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

MATLAB exécute les instructions ci-dessus et renvoie les résultats suivants-

y =
   5

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

solve('x-5')

MATLAB exécute les instructions ci-dessus et renvoie les résultats suivants-

ans =
   5

Si l'équation contient plusieurs symboles, par défaut MATLAB suppose que vous résolvez x, mais la fonction solve a une autre forme-

solve(equation, variable)

Dans ce cas, vous pouvez également mentionner les variables.

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

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

MATLAB exécute les instructions ci-dessus et renvoie les résultats suivants-

ans =
   3*^2 + u

Résoudre une équation algébrique de base en utilisant Octave

rootsLa fonction est utilisée pour résoudre des équations algébriques dans Octave. Vous pouvez écrire un exemple comme suit :

Par exemple, résolvons l'équation x-5 =0. Dans ce cas, nous devrions écrire

roots([1, -5]

Octave exécute les instructions ci-dessus et renvoie les résultats suivants-

ans = 5

Vous pouvez également appeler la fonction Solve comme-

y = roots([1, -5]

Octave exécute les instructions ci-dessus et renvoie les résultats suivants-

y = 5

Résoudre une équation quadratique en MATLAB

solveLa fonction peut également résoudre des équations de degré supérieur. Elle est généralement utilisée pour résoudre des équations quadratiques. La fonction retourne les racines de l'équation sous forme d'array.

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

eq = 'x^'2 -7*x + 12 = '0';
s = solve(eq);
disp('La première racine est :'), disp(s(1)) ;
disp('La deuxième racine est :'), disp(s(2)) ;

运行文件时,它显示以下结果-

La première racine est : 
   3
La deuxième racine est : 
   4

Résoudre une équation quadratique en utilisant Octave

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

s = roots([1, -7, 12]);
disp('La première racine est :'), disp(s(1)) ;
disp('La deuxième racine est :'), disp(s(2)) ;

运行文件时,它显示以下结果-

La première racine est : 
   4
La deuxième racine est : 
   3

Résoudre des équations de degré supérieur en MATLAB

solveLa fonction peut également résoudre des équations de degré supérieur. Par exemple, résolvons un polynôme cubique de la forme (x-3)2(x-7)= 0

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

MATLAB exécute les instructions ci-dessus et renvoie les résultats suivants-

ans =
   3
   3
   7

Pour les équations de degré supérieur, la longueur des racines contient de nombreux termes. Vous pouvez obtenir la valeur numérique de ces racines en les convertissant en double. Voici un exemple qui résout l'équation quadratique x 4 − 7x 3 + 3x 2 − 5x + 9 = 0。

创建一个脚本文件并输入以下代码-

eq = 'x^'4 - 7*x^3 + 3*x^2 - 5*x + 9 = '0';
s = solve(eq);
disp('La première racine est :'), disp(s(1)) ;
disp('La deuxième racine est :'), disp(s(2)) ;
disp('La troisième racine est :'), disp(s(3)) ;
disp('Le quatrième racine est :'), disp(s(4)) ;
% Convertir les racines en type double
disp('Valeur numérique de la première racine'), disp(double(s(1));
disp('Valeur numérique de la deuxième racine'), disp(double(s(2));
disp('Valeur numérique de la troisième racine'), disp(double(s(3));
disp('Valeur numérique de la quatrième racine'), disp(double(s(4));

Lorsque le fichier est exécuté, il retourne les résultats suivants-

La première racine est : 
6.630396332390718431485053218985
 La deuxième racine est : 
1.0597804633025896291682772499885
 La troisième racine est : 
- 0.34508839784665403032666523448675 - 1.0778362954630176596831109269793*i
 Le quatrième racine est : 
- 0.34508839784665403032666523448675 + 1.0778362954630176596831109269793*i
Valeur numérique de la première racine
   6.6304
Valeur numérique de la deuxième racine
   1.0598
Valeur numérique de la troisième racine
   -0.3451 - 1.0778i
Valeur numérique de la quatrième racine
   -0.3451 + 1.0778i

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

Résolution des équations de degré élevé en Octave

Le following exemple résout l'équation quadratique x 4 − 7x 3 + 3x 2 − 5x + 9 = 0。

创建一个脚本文件并输入以下代码-

v = [1, -7,  3, -5, 9];
s = roots(v);
% Convertir les racines en type double
disp('Valeur numérique de la première racine'), disp(double(s(1));
disp('Valeur numérique de la deuxième racine'), disp(double(s(2));
disp('Valeur numérique de la troisième racine'), disp(double(s(3));
disp('Valeur numérique de la quatrième racine'), disp(double(s(4));

Lorsque le fichier est exécuté, il retourne les résultats suivants-

Valeur numérique de la première racine
 6.6304
Valeur numérique de la deuxième racine
-0.34509 + 1.07784i
Valeur numérique de la troisième racine
-0.34509 - 1.07784i
Valeur numérique de la quatrième racine
 1.0598

Résolution des systèmes d'équations en MATLAB

solveLa fonction peut également être utilisée pour générer des solutions pour des systèmes d'équations impliquant plusieurs variables. Laissons prendre un exemple simple pour illustrer cette utilisation.

Laissons résoudre l'équation-

5x + 9y = 5

3x - 6y = 4

创建一个脚本文件并输入以下代码-

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

运行文件时,它显示以下结果-

ans =
   22/19
ans =
   -5/57

De même, vous pouvez résoudre des systèmes linéaires plus grands. Considérons le following ensemble d'équations-

x + 3y -2z = 5

3x + 5y + 6z = 7

2x + 4y + 3z = 8

Résolution des systèmes d'équations d'Octave

Nous avons plusieurs méthodes différentes pour résoudre un système d'équations linéaires avec n inconnues. Laissons prendre un exemple simple pour illustrer cette utilisation.

Laissons résoudre l'équation-

5x + 9y = 5

3x - 6y = 4

Un tel système d'équations linéaires peut être écrit sous forme d'équation matricielle unique Ax = b, où A est la matrice des coefficients, b est la colonne vectorielle contenant le côté droit des équations linéaires, x est la colonne vectorielle représentant la solution, comme suit : dans le following programme affiché-

创建一个脚本文件并输入以下代码-

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

运行文件时,它显示以下结果-

ans =
   1.157895
  -0.087719

De même, vous pouvez résoudre des systèmes linéaires plus grands, comme suit-

x + 3y -2z = 5

3x + 5y + 6z = 7

2x + 4y + 3z = 8

Développement et collecte des équations en MATLAB

expandcollectIls sont utilisés respectivement pour développer et collecter une équation. Le following exemple illustre le concept-

Lorsque vous utilisez de nombreux fonctions symboliques, vous devez déclarer que les variables sont symboliques.

创建一个脚本文件并输入以下代码-

syms x          % Variable symboles x
syms y          % Variable symboles y
%扩展方程
expand((x-5)*(x+9))
expand((x+2)*(x-3)*(x-5)*(x+7))
expand(sin(2*x))
expand(cos(x+y))
 
%收集方程式
collect(x^3 *(x-7))
collect(x^4*(x-3)*(x-5))

运行文件时,它显示以下结果-

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éveloppement en fréquence et l'équation de collecte

Vous devez posséder unsymbolic软件包,该软件包分别提供expandcollect函数来扩展和收集方程式。以下示例演示了概念-

当使用许多符号函数时,应声明变量是符号变量,但是Octave定义符号变量的方法不同。注意使用SinCos,它们也在符号包中定义。

创建一个脚本文件并输入以下代码-

%首先,加载包,确保它已安装。
pkg load symbolic
%使symbols模块可用
symbols
%定义符号变量
x = sym ('x');
y = sym ('y');
z = sym ('z');
%扩展方程
expand((x-5)*(x+9))
expand((x+2)*(x-3)*(x-5)*(x+7))
expand(Sin(2*x))
expand(Cos(x+y))
 
%收集方程式
collect(x^3 *(x-7), z)
collect(x^4*(x-3)*(x-5), z)

运行文件时,它显示以下结果-

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)

代数表达式的因式分解和简化

factor函数分解一个表达式,simplify函数简化一个表达式。以下示例演示了概念-

实例

创建一个脚本文件并输入以下代码-

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))

运行文件时,它显示以下结果-

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