English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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
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
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
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
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.
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
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
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
expand和collectIls 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
Vous devez posséder unsymbolic软件包,该软件包分别提供expand和collect函数来扩展和收集方程式。以下示例演示了概念-
当使用许多符号函数时,应声明变量是符号变量,但是Octave定义符号变量的方法不同。注意使用Sin和Cos,它们也在符号包中定义。
创建一个脚本文件并输入以下代码-
%首先,加载包,确保它已安装。 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