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

MATLAB - Algebra

Bisher haben wir gesehen, dass alle Beispiele sowohl in MATLAB als auch in seinem GNU, alternativ Octave genannt, funktionieren. Aber beim Lösen grundlegender algebraischer Gleichungen unterscheiden sich MATLAB und Octave nur geringfügig, daher werden wir versuchen, MATLAB und Octave in separaten Abschnitten zu behandeln.

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

Grundlegende algebraische Gleichungen in MATLAB lösen

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

Lassen Sie uns zum Beispiel in der Gleichung x-5 =0

nach x auflösen
solve('x-5=0')

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück −

ans =
   5

Sie können die Solve-Funktion auch als −

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

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück −

y =
   5

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

solve('x-5')

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück −

ans =
   5

Wenn die Gleichung mehrere Symbole enthält, geht MATLAB standardmäßig davon aus, dass Sie nach x auflösen, die Lösungsfunktion hat jedoch eine andere Form −

solve(equation, variable)

wobei Sie auch die Variable erwähnen können.

Lassen Sie uns zum Beispiel die Gleichung v – u – 3t 2 lösen =0, für v. In diesem Fall sollten wir −

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

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück −

ans =
   3*t^2 + u

Grundlegende algebraische Gleichungen in Oktave lösen

Die Wurzeln Funktion wird zum Lösen algebraischer Gleichungen in Octave verwendet und Sie können die obigen Beispiele wie folgt schreiben −

Lassen Sie uns zum Beispiel in der Gleichung x-5 =0

nach x auflösen Live-Demo
roots([1, -5])

Octave führt die obige Anweisung aus und gibt das folgende Ergebnis zurück −

ans = 5

Sie können die Solve-Funktion auch als −

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

Octave führt die obige Anweisung aus und gibt das folgende Ergebnis zurück −

y = 5

Quadratische Gleichungen in MATLAB lösen

Die Lösung Funktion kann auch Gleichungen höherer Ordnung lösen. Es wird oft verwendet, um quadratische Gleichungen zu lösen. Die Funktion gibt die Wurzeln der Gleichung in einem Array zurück.

Das folgende 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('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));

Wenn Sie die Datei ausführen, zeigt sie das folgende Ergebnis an −

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

Quadratische Gleichungen in Oktave lösen

Das folgende Beispiel löst die quadratische Gleichung x 2 -7x +12 =0 in Oktave. Erstellen Sie eine Skriptdatei und geben Sie den 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));

Wenn Sie die Datei ausführen, zeigt sie das folgende Ergebnis an −

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

Gleichungen höherer Ordnung in MATLAB lösen

Die Lösung Funktion kann auch Gleichungen höherer Ordnung lösen. Lassen Sie uns zum Beispiel eine kubische Gleichung als (x-3) 2 lösen (x-7) =0

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

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück −

ans =
   3
   3
   7

Bei Gleichungen höherer Ordnung sind die Wurzeln lang und enthalten viele Terme. Sie können den numerischen Wert solcher Wurzeln erhalten, indem Sie sie in Double umwandeln. Das folgende Beispiel löst die Gleichung vierter Ordnung x 4 − 7x 3 + 3x 2 − 5x + 9 =0.

Erstellen Sie eine Skriptdatei und geben Sie den 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));

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

Wenn Sie die Datei ausführen, gibt sie das folgende Ergebnis zurück −

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

Bitte beachten Sie, dass die letzten beiden Wurzeln komplexe Zahlen sind.

Gleichungen höherer Ordnung in Oktave lösen

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

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein −

Live-Demo
v = [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)));

Wenn Sie die Datei ausführen, gibt sie das folgende Ergebnis zurück −

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

Gleichungssystem in MATLAB lösen

Die Lösung Die Funktion kann auch verwendet werden, um Lösungen von Gleichungssystemen mit mehr als einer Variablen zu generieren. 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 den 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 das folgende Ergebnis an −

ans =
   22/19
ans =
   -5/57

Auf die gleiche Weise können Sie größere lineare Systeme lösen. Betrachten Sie den folgenden Satz von Gleichungen −

x + 3y -2z =5

3x + 5y + 6z =7

2x + 4y + 3z =8

Gleichungssystem in Oktave 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 lineares Gleichungssystem kann als Einzelmatrixgleichung Ax =b geschrieben werden, wobei A die Koeffizientenmatrix, b der Spaltenvektor ist, der die rechte Seite der linearen Gleichungen enthält, und x der Spaltenvektor ist, der die Lösung als darstellt gezeigt im untenstehenden Programm −

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein −

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

Wenn Sie die Datei ausführen, zeigt sie das folgende Ergebnis an −

ans =

   1.157895
  -0.087719

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

x + 3y -2z =5

3x + 5y + 6z =7

2x + 4y + 3z =8

Erweitern und Sammeln von Gleichungen in MATLAB

Die erweitern und das Sammeln Funktion erweitert bzw. sammelt eine Gleichung. Das folgende Beispiel demonstriert die Konzepte −

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

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein −

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

Wenn Sie die Datei ausführen, zeigt sie das folgende Ergebnis an −

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

Erweitern und Sammeln von Gleichungen in Oktave

Sie müssen symbolisch haben Paket, das expand bereitstellt und das Sammeln Funktion zum Erweitern bzw. Sammeln einer Gleichung. 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, um symbolische Variablen zu definieren. Beachten Sie die Verwendung von Sünde und Cos , die auch im symbolischen Paket definiert sind.

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein −

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

Wenn Sie die Datei ausführen, zeigt sie das folgende Ergebnis an −

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

Der Faktor Funktion faktorisiert einen Ausdruck und die vereinfachen Funktion vereinfacht einen Ausdruck. Das folgende Beispiel demonstriert das Konzept −

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den 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 das folgende Ergebnis an −

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 - Überblick
  2. MATLAB - Grundlegende Syntax
  3. MATLAB - Variablen
  4. MATLAB - Befehle
  5. MATLAB - Datentypen
  6. MATLAB - Operatoren
  7. MATLAB - Vektoren
  8. MATLAB - Matrix
  9. MATLAB - Arrays
  10. MATLAB - Doppelpunktnotation