Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> MATLAB

Algebraische Gleichungen in MATLAB meistern: Lösen, Vereinfachen & Faktorisieren

Hinweis: Bisher haben wir gesehen, dass alle Beispiele sowohl in MATLAB als auch in seiner GNU-Alternative Octave funktionieren. Für das Lösen grundlegender algebraischer Gleichungen unterscheiden sich MATLAB und Octave jedoch leicht, daher behandeln wir sie in separaten Abschnitten.

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

Grundlegende algebraische Gleichungen in MATLAB lösen

Die Funktion solve wird zum Lösen algebraischer Gleichungen verwendet. In ihrer einfachsten Form nimmt die solve-Funktion die Gleichung in Anführungszeichen als Argument entgegen.

Beispiel: Lösen wir nach x in der Gleichung x-5 = 0 auf.

 solve('x-5=0') 

MATLAB führt die Anweisung aus und gibt folgendes Ergebnis zurück:

 ans = 5 

Sie können die solve-Funktion auch so aufrufen:

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

MATLAB führt die Anweisung aus und gibt folgendes Ergebnis zurück:

 y = 5 

Sie können sogar die rechte Seite der Gleichung weglassen:

 solve('x-5') 

MATLAB führt die Anweisung aus und gibt folgendes Ergebnis zurück:

 ans = 5 

Wenn die Gleichung mehrere Symbole enthält, geht MATLAB standardmäßig davon aus, dass Sie nach x lösen. Die solve-Funktion hat jedoch eine weitere Form:

 solve(equation, variable) 

wobei Sie auch die Variable angeben können.

Beispiel: Lösen wir die Gleichung v – u – 3t2 = 0 nach v auf. In diesem Fall sollten wir schreiben:

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

MATLAB führt die Anweisung aus und gibt folgendes Ergebnis zurück:

 ans = 3*t^2 + u 

Grundlegende algebraische Gleichungen in Octave lösen

Die Funktion roots wird in Octave zum Lösen algebraischer Gleichungen verwendet. Sie können die obigen Beispiele wie folgt schreiben:

Beispiel: Lösen wir nach x in der Gleichung x-5 = 0 auf.

Live Demo
 roots([1, -5]) 

Octave führt die Anweisung aus und gibt folgendes Ergebnis zurück:

 ans = 5 

Sie können die solve-Funktion auch so aufrufen:

Live Demo
 y = roots([1, -5]) 

Octave führt die Anweisung aus und gibt folgendes Ergebnis zurück:

 y = 5 

Quadratische Gleichungen in MATLAB lösen

Die Funktion solve kann auch Gleichungen höherer Ordnung lösen. Sie wird häufig zum Lösen quadratischer Gleichungen verwendet. Die Funktion gibt die Nullstellen der Gleichung in einem Array zurück.

Das folgende Beispiel löst die quadratische Gleichung x2 -7x +12 = 0. Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein:

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

Beim Ausführen der Datei wird folgendes Ergebnis angezeigt:

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

Quadratische Gleichungen in Octave lösen

Das folgende Beispiel löst die quadratische Gleichung x2 -7x +12 = 0 in Octave. Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein:

Live Demo
 s = roots([1, -7, 12]); disp('The first root is: '), disp(s(1)); disp('The second root is: '), disp(s(2)); 

Beim Ausführen der Datei wird folgendes Ergebnis angezeigt:

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

Gleichungen höherer Ordnung in MATLAB lösen

Die Funktion solve kann auch Gleichungen höherer Ordnung lösen. Beispiel: Lösen wir eine kubische Gleichung als (x-3)2(x-7) = 0.

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

MATLAB führt die Anweisung aus und gibt folgendes Ergebnis zurück:

 ans = 3 3 7 

Bei Gleichungen höherer Ordnung sind die Nullstellen lang und enthalten viele Terme. Sie können den numerischen Wert solcher Nullstellen erhalten, indem Sie sie in double konvertieren. Das folgende Beispiel löst die quartische Gleichung x4 − 7x3 + 3x2 − 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('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)); % Konvertierung der Nullstellen in double-Typ 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))); 

Beim Ausführen der Datei wird folgendes Ergebnis zurückgegeben:

 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 

Beachten Sie, dass die letzten beiden Nullstellen komplexe Zahlen sind.

Gleichungen höherer Ordnung in Octave lösen

Das folgende Beispiel löst die quartische Gleichung x4 − 7x3 + 3x2 − 5x + 9 = 0.

Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein:

Live Demo
 v = [1, -7, 3, -5, 9]; s = roots(v); % Konvertierung der Nullstellen in double-Typ 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))); 

Beim Ausführen der Datei wird folgendes Ergebnis zurückgegeben:

 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 

