MuPAD Education Group: Kostenlose Materialen für MuPAD Pro:
www.sciface.com/education, schule.mupad.de, studium.mupad.de, mupad.zum.de.

________________________________________________________________________________

 

Inhalt....: Berechnung von Nullstellen und Schnittpunkten mit der y-Achse

Kategorie.: Grundkurs

Mathematik: Analysis

MuPAD.....: 3.1.0

Datum.....: 2005-04-04

Autoren...: Kai Gehrs <acrowley@mupad.de>

Funktionen: solve, numeric::solve, delete, DIGITS, Simplify, AllRealRoots

Funktionen: NoWarning

________________________________________________________________________________

 

Berechnung von Nullstellen und Schnittpunkten

mit der y-Achse

 

Dieses Arbeitsblatt ist Bestandteil des MuPAD Grundkurses.

 

In einer jeden klassischen Funktionsdiskussion müssen die Schnittpunkte der

zu untersuchenden Funktion mit den Koordinatenachsen bestimmt werden. Da

insbesondere die Berechnung von Nullstellen komplizierterer Funktionen oft

auf schwer zu lösende Gleichungen führt, ist es sinnvoll, gerade in diesem

Bereich ein Computeralgebra System zur Hilfe zu nehmen. Wir werden im

folgenden zwei Möglichkeiten kennenlernen, wie man die Nullstellen einer

Funktion bestimmen kann: Die erste Möglichkeit ist die exakte Berechnung

von Nullstellen mit Hilfe der MuPAD Funktion "solve" (sofern möglich), die

zweite Möglichkeit die näherungsweise (d.h. numerische) Berechnung von

Nullstellen mit Hilfe der Funktion "numeric::solve", falls keine exakte Lösung

gefunden werden kann.

 

Exakte Berechnung von Nullstellen

 

Haben wir eine Funktion f in einer Variablen, sagen wir in x, gegeben und

möchten wir ihre exakten Nullstellen mit MuPAD berechnen, so verwenden

wir die MuPAD Funktion "solve". Diese Funktion erhält stets zwei Argumente:

Das erste Argument ist eine Gleichung der Form "Funktion = 0", das zweite

Argument die Funktionsvariable (in unserem Fall also x).

Haben wir den Funktionsterm zuvor an die Variable f zugewiesen (so wie wir

es im Abschnitt über die Definition von Funktionen in MuPAD gelernt haben)

und ist die Funktionsvariable der Funktion f durch x gegeben, so berechnet

also ein Aufruf der Form "solve(f(x) = 0, x)" die Nullstellen der Funktion f.

 

Wir betrachten einige Beispiele:

 

f:= x -> (x^2 + 2*x + 1) / (x - 2)

math

Diese gebrochen-rationale Funktion ist uns bereits in den letzten beiden Ab-

schnitten begegnet. Ihre Nullstellen erhalten wir also wie folgt:

 

solve(f(x) = 0, x)

math

Wir betrachten noch einige weitere Beispiele:

 

g:= x -> x * exp(x)

math

solve(g(x) = 0, x)

math

h:= x -> x^3 - 6*x^2 + 11*x - 6

math

L:= solve(h(x) = 0, x)

math

Hinweis: Auf die Elemente einer Lösungsmenge L können Sie mit der Syntax

L[i] auf das i-te Element der Lösung zugreifen. Beispiel:

 

L[1];

h(L[1])

math

math

Zur Übung könnte man an dieser Stelle die Ergebnisse kontrollieren, indem man

die berechneten Werte in den entsprechenden Funktionsterm einsetzt und die

entsprechenden y-Koordinaten, die ja alle Null sein sollten, berechnet. Wir ver-

zichten an dieser Stelle darauf und verweisen auf den Abschnitt über die Berech-

nung von Funktionswerten.

 

Die Funktionen, deren Nullstellen wir bisher bestimmt haben, waren alle recht

einfache Funktionen und hatten nur eine endliche Anzahl von Nullstellen. Dass wir

mit MuPAD auch die Nullstellen periodischer Funktionen wie z.B. der Funktion

sin(2 * x) berechnen können, zeigt das folgende Beispiel:

 

