Das vermeintlich Tolle an Gleichungen bzw. Gleichungssystemen ist ja, dass man sein Ergebnis am Ende mittels Probe überprüfen kann. Nervig wird es dann bloß, wenn man merkt, dass man sich bei der Probe selbst irgendwo verrechnet hat. Doch auch zum Thema Gleichungen insbesondere zu linearen Gleichungssystemen stellt dir WolframAlpha ein paar Funktionen zur Verfügung, die lästige Nachrechnerei mit Proben überflüssig machen.
Wie schon in unserem zweiten Tutorial angedeutet, kannst du deine Gleichung(en) einfach eingeben und WolframAlpha spuckt dir die Lösung(en) aus. Um etwas gezielter vorzugehen, gehen wir hier noch etwas detaillierter auf die folgenden Themen ein:
-
Gleichungen lösenOb Nullstelle, Schnittpunkt zweier Funktionen oder eine einfache Textaufgabe. Zur Lösung musst du deine Gleichung einfach einsetzen, bzw. kannst du auch solve davorschreiben:
Beispiel 1: x^3+11x^2+2x=15-x^3 bzw. solve x^3+11x^2+2x=15-x^3
Gibt es komplexe Lösungen, so werden diese natürlich gleich mit angezeigt. Wenn dich das irritiert bzw. du eh nur an reellwertigen Lösungen interessiert bist, kannst du den Befehl solve … over the reals benutzen:
Beispiel 2: solve x^3-x^2+x-1 vs. solve x^3-x^2+x-1 over the reals
Alternativ stehen dir noch die Zahlenbereiche:
positive integers für die natürlichen Zahlen- integers für die ganzen Zahlen und
- rationals für die rationalen Zahlen
zur Verfügung.
Update:Wer WolframAlpha gern nutzen möchte, um Gleichungen mit natürlichen Zahlen als Lösung zu erhalten, muss nun etwas in die Trickkiste greifen. Dabei löst man erst über die ganzen Zahlen und sagt zusätzlich, sich davon nur die positiven anzuschauen:
solve x*0.25 + y+15z = x+y+z=100,x>0,y>0,z>0 over integers
solve … over the complexes macht nicht allzu viel Sinn, da alle Lösungen ja bereits so angegeben werden (du bekommst hier also insbesondere nicht die rein komplexen (nicht reellen) Lösungen angezeigt).
solve ist aber auch dazu gut, bei Aufgaben mit Parametern festzulegen, welcher Wert Variable und welcher Parameter ist. Besonders nett ist, dass WolframAlpha auch meist die nervigen Fallunterscheidungen für dich übernimmt. Hier im Beispiel 3 muss man bei der Lösung aufpassen, was passiert, wenn a=0 ist:
Beispiel 3: solve ax^2+4x = 10 for x löst nach x auf und solve ax^2+4x = 10 for a nach a
Zu guter letzt noch eine Wiederholung aus Tutorial 2: Den Bereich aus dem wir unsere x – Werte als mögliche Lösung wählen, können wir direkt nach der Klammer angeben – das funktioniert auch mit den oben angegeben Einschränkungen der Zahlenbereiche (integers, rationals):
Beispiel 4: solve (x-2^0.5)(x+1) = 0, x>1 over the rationals
-
Gleichungssysteme lösenAlle eben vorgestellten Optionen eine Lösung zu bestimmen kann man auch auf mehrere Gleichungen mit mehreren Variablen anwenden – jede Gleichung wird einfach per Komma getrennt:
Beispiel 1: x+y =10 ,x-2y = 2 bzw. solve x+y =10 ,x-2y = 2
Das funktioniert sowohl für etwaige Einschränkungen…
Beispiel 2: x+y =10 ,x^2-2y = 2, x>0
Beispiel 3: solve x^2 =z+y ,x^2-y^2 = z over the integers
…als auch für Aufgaben mit Parametern:
Beispiel 4: solve ax^2+y = 3, y-x=a for x,y
-
Lineare GleichungssystemeDie eben beschriebenen Wege zur Handhabung von Gleichungssystemen kann natürlich vollständig auf lineare Gleichungssysteme übertragen werden. Gerade bei mehreren Variablen und Gleichungen ist die Matrizenschreibweise hier aber wohl einfacher, von daher gibt es dafür den Befehl LinearSolve mit dem man Gleichungen der Art Ax=b lösen kann. Dazu schreibt man LinearSolve [A,b]:
Beispiel 1: LinearSolve [{{1,2,3},{0,2,0},{1,0,1}},{{0},{2},{-1}}]
Falls du dich über die seltsame Schreibweise der Matrix bzw. des Vektors wunderst – alles dazu findest du im Tutorial 6 über Matrizen. Natürlich kann b auch ein Vektor mit Parametern sein:
Beispiel 2: LinearSolve [{{1,2,3},{0,2,0},{1,0,1}},{{a},{b},{1}}]
Lediglich bei Buchstaben in der Matrix selbst kommt WolframAlpha durcheinander. Um lineare Gleichungssysteme mit Parametern zu lösen musst du dann wohl doch jede Gleichung extra per Komma getrennt aufschreiben, wie im letzten Abschnitt Gleichungssysteme lösen beschrieben.
Wenn du ein homogenes Gleichungssystem hast (Ax=0), musst du nicht extra den Nullvektor für b angeben, sondern kannst den Befehl NullSpace[A] nutzen:
Beispiel 3: NullSpace[{1,0,1,2},{0,2,0,1},{1,-1,0,0}}]
Wie du an diesem Beispiel siehst, gibt dir WolframAlpha den Lösungsvektor auch mit Parameter, wenn es unendlich viele Lösungen gibt. Da es prinzipiell egal ist, welche Variable man im Ergebnis als Parameter setzt, kann es hier zu Verwirrung kommen, da es ja mehrere Lösungsschreibweisen gibt. Um zu prüfen, ob dein Resultat und das von WolframAlpha dasselbe sind kannst du Folgendes machen:
- Du scrollst im Ergebnisbereich weiter runter und vergleichst die Matrix bei Row-reduced Matrix mit der, die du am Ende des Gauß-Algorithmuses erhalten hast. Falls es dort Klärungsbedarf gibt, kannst du auch den Befehl row reduce A nutzen und die einzelnen Schritte des Gauß-Algorithmus abgleichen. Mehr zu diesem Befehl gibt’s im sechsten Tutorial.
-
Du prüfst, ob dein Lösungsvektor und der von WolframAlpha linear abhängig sind, denn dann wär alles in Ordnung. Lineare (Un-)Abhängigkeit zweier Vektoren a,b prüft man mit linear independence [a,b]:
Beispiel 4: linear independence [{-x,-x,-3x,2x},{-x/2,-x/2,-3/2*x,x}]
Die beiden Vektoren sind linear abhängig (engl. linearly dependent) und daher stellen beide Lösungsvektoren dieselbe Lösungsmenge dar.
Neben der Row-Reduced Matrix werden dir bei NullSpace noch weitere Informationen, wie Basis und Orthonormalbasis (Basis bzw. Orthonormal basis) aber auch die Dimension der Lösungsmenge (im gleichnamigen Abschnitt) angegeben.
Im Hinblick auf die Bestimmung der Lösbarkeit bzw. Anzahl der möglichen Lösungen gibt es keine extra-Funktion. Hier musst du also der Übersicht aus deiner Vorlesung folgen und auf die rank Funktion zurückgreifen, die wir ja im letzten Tutorial vorgestellt haben.