www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Mathematica" - Kurvendiskussion
Kurvendiskussion < Mathematica < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Mathematica"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Kurvendiskussion: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 12:26 Di 13.11.2007
Autor: mat_k

Aufgabe
Die Funktion SelectRealZeros[list_] soll aus einer Liste list von Lösungen einer Gleichung alle reellen Lösungen herausfiltern.

Modifizieren Sie die Funktion Curve[f_] aus EinführungInMathematica.nb derart, dass auch Funktionen mit weniger als 2 Nullstellen, Extremwerten bzw. Wendepunkten dargestellt werden. Verwenden Sie bei der Bestimmung dieser speziellen Punkte ihre Funktion SelectRealZeros.  

Hallo,

meine Funktion SelectRealZeros[list_] sieht so aus:

SelectRealZeros[list_] := Select[list, FreeQ[#, Complex] &]

Das gegebene Modul lautet:

Curve[f_] := Module[{x, Zeros, Extremes,
     Inflections, ZerosCoord, ExtremesCoord,
      InflectionsCoord, AllPoints, Xmin, Xmax},
    Zeros = Solve[f[x] == 0, x];
    Extremes = Solve[f'[x] == 0, x];
    Inflections = Solve[f''[x] == 0, x];
    ZerosCoord = Point[{x, f[x]}] /. Zeros;
    ExtremesCoord = Point[{x, f[x]}] /. Extremes;
    InflectionsCoord = Point[{x, f[x]}] /. Inflections;
    AllPoints = x /. Join[Zeros, Extremes, Inflections] // N // Sort;
    Xmin = AllPointsMB1 - 1;
    Xmax = AllPointsMB-1 + 1;
    Plot[f[x], {x, Xmin, Xmax}, PlotRange -> All,
      Epilog -> {PointSize[
      0.02], Prepend[ZerosCoord, RGBColor[1, 0, 0]], Prepend[ExtremesCoord,
    RGBColor[0, 1, 0]], Prepend[InflectionsCoord, RGBColor[0, 0, 1]]}]]

Wir sitzen hier schon einige Stunden und kommen nicht drauf, wie wir das Bsp. lösen können.

Wäre echt dankbar für einen kleinen Denkanstoß!

Mat



        
Bezug
Kurvendiskussion: Antwort
Status: (Antwort) fertig Status 
Datum: 15:20 Di 13.11.2007
Autor: Martin243

Hallo,

SelectRealZeros hätte ich mit Cases[] und Kapitel 2.3.4 im Mathematica Book gelöst, aber so geht es auch.
Diese Funktion verwendest du einfach zusätzlich bei der Berchnung von AllPoints.

Ich denke, der Spezialfall, der noch behandelt werden muss, tritt erst bei weniger als einem Punkt auf, also wenn weder Nullstellen noch Extremstellen noch Wendestellen vorhanden sind.
Hier musst du bei der Berechnung von Xmin und Xmax nur per If prüfen, ob AllPoints die Länge 0 hat und in dem Fall willkürliche Grenzen (z.B. -5 und 5) setzen, sonst eben das erste und letzte Element von AllPoints um 1 verschoben. Eben durch diese Verschiebung funktioniert das Ganze auch ohne Anpassung bei nur einem Punkt.


Gruß
Martin

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Mathematica"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]