k:= x -> sin(2 * x)

math

solve(k(x) = 0, x)

math

Die Menge der Nullstellen der Funktion sin(2 * x) ist nicht endlich: Sie lassen sich

jedoch in Abhängigkeit von 1/2 * PI parametrisieren. Genau dies hat MuPAD getan.

Alle ganzzahligen Vielfachen von 1/2 * PI sind Nullstellen der Funktion sin(2 * x).

 

Als letztes Beispiel betrachten wir eine Funktion, bei der wir, wie wir sehen werden,

die Nullstellen nicht mit Hilfe von "solve" bestimmen können:

 

l:= x -> -2^x + 25*x^3 + 1

math

solve(l(x) = 0, x)

math

Hier hat "solve" die Nullstellen nicht berechnen können und teilt uns dies mit, indem

als Rückgabewert genau das erscheint, was wir eingegeben hatten. Vom mathema-

tischen Standpunkt aus gesehen ist dieses Ergebnis keinesfalls verwunderlich -

Exponentialgleichungen sind gerade dann, wenn sie zusätzlich noch polynomielle

Terme (wie hier 25*x^3) enthalten, in der Regel exakt überhaupt nicht lösbar. Zur

Lösung der Gleichung sind Näherungsverfahren nötig (z.B. das Newtonverfahren,

Bisektion oder ähnliches). Natürlich wollen wir diese Näherungsverfahren nicht

explizit per Hand ausführen, sondern wir wünschen uns eine MuPAD Funktion,

die dies für uns erledigt. Diese gesuchte Funktion ist "numeric::solve".

 

 

Näherungsweise Berechnung von Nullstellen

 

Wann immer wir die Nullstellen einer Funktion nicht exakt mit "solve" bestimmen

können, verwenden wir die Funktion "numeric::solve". Ihre Handhabung ist ganz

analog zu der Handhabung der Funktion "solve". Im Gegensatz zu "solve", liefert

"numeric::solve" stets Näherungswerte und keine genauen Ergebnisse. So ist es

also ratsam, bei einer gegebenen Funktion zunächst zu versuchen, die Nullstellen

mit "solve" exakt zu berechnen. Führt dieser Ansatz nicht zum Ziel, so greift man auf

"numeric::solve" zurück. Es wäre ungünstig, eine Funktion sofort mit "numeric::solve"

auf Nullstellen zu untersuchen, denn auch wenn MuPAD in der Lage ist, die Nullstellen

exakt anzugeben, so liefert "numeric::solve" dennoch nur Näherungswerte für die Null-

stellen.

 

Standardmäßig wird in MuPAD mit 10 signifikanten Stellen gerechnet, was ungefähr

der Genauigkeit eines besseren, nicht programmierbaren, Taschenrechners entspricht.

Die Genauigkeit kann jedoch beliebig erhöht werden. Dazu werden wir unten auch ein

Beispiel betrachten.

 

Zuerst wollen wir aber jetzt die Nullstellen der Funktion l bestimmen, die wir oben

nicht berechnen konnten. Wir verwenden dazu die Funktion numeric::solve mit der

Zusatzoption "AllRealRoots". Diese Zusatzoption bewirkt, dass MuPAD versucht,

alle reellen Nullstellen numerisch zu berechnen. Bei extrem komplizierten Funktionen

kann es passieren, dass der numerische Lösungsalgorithmus nicht wirklich alle

Nullstellen der Funktion findet (z.B. bei Funktionen, die unendlich viele Nullstellen

haben). Aus diesem Grund gibt MuPAD bei Verwendung der Option AllRealRoots

stets eine Warnung aus, die besagt, dass u.U. nicht alle Lösungen gefunden werden.

Die internen Verfahren zur Berechung der Nullstellen sind aber so gut, dass sie

in allen Schulbeispielen problemlos verwendet werden können. Man braucht sich

also an der Warnung nicht zu stören:

 

numeric::solve(l(x) = 0, x, AllRealRoots)

Warning: problem in isolating search intervals. Some roots may be lost [numeric::allRealRoots]

math

Zur Unterdrückung der Warnung kann man die Option verwenden:

 

