Lösung einer Gleichung in Matlab
Ich möchte Ihnen erklären, wie man in Matlab eine Gleichung löst. Das ist eigentlich gar nicht so kompliziert, also legen wir los.
Um eine Gleichung in Matlab zu lösen, gibt es zwei Ansätze. Der erste verwendet Polynomfunktionen, während der zweite auf symbolische Berechnungen basiert.
Die Funktion roots()
Beginnen wir mit der Funktion roots(). Sie ermöglicht es, die Nullstellen eines Polynoms zu bestimmen.
roots(P)
Hierzu geben Sie einfach die numerischen Koeffizienten der Gleichung als Parameter P an.
Was sind nun Wurzeln? Es handelt sich um die Werte der Variablen x, die die x-Achse schneiden und die Gleichung zu Null werden lassen.
Ich gebe Ihnen ein praktisches Beispiel:
Angenommen, wir haben eine einfache quadratische Gleichung mit einer Unbekannten:
$$ x^2 + 3x = 4 $$
Um sie zu lösen, bringen wir die Gleichung zuerst in die Standardform:
$$ x^2 + 3x -4 = 0 $$
Die numerischen Koeffizienten von x, 1, 3 und -4, tragen wir in einem Array in absteigender Reihenfolge des Grades ein: [1 3 -4].
>> P = [1 3 -4];
Beachten Sie, dass Sie eine Null einfügen sollten, wenn ein Koeffizient fehlt.
Um die Lösungen zu finden, verwenden wir einfach die roots() Funktion:
>> roots(P)
Diese gibt uns die Nullstellen der Gleichung, die in diesem Fall -4 und 1 sind.
ans =
-4
1
Um die Lösungen zu überprüfen, können wir die polyval() Funktion nutzen.
>> polyval(P,roots(P))
ans =
0
0
Wenn wir polyval([1 3 -4], roots([1 3 -4])) eingeben, erhalten wir [0 0], was bedeutet, dass beide x-Werte die Gleichung erfüllen.
Überprüfung: Überprüfen Sie die erste Lösung. Setzen Sie x=-4 in die Gleichung ein. $$ x^2 + 3x -4 = 0 $$ $$ (-4)^2 + 3 \cdot (-4) -4 = 0 $$ $$ 16 -12 -4 = 0 $$ $$ 0 = 0 $$ Überprüfen Sie nun die zweite Lösung. Setzen Sie x=1 in die Gleichung ein. $$ x^2 + 3x -4 = 0 $$ $$ (1)^2 + 3 \cdot 1 -4 = 0 $$ $$ 1 + 3 -4 = 0 $$ $$ 0 = 0 $$ Beide Werte sind Lösungen der Gleichung.
Was geschieht, wenn die Gleichung keine reellen Lösungen hat?
In diesem Fall liefert die Funktion roots() komplexe Lösungen der Gleichung.
Zum Beispiel, bei einer Gleichung vierten Grades x4+3x2-2x+1=0
$$ x^4 + 3x^2 - 2x +1 = 0 $$
Mit roots([1 0 3 -2 1]) finden wir die Lösungen, die sich als komplexe Zahlen herausstellen.
>> roots ([1 0 3 -2 1])
Keine Sorge, die Funktion roots() findet auch hier die korrekten Lösungen, selbst wenn es sich um keine reellen Zahlen handelt.
ans =
-0.34975 + 1.74698i
-0.34975 - 1.74698i
0.34975 + 0.43899i
0.34975 - 0.43899i
Die Funktion solve()
In Matlab gibt es die nützliche Funktion "solve()", die das Lösen symbolischer Gleichungen ermöglicht.
solve(eqz)
Sie ist äußerst hilfreich. Geben Sie einfach die zu lösende symbolische Gleichung als Parameter in die Funktion solve() ein.
Zum Lösen der Gleichung nutzen Sie die symbolische Berechnung. Dabei definieren Sie die Unbekannten des Problems als Symbole, legen die symbolische Gleichung fest und ermitteln dann die Lösungen mit der solve() Funktion.
Lassen Sie uns das an einem Beispiel veranschaulichen:
Nehmen wir an, wir haben eine quadratische Gleichung mit einer Unbekannten:
$$ x^2 + 3x = 4 $$
Um diese Gleichung mit der Funktion solve() zu lösen, bringen wir sie zuerst in die Standardform:
$$ x^2 + 3x - 4 = 0 $$
Dann definieren wir die Unbekannte als symbolische Variable mit der Funktion "syms".
>> syms x
Als nächstes legen wir die symbolische Gleichung fest und weisen sie der Variable "eqz" zu.
>> eqz = x^2+3*x-4
Zum Schluss nutzen wir die solve() Funktion, um die Lösungen zu finden.
>> solve(eqz)
Voilà! Die Funktion solve() findet die Lösungen der Gleichung, die in diesem Fall x1=-4 und x2=1 sind.
ans=
-4
1
Es sei darauf hingewiesen, dass sich die solve() Funktion und symbolische Berechnung auch zur Lösung von Gleichungen mit zwei oder mehr Unbekannten eignet.
Somit ist sie ein mächtiges Werkzeug zur Lösung beliebiger Gleichungen in Matlab.