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

MATLAB-Algebra

Bislang haben wir gesehen, dass alle Beispiele in MATLAB und GNU (auch als Octave bekannt) ausgeführt werden können. Allerdings gibt es zwischen MATLAB und Octave kaum Unterschiede bei der Lösung grundlegender algebraischer Gleichungen, daher werden wir versuchen, MATLAB und Octave in einem separaten Abschnitt zu behandeln.

Wir werden auch die Zerlegung und Vereinfachung algebraischer Ausdrücke besprechen.

Lösen von grundlegenden algebraischen Gleichungen in MATLAB

solveDie Funktion wird verwendet, um algebraische Gleichungen zu lösen. Die einfachste Form ist, dass die solve-Funktion den mit Anführungszeichen eingeschlossenen Ausdruck als Parameter verwendet.

zum Beispiel lösen wir die Gleichung x-5 = '0'

solve('x-5= '0'

MATLAB führt die obigen Anweisungen aus und gibt das folgende Ergebnis zurück-

ans =
   5

Sie können auch die Solve-Funktion aufrufen-

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

MATLAB führt die obigen Anweisungen aus und gibt das folgende Ergebnis zurück-

y =
   5

Sie müssen möglicherweise auch die rechte Seite der Gleichung nicht angeben-

solve('x-5)

MATLAB führt die obigen Anweisungen aus und gibt das folgende Ergebnis zurück-

ans =
   5

Wenn die Gleichung mehrere Symbole enthält, nimmt MATLAB standardmäßig an, dass Sie x lösen, aber die solve-Funktion hat eine andere Form-

solve(equation, variable)

Hier können Sie auch Variablen erwähnen.

zum Beispiel lösen wir die Gleichung v – u – 3t 2 = '0'. In diesem Fall sollten wir schreiben-

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

MATLAB führt die obigen Anweisungen aus und gibt das folgende Ergebnis zurück-

ans =
   3*^2 + u

Die algebraische Gleichung wird mit Octave gelöst

rootsDie Funktion wird verwendet, um algebraische Gleichungen in Octave zu lösen. Sie können wie folgt ein Beispiel schreiben:

zum Beispiel lösen wir die Gleichung x-5 = '0'

roots([1, -5])

Octave führt die obigen Anweisungen aus und gibt das folgende Ergebnis zurück-

ans = 5

Sie können auch die Solve-Funktion aufrufen-

y = roots([1, -5])

Octave führt die obigen Anweisungen aus und gibt das folgende Ergebnis zurück-

y = 5

Die Lösung quadratischer Gleichungen in MATLAB

solveDie Funktion kann auch höhere Ordnungsgleichungen lösen. Sie wird normalerweise zur Lösung quadratischer Gleichungen verwendet. Die Funktion gibt die Wurzeln der Gleichung in Form eines Arrays zurück

Ein Beispiel löst die quadratische Gleichung x 2 -7x +12 = '0'. Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein-

eq = 'x^'2 -7*x + 12 = '0';
s = solve(eq);
disp('Die erste Wurzel ist:'), disp(s('1));
disp('Die zweite Wurzel ist:'), disp(s('2));

Wenn Sie die Datei ausführen, zeigt sie folgende Ergebnisse-

Die erste Wurzel ist: 
   3
Die zweite Wurzel ist: 
   4

Die quadratische Gleichung wird mit Octave gelöst

Ein Beispiel löst die quadratische Gleichung x 2 -7x +12 = '0'. Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein-

s = roots([1, -7, 12]);
disp('Die erste Wurzel ist:'), disp(s('1));
disp('Die zweite Wurzel ist:'), disp(s('2));

Wenn Sie die Datei ausführen, zeigt sie folgende Ergebnisse-

Die erste Wurzel ist: 
   4
Die zweite Wurzel ist: 
   3

Die Lösung höherer Ordnungsgleichungen in MATLAB

solveDie Funktion kann auch höhere Ordnungsgleichungen lösen. Zum Beispiel lassen wir eine dreifache Ordnungsgleichung für (x-3)2(x-7)= 0

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

MATLAB führt die obigen Anweisungen aus und gibt das folgende Ergebnis zurück-

ans =
   3
   3
   7

Für höhere Ordnungsgleichungen enthält die Länge der Wurzeln viele Terme. Sie können dieartige Wurzeln in double umwandeln, um ihre numerischen Werte zu erhalten. Ein Beispiel löst die vierte Ordnungsgleichung x 4 − 7x 3 + 3x 2 − 5x + 9 = 0.

Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein-

eq = 'x^'4 - 7*x^3 + 3*x^2 - 5*x + 9 = '0';
s = solve(eq);
disp('Die erste Wurzel ist:'), disp(s('1));
disp('Die zweite Wurzel ist:'), disp(s('2));
disp('Die dritte Wurzel ist:'), disp(s('3));
4));
% Die Wurzeln werden in den double-Typ konvertiert
disp('Numerischer Wert des ersten Wurzes'), disp(double(s(1));
disp('Numerischer Wert des zweiten Wurzes'), disp(double(s(2));
disp('Numerischer Wert des dritten Wurzes'), disp(double(s(3));
disp('Numerischer Wert des vierten Wurzes'), disp(double(s(4));

Beim Ausführen der Datei wird das folgende Ergebnis zurückgegeben-

Die erste Wurzel ist: 
6.630396332390718431485053218985
 Die zweite Wurzel ist: 
1.0597804633025896291682772499885
 Die dritte Wurzel ist: 
- 0.34508839784665403032666523448675 - 1.0778362954630176596831109269793*i
 Der vierte Wurzel ist: 
- 0.34508839784665403032666523448675 + 1.0778362954630176596831109269793*i
Numerischer Wert des ersten Wurzes
   6.6304
Numerischer Wert des zweiten Wurzes
   1.0598
Numerischer Wert des dritten Wurzes
   -0.3451 - 1.0778i
Numerischer Wert des vierten Wurzes
   -0.3451 + 1.0778i

Bitte beachten Sie, dass die letzten beiden Wurzeln komplex sind.

Die Lösung von höheren Ordnung Gleichungen in Octave

Das folgende Beispiel löst die vierte Ordnung Gleichung x 4 − 7x 3 + 3x 2 − 5x + 9 = 0.

Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein-

v = [1, -7,  3, -5, 9];
s = roots(v);
% Die Wurzeln werden in den double-Typ konvertiert
disp('Numerischer Wert des ersten Wurzes'), disp(double(s(1));
disp('Numerischer Wert des zweiten Wurzes'), disp(double(s(2));
disp('Numerischer Wert des dritten Wurzes'), disp(double(s(3));
disp('Numerischer Wert des vierten Wurzes'), disp(double(s(4));

Beim Ausführen der Datei wird das folgende Ergebnis zurückgegeben-

Numerischer Wert des ersten Wurzes
 6.6304
Numerischer Wert des zweiten Wurzes
-0.34509 + 1.07784i
Numerischer Wert des dritten Wurzes
-0.34509 - 1.07784i
Numerischer Wert des vierten Wurzes
 1.0598

Die Lösung von Gleichungssystemen in MATLAB

solveDie Funktion kann auch zur Generierung von Lösungen für Gleichungssysteme mit mehreren Variablen verwendet werden. Lassen Sie uns ein einfaches Beispiel zur Demonstration dieser Verwendung nennen.

Lassen Sie uns die Gleichung lösen-

5x + 9y = 5

3x – 6y = 4

Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein-

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

Wenn Sie die Datei ausführen, zeigt sie folgende Ergebnisse-

ans =
   22/19
ans =
   -5/57

Gleichzeitig können Sie größere lineare Systeme lösen. Betrachten Sie das folgende Gleichungssystem-

x + 3y -2z = 5

3x + 5y + 6z = 7

2x + 4y + 3z = 8

Lösung von Octave-Gleichungssystemen

Es gibt verschiedene Methoden, um lineare Gleichungssysteme mit n unbekannten zu lösen. Lassen Sie uns ein einfaches Beispiel zur Demonstration dieser Verwendung nennen.

Lassen Sie uns die Gleichung lösen-

5x + 9y = 5

3x – 6y = 4

Solche linearen Gleichungssysteme können in eine einzelne Matrixgleichung Ax = b geschrieben werden, wobei A die Koeffizientenmatrix ist, b die Spaltenvektor enthält, der die rechte Seite der linearen Gleichung darstellt, und x der Spaltenvektor der Lösungen ist, wie folgt gezeigt: Im folgenden Programm wird gezeigt-

Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein-

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

Wenn Sie die Datei ausführen, zeigt sie folgende Ergebnisse-

ans =
   1.157895
  -0.087719

Gleichzeitig können Sie größere lineare Systeme lösen, wie folgt-

x + 3y -2z = 5

3x + 5y + 6z = 7

2x + 4y + 3z = 8

Die Entwicklung und Sammlung von Gleichungen in MATLAB

expandcollectSie werden verwendet, um eine Gleichung zu entwickeln und zu sammeln. Der folgende Beispiel zeigt das Konzept-

Wenn viele symbolische Funktionen verwendet werden, sollten die Variablen als symbolisch deklariert werden.

Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein-

syms x % Symbolische Variable x
syms y % Symbolische Variable y
%Expand Equation
expand((x-5)*(x+9))
expand((x+2)*(x-3)*(x-5)*(x+7))
expand(sin(2*x))
expand(cos(x+y))
 
%Collect Equation
collect(x^3 *(x-7))
collect(x^4*(x-3)*(x-5))

Wenn Sie die Datei ausführen, zeigt sie folgende Ergebnisse-

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

Die Entwicklung und Sammlung der Gleichungen im Oktavbereich

Sie müssen einen habensymbolicPakete, die entsprechend bietenexpandcollectFunktion, um Gleichungen zu erweitern und zu sammeln. Der folgende Beispiel zeigt das Konzept-

Wenn Sie viele symbolische Funktionen verwenden, sollten Sie angeben, dass die Variablen symbolische Variablen sind, aber Octave definiert symbolische Variablen auf eine andere Weise. Beachten Sie die VerwendungSinCos,它们也在符号包中定义。

Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein-

%First, load the package, make sure it is installed.
pkg load symbolic
%Make symbols module available
symbols
%Define Symbolic Variables
x = sym ('x');
y = sym ('y');
z = sym ('z');
%Expand Equation
expand((x-5)*(x+9))
expand((x+2)*(x-3)*(x-5)*(x+7))
expand(Sin(2*x))
expand(Cos(x+y))
 
%Collect Equation
collect(x^3 *(x-7), z)
collect(x^4*(x-3)*(x-5), z)

Wenn Sie die Datei ausführen, zeigt sie folgende Ergebnisse-

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)

Algebraische Ausdrucksfaktorisierung und Vereinfachung

factorFunktion Zerlegt einen AusdrucksimplifyFunktion Simpliziert einen Ausdruck. Der folgende Beispiel zeigt das Konzept-

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein-

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

Wenn Sie die Datei ausführen, zeigt sie folgende Ergebnisse-

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