numeric::solve(l(x) = 0, x, AllRealRoots, NoWarning)

math

 

Wollen wir die Genauigkeit des Ergebnisses beeinflussen, so müssen wir den Wert

der Variablen "DIGITS" verändern. Diese Variable speichert die Anzahl der signifi-

kanten Stellen, mit denen in MuPAD gerechnet wird und ist standardmäßig mit dem

Wert 10 belegt. Wir erhöhen ihren Wert auf 20 und berechnen die Nullstellen der

Funktion l erneut:

 

DIGITS:= 20:

numeric::solve(l(x) = 0, x, AllRealRoots, NoWarning)

math

Wie wir sehen, ist das Ergebnis viel genauer. Man kann den Wert der Variablen

"DIGITS" nahezu beliebig erhöhen - die Rechengenauigkeit von MuPAD ist ledig-

lich durch Zeit, Prozessorleistung und Speicherplatz beschränkt. Um "DIGITS"

wieder auf seinen ursprünglichen Wert zurückzusetzen führen wir einfach die fol-

gende Befehlszeile in MuPAD aus:

 

delete DIGITS:

 

Weitere Anregungen, Beispiele und Erklärungen finden sich im "Handwerkskasten"

in den Notebooks "Definition von Funktionen" und "Berechnung von Nullstellen".

Da die MuPAD Funktionen "solve" und "numeric::solve" nicht nur zur Berechnung

von Nullstellen, sondern vielmehr ganz allgemein zum Lösen von Gleichungen ver-

wendet werden können, verweisen wir zusätzlich auf die Notebooks zur Berechnung

von Schnittpunkten zweier Funktionen ("Schnittpunktberechnung") und zur Lösung

von Gleichungssystemen ("Lösen von Gleichungssystemen"). Dort wird der Umgang

mit "solve" bzw. "numeric::solve" in der für den "Handwerkskasten" üblichen ausführ-

lichen Weise erläutert und anhand von Beispielen erklärt.

 

 

Bestimmung des Schnittpunktes einer Funktion mit

der y-Achse

 

Die Berechnung des Schnittpunktes einer Funktion mit der y-Koordinatenachse ist

denkbar einfach - wir müssen nur, sofern die betrachtete Funktion an der Stelle x = 0

definiert ist, den Wert 0 für x in den Funktionsterm einsetzen. Wie wir Funktionswerte

berechnen, haben wir bereits im vorherigen Abschnitt gelernt. Die y-Koordinaten der

Schnittpunkte mit der y-Achse der Funktionen f bis l, deren Nullstellen wir oben

bestimmt haben, lassen sich daher wie folgt berechnen:

 

f(0)

math

g(0)

math

h(0)

math

k(0)

math

l(0)

math

Sind Ergebnisse nicht soweit vereinfacht, wie man es gerne hätte, so lässt sich in

der Regel durch zusätzliche Anwendung der Funktion "simplify" auf das entsprechende

Ergebnis die gewünschte Vereinfachung erreichen.

 

Beispiel:

 

1 - sin(x)^2 - cos(x)^2

math

Dieser Ausdruck ist Null, was man durch Anwendung der Funktion Simplify leicht

verifizieren kann:

 

Simplify(1 - sin(x)^2 - cos(x)^2)

math

________________________________________________________________________________

 

Übungen:

1. Berechnen Sie die Nullstellen (wenn möglich exakt mit Hilfe von "solve", sonst näherungsweise

__mittels "numeric::solve") und die y-Koordinaten ihrer Schnittpunkte mit der y-Achse.

image

image

image

image

_______________________________________________________________________________

 

Anmerkungen:

1.  Weitere Anregungen finden Sie in der Buchreihe Mathematik 1 x anders. In dieser Reihe

     wird eine Vielzahl unterschiedlichster mathematischer Probleme mit MuPAD gelöst. Die

     Bücher können unter www.schule.mupad.de/literatur kostenfrei kopiert werden.

 

_______________________________________________________________________________

 

 

 

MuPAD Education Group: Kostenlose Materialen für MuPAD Pro:
www.sciface.com/education, schule.mupad.de, studium.mupad.de, mupad.zum.de.