Gleichungssysteme in MATLAB lösen

Die Funktion solve kann auch verwendet werden, um Lösungen von Gleichungssystemen mit mehr als einer Variablen zu erzeugen. Nehmen wir ein einfaches Beispiel, um diese Verwendung zu demonstrieren.

Lösen wir die Gleichungen:

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 

Beim Ausführen der Datei wird folgendes Ergebnis angezeigt:

 ans = 22/19 ans = -5/57 

Auf die gleiche Weise 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

Gleichungssysteme in Octave lösen

Wir haben einen etwas anderen Ansatz, um ein System von 'n' linearen Gleichungen in 'n' Unbekannten zu lösen. Nehmen wir ein einfaches Beispiel, um diese Verwendung zu demonstrieren.

Lösen wir die Gleichungen:

5x + 9y = 5

3x – 6y = 4

Ein solches System linearer Gleichungen kann als einzelne Matrixgleichung Ax = b geschrieben werden, wobei A die Koeffizientenmatrix ist, b der Spaltenvektor, der die rechte Seite der linearen Gleichungen enthält, und x der Spaltenvektor, der die Lösung darstellt, wie im folgenden Programm gezeigt:

Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein:

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

Beim Ausführen der Datei wird folgendes Ergebnis angezeigt:

 ans = 1.157895 -0.087719 

Auf die gleiche Weise können Sie größere lineare Systeme lösen wie unten angegeben:

x + 3y -2z = 5

3x + 5y + 6z = 7

2x + 4y + 3z = 8

Gleichungen in MATLAB erweitern und sammeln

Die Funktionen expand und collect erweitern bzw. sammeln eine Gleichung. Das folgende Beispiel demonstriert die Konzepte:

Wenn Sie mit vielen symbolischen Funktionen arbeiten, sollten Sie deklarieren, dass Ihre Variablen symbolisch sind.

Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein:

 syms x %symbolische Variable x syms y %symbolische Variable x % Gleichungen erweitern expand((x-5)*(x+9)) expand((x+2)*(x-3)*(x-5)*(x+7)) expand(sin(2*x)) expand(cos(x+y)) % Gleichungen sammeln collect(x^3 *(x-7)) collect(x^4*(x-3)*(x-5)) 

Beim Ausführen der Datei wird folgendes Ergebnis angezeigt:

 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 

Gleichungen in Octave erweitern und sammeln

Sie benötigen das symbolic-Paket, das die Funktionen expand und collect zum Erweitern und Sammeln einer Gleichung bereitstellt. Das folgende Beispiel demonstriert die Konzepte:

Wenn Sie mit vielen symbolischen Funktionen arbeiten, sollten Sie deklarieren, dass Ihre Variablen symbolisch sind, aber Octave hat einen anderen Ansatz zur Definition symbolischer Variablen. Beachten Sie die Verwendung von Sin und Cos, die ebenfalls im symbolic-Paket definiert sind.

Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein:

 % Zuerst Paket laden, stellen Sie sicher, dass es installiert ist. pkg load symbolic % symbols-Modul verfügbar machen symbols % symbolische Variablen definieren x = sym ('x'); y = sym ('y'); z = sym ('z'); % Gleichungen erweitern expand((x-5)*(x+9)) expand((x+2)*(x-3)*(x-5)*(x+7)) expand(Sin(2*x)) expand(Cos(x+y)) % Gleichungen sammeln collect(x^3 *(x-7), z) collect(x^4*(x-3)*(x-5), z) 

Beim Ausführen der Datei wird folgendes Ergebnis angezeigt:

 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) 

Faktorisierung und Vereinfachung algebraischer Ausdrücke

Die Funktion factor faktorisiert einen Ausdruck und die Funktion simplify vereinfacht einen Ausdruck. Das folgende Beispiel demonstriert 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)) 

Beim Ausführen der Datei wird folgendes Ergebnis angezeigt:

 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

  1. MATLAB: Umfassender Überblick über die führende numerische Computing-Umgebung
  2. MATLAB Grundlagen: Wesentliche Syntax & Befehle meistern
  3. Variablen in MATLAB verstehen: Grundlagen & Beispiele
  4. Wichtige MATLAB-Befehle für effizientes Computing
  5. MATLAB Datentypen: Umfassender Leitfaden
  6. MATLAB Operatoren meistern: Arithmetik, Logik, Bitweise Operationen
  7. MATLAB Vektoren meistern: Zeilen- und Spaltenvektoren Grundlagen
  8. MATLAB Matrizen Grundlagen: Erstellen, Referenzieren, Manipulieren
  9. MATLAB: Mehrdimensionale und spezielle Arrays meistern
  10. MATLAB-Colon-Notation meistern: Vektoren erstellen & effizient iterieren