\mnb150ÿ{\rtf1\ansi\deff0\deftab720{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\fswiss\fprq2 System;}{\f3\fswiss\fprq2 Arial;}{\f4\froman\fprq2 Times New Roman;}{\f5\fmodern\fprq1 Courier New;}{\f6\fswiss\fprq2 Helvetica;}} {\colortbl\red0\green0\blue0;\red0\green0\blue255;\red0\green128\blue0;\red255\green0\blue255;\red255\green0\blue0;} \deflang1031\pard\ri4\plain\f5\fs20\cf0\b ________________________________________________________________________________ \par \par \plain\f5\fs20\cf0 Inhalt....: Berechnung von Nullstellen \par Kategorie.: Handwerkskasten \par Mathematik: Analysis \par MuPAD.....: 3.1.0 \par Datum.....: 2002-02-06 \par Autoren...: Kai Gehrs \par Funktionen: solve, numeric::solve, normal, assume, Type::Real, -> \par \plain\f5\fs20\cf0\b ________________________________________________________________________________ \par \plain\f3\fs36\cf0\b \par \plain\f3\fs40\cf0\b Elementare MuPAD-Funktionen: \par Berechnung von Nullstellen\plain\f3\fs24\cf2 \par \par Die Berechnung von Nullstellen spielt u.a. im Rahmen von Funktionsdiskussionen eine wichtige \par Rolle. Wir wollen lernen, wie wir mit MuPAD Nullstellen von Funktionen bestimmen k\'f6nnen. \par \plain\f3\fs28\cf0 \par \plain\f3\fs28 Generell \plain\f3\fs28\cf0 bietet\plain\f3\fs28 MuPAD im wesentlichen zwei M\'f6glichkeiten, die \par Nullstellen einer Funktion zu berechnen. \par \par (1) exakte Nullstellenbestimmung mit Hilfe der Funktion \plain\f3\fs28\cf4 solve\plain\f3\fs28 \par (2) numerische Bestimmung von Nullstellen mittels \plain\f3\fs28\cf4 numeric::solve\plain\f3\fs28 \par \par Die Funktion \plain\f3\fs28\cf4 solve\plain\f3\fs28 wollen wir als erstes kennenlernen. Wir definieren \par uns einige Funktionen, deren Nullstellen wir bestimmen m\'f6chten: \par \plain\f5\fs22\cf1 \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f5\fs28\cf4 {\pntext\f1\'b7\tab}f_1:= x -> x^2 - 5*x + 5; \par \pard\li600\ri1\fi-300\plain\f5\fs28\cf4 f_2:= x -> x^4 - 5*x^2 + 4; \par f_3:= x -> x^2 - 1; \par f_4:= x -> x^2 + 1; \par f_5:= x -> x^4 - 11*x^3 + 41*x^2 - 61*x + 30\plain\f3\fs28\cf4 \par \pard\ri4\plain\f3\fs28 \par Da wir ausschlie\'dflich reelle Zahlen betrachten, teilen wir MuPAD mit, \par dass x stets eine reelle Zahl ist: \par \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f5\fs28\cf4 {\pntext\f1\'b7\tab}assume(x, Type::Real): \par \pard\ri4\plain\f3\fs28 \par Die Berechnung der Nullstellen ist spielerisch leicht. Die Funktion \plain\f3\fs28\cf4 solve\plain\f3\fs28 \par erh\'e4lt stets \plain\f3\fs28\cf2 zwei Argumente\plain\f3\fs28 : \par \par \plain\f3\fs28\cf4 1. Argument:\plain\f3\fs28 Die \plain\f3\fs28\cf2 Funktion\plain\f3\fs28 , deren Nullstellen \par wir berechnen m\'f6chten, \plain\f3\fs28\cf2 gleich 0\plain\f3\fs28 gesetzt \par \par \plain\f3\fs28\cf4 2. Argument:\plain\f3\fs28 Die \plain\f3\fs28\cf2 Funktionsvariable\plain\f3\fs28 , nach der \par die Gleichung aufgel\'f6st werden soll \par \par d.h. also ein Aufruf der Form \plain\f3\fs28\cf4 solve( \plain\f3\fs28\cf2 Funktion = 0, Funktionsvariable\plain\f3\fs28\cf4 )\plain\f3\fs28\cf0 . \par \par Als \plain\f3\fs28\cf1 R\'fcckgabewert\plain\f3\fs28\cf0 liefert uns die Funktion \plain\f3\fs28\cf4 solve\plain\f3\fs28\cf0 eine \plain\f3\fs28\cf1 Menge\plain\f3\fs28\cf0 \plain\f3\fs28\cf1 der \par Nullstellen\plain\f3\fs28\cf0 . Will man nachtr\'e4glich mit den berechneten Nullstellen \par weiterrechnen, so ist es sinnvoll, den R\'fcckgabewert der Funktion \par an eine Variable zuzuweisen. \par \par Dies wollen wir im folgenden\plain\f3\fs28\cf3 \plain\f3\fs28\cf0 an unseren Beispielfunktionen erproben. \par \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f5\fs28\cf4 {\pntext\f1\'b7\tab}Nullstellen_f_1:= solve(f_1(x) = 0, x);\plain\f3\fs28\cf4 \par \pard\ri4\plain\f3\fs28\cf0 \par Auf die Elemente dieser Menge greifen wir mit dem Indexoperator \plain\f3\fs28\cf4 [ ]\plain\f3\fs28\cf0 \par zu: \par \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f5\fs28\cf4 {\pntext\f1\'b7\tab}x_1:= Nullstellen_f_1[1]; \par \pard\li600\ri1\fi-300\plain\f5\fs28\cf4 x_2:= Nullstellen_f_1[2];\plain\f3\fs28\cf4 \par \pard\ri4\plain\f3\fs28\cf0 \par Wir machen die Probe. Hier ist die\plain\f3\fs28\cf3 \plain\f3\fs28\cf0 Anwendung der Funktion \plain\f3\fs28\cf4 normal\plain\f3\fs28\cf0 \par erforderlich, die Ausdr\'fccke mit Wurzeln vereinfacht. \plain\f3\fs28 \par \plain\f4\fs28 \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f5\fs28\cf4 {\pntext\f1\'b7\tab}normal(f_1(X_1)); \par \pard\li600\ri1\fi-300\plain\f5\fs28\cf4 normal(f_1(x_2)); \par \pard\ri4\plain\f3\fs28\cf0 \par Auf dieselbe Weise k\'f6nnen wir die Nullstellen der anderen Beispielfunktionen \par berechnen: \par \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\lang1036\f5\fs28\cf4 {\pntext\f1\'b7\tab}solve(f_2(x) = 0, x); \par \pard\li600\ri1\fi-300\plain\lang1036\f5\fs28\cf4 solve(f_3(x) = 0, x); \par solve(f_4(x) = 0, x); \par solve(f_5(x) = 0, x); \par \pard\ri4\plain\f3\fs28\cf0 \par Wie wir sehen, besitzt die Funktion f_4 keine reellen Nullstellen. \par \par Mit Hilfe von \plain\f3\fs28\cf4 solve\plain\f3\fs28\cf0 k\'f6nnen auch die Nullstellen komplizierterer \par Funktionen bestimmt werden: \par \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f3\fs28\cf0 {\pntext\f1\'b7\tab} \plain\lang1036\f5\fs28\cf4 solve(sin(x) * cos(x) = 0, x); \par \pard\ri4\plain\f3\fs28\cf0 \par Die Nullstellenmenge ist nicht endlich - sie wird von MuPAD automatisch \par in Abh\'e4ngigkeit eines Parameters dargestellt, der alle ganzen Zahlen \par durchl\'e4uft. \par \par Probleme k\'f6nnen sich dann ergeben, wenn wir versuchen, die Nullstellen \par einer Funktion zu berechnen, f\'fcr die es keine exakte, geschlossene \par L\'f6sungsformel gibt. \par Polynomial Gleichungen vom Grad 5 oder gr\'f6\'dfer k\'f6nnen u.U. nicht exakt \par gel\'f6st werden. Wir betrachten dazu einmal die Funktion \par \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f5\fs28\cf4 {\pntext\f1\'b7\tab}f_6:= x -> x^5 - 2*x^2 + x + 2\plain\f3\fs28\cf4 \par \pard\ri4\plain\f3\fs28\cf0 \par Hier liefert \plain\f3\fs28\cf4 solve\plain\f3\fs28\cf0 ein auf den ersten Blick obskures Ergebnis \par \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f5\fs28\cf4 {\pntext\f1\'b7\tab}solve(f_6(x) = 0, x)\plain\f3\fs28\cf4 \par \pard\ri4\plain\f5\fs22\cf4 \par \plain\f3\fs28\cf0 Der Ausdruck \plain\f3\fs28\cf1 RootOf(...) \plain\f3\fs28\cf0 zeigt an, dass dieses Polynom nicht weiter \par in Faktoren aufgespalten werden konnte. \par \par Hier k\'f6nnen wir die Nullstellen nicht exakt berechnen - wir m\'fcssen daher \par auf numerische Verfahren zur\'fcckgreifen. \par \par Einen Ausweg liefert die uns die Funktion \plain\f3\fs28\cf4 numeric::solve\plain\f3\fs28\cf0 . \par \par \plain\f3\fs28 Die Funktion \plain\f3\fs28\cf4 numeric::solve\plain\f3\fs28 erh\'e4lt stets \plain\f3\fs28\cf2 zwei Argumente\plain\f3\fs28 : \par \par \plain\f3\fs28\cf4 1. Argument:\plain\f3\fs28 Die \plain\f3\fs28\cf2 Funktion\plain\f3\fs28 , deren Nullstellen wir \par wir berechnen m\'f6chten, \plain\f3\fs28\cf2 gleich 0\plain\f3\fs28 gesetzt \par \par \plain\f3\fs28\cf4 2. Argument:\plain\f3\fs28 Die \plain\f3\fs28\cf2 Funktionsvariable\plain\f3\fs28 , nach der \par die Gleichung aufgel\'f6st werden soll \par \par d.h. also ein Aufruf ist immer von der Form \par \plain\f3\fs28\cf4 numeric::solve( \plain\f3\fs28\cf2 Funktion = 0, Funktionsvariable\plain\f3\fs28\cf4 )\plain\f3\fs28\cf0 . \par \par Als \plain\f3\fs28\cf1 R\'fcckgabewert\plain\f3\fs28\cf0 liefert uns die Funktion \plain\f3\fs28\cf4 numeric::solve\plain\f3\fs28\cf0 eine \plain\f3\fs28\cf1 Menge\plain\f3\fs28\cf0 \par \plain\f3\fs28\cf1 der Nullstellen\plain\f3\fs28\cf0 . \par \par Die Aufrufsyntax ist also exakt die gleiche, wie wenn wir die Funktion \par \plain\f3\fs28\cf4 solve\plain\f3\fs28\cf0 verwenden. \par \par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f5\fs28\cf4 {\pntext\f1\'b7\tab}numeric::solve(f_6(x)=0, x) intersect R_\plain\f3\fs28\cf4 \par \pard\ri4\plain\f5\fs20\cf0\b \par \plain\f3\fs28\cf0 Dabei sind wir hier jedoch dazu gezwungen, mittels des Befehls \plain\f3\fs28\cf4 intersect R_\plain\f3\fs28\cf0 , \par die reellen Nullstellen aus der L\'f6sungsmenge zu selektieren. Wollen \par wir auch die komplexen Nullstellen erhalten, so kann dieser Teil der \par obigen Befehlszeile entfallen. \par \plain\f5\fs20\cf0\b \par ________________________________________________________________________________ \par \plain\f3\fs22\cf0 \par \plain\f3\fs22\cf1\b Aufgaben:\plain\f3\fs22\cf1 \par \plain\f3\fs20\cf1 1. Berechnen Sie die Nullstellen der folgenden Funktionen mit Hilfe der Funktion \plain\f3\fs20\cf4 solve\plain\f3\fs20\cf1 : \par (a) f:= 4*x^2 - 2*x \par (b) g:= 6*x^3 - 3*x \par (c) h:= cos(x) * tan(x) \plain\f3\fs20\cf2 \par \plain\f3\fs20\cf1 \par 2. Berechnen Sie die reellen Nullstellen der folgenden Funktionen mit Hilfe der Funktion \plain\f3\fs20\cf4 numeric::solve\plain\f3\fs20\cf1 : \par (a) f:= 3*exp(x)^2 - 1 \par (b) g:= x^7 + x - 2 \par (c) h:= x^4 - x - 14 \par Welche der Nullstellen lassen sich auch mit Hilfe von \plain\f3\fs20\cf4 solve\plain\f3\fs20\cf1 finden? \par \plain\f5\fs20\cf0\b _______________________________________________________________________________ \par \plain\f3\fs22\cf0 \par \plain\f3\fs22\cf2\b Anmerkungen:\plain\f3\fs22\cf2 \par \plain\f3\fs20\cf2\b 1\plain\f3\fs20\cf2 . Weitere Anregungen finden Sie in der Buchreihe \plain\f3\fs20\cf4 Mathematik 1 x anders\plain\f3\fs20\cf2 . In dieser Reihe \par wird eine Vielzahl unterschiedlichster mathematischer Probleme mit MuPAD gel\'f6st. Die \par B\'fccher k\'f6nnen unter \plain\f6\fs20\cf1 www.schule.mupad.de/literatur\plain\f3\fs20\cf2 kostenfrei kopiert werden. \par \plain\f3\fs20\cf1 \par \plain\f5\fs20\cf0\b _______________________________________________________________________________ \par \par \par }