English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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
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
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
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
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.
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
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
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
expand和collectSie 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
Sie müssen einen habensymbolicPakete, die entsprechend bietenexpand和collectFunktion, 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 VerwendungSin和Cos,它们也在符号包中定义。
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)
factorFunktion Zerlegt einen AusdrucksimplifyFunktion Simpliziert einen Ausdruck. Der folgende Beispiel zeigt das Konzept-
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