matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 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
Dt. Schulen im Ausland: Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenMathematicaContourplot numerischer Funkt.
Foren für weitere Studienfächer findest Du auf www.vorhilfe.de z.B. Astronomie • Medizin • Elektrotechnik • Maschinenbau • Bauingenieurwesen • Jura • Psychologie • Geowissenschaften
Forum "Mathematica" - Contourplot numerischer Funkt.
Contourplot numerischer Funkt. < Mathematica < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Mathematica"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Contourplot numerischer Funkt.: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 18:14 Mi 16.02.2011
Autor: JackyJay

Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.

Hallo zusammen ich habe eine Frage:

Ich muss ein Differentialgleichungssystem lösen, welches keine
analytische Lösung hat. Dazu benutze ich NDSolve.
In dem System befindet sich noch ein zusätzlicher Parameter w, den ich
gerne variieren möchte.
Am ende möchte ich nämlich einen Contourplot zeichnen mit x-achse die
zeit (x) und y-achse den anderen parameter(w).
Es sieht ungefähr so aus:
NDSolve[{y1'[x] == f (y1[x], y2[x], w, ...),
   y2'[x] == f (y1[x], y2[x], w, ...),
   ...
   y1[0] == 1, y2[0] == 0, ...}, {y1, y2, ...}, {x, 0, 100}];
     Die Funtion f ist einfach eine beliebige Funktion, die von den
anderen y und eben dem parameter w abhängt.

Ich habe 2 ansätze versucht, komme aber bei beiden nicht so richtig weiter:
1. Ansatz
Ich benutze eine for schleife und variere den parameter w, wie ich es
möchte.
Ich bekomme dann die Lösung abhängig von w ( y1[w],y2[w],...) und jedes
y[w] ist natürlich auch noch von x abhängig.
Jetzt weiss ich aber nicht wie ich das in einen plot bekomme. Also z.b. y2[x,w].

2. Ansatz
Die 2. idee kommt aus der Hilfe:
NDSolve[eqns,y,{x,Subscript[x, min],Subscript[x, max]},{t,Subscript[t,
min],Subscript[t, max]}]
Damit sollte es doch eigentlich gehen.
Also angewandt auf mein Beispiel :
NDSolve[{y1'[x] == f (y1[x], y2[x], w, ...),
   y2'[x] == f (y1[x], y2[x], w, ...),
   ...
   y1[0] == 1, y2[0] == 0, ...}, {y1, y2, ...}, {x, 0, 100},{w,0,1}] Oder
NDSolve[{y1'[x] == f (y1[x], y2[x], w, ...),
   y2'[x] == f (y1[x], y2[x], w, ...),
   ...
   y1[0] == 1, y2[0] == 0, ...},y4, {x, 0, 100},{w,0,1}]
Im ersten Fall geb ich alle y aus im 2. Fall nur das gewünschte y4.
Allerdings bekomme ich bei beiden die Fehlermeldung:

NDSolve::derlen: The length of the derivative operator Derivative[1] in
[mm] (y4^\[Prime])[x] [/mm] is not the same as the number of arguments. >>

Hat da jemand eine idee?

        
Bezug
Contourplot numerischer Funkt.: Antwort
Status: (Antwort) fertig Status 
Datum: 13:45 Di 22.02.2011
Autor: halirutan

Moin,

mehrere Sachen, damit die Methode funktioniert

1. Du musst wissen, dass NDSolve die DGL mit allen Parameterwerten im gewuenschten Intervall loesen kann. Ansonsten fliegt dir der ContourPlot um die Ohren.

2.  Weil hier bei jedem Punkt (x,w) neu integriert werden muss sollte man vielleicht ueberlegen, ob man nicht lieber Datenpunkte erzeugt und ListContourPlot nimmt.
Nehmen wir an, du willst dir eine Matrix erstellen, in der dann die Funktionswerte fuer verschiedene Werte (x,w) stehen, dann kannst du jede Zeile ausrechnen indem du 1x NDSolve benutzt, eine Funktion erhaelst und die an allen Punkten x abtastest. Dann nimmst du den naechsten Wert w und machst das gleiche. So musst du fuer jede Zeile nur einmal integrieren.

Ansonsten geht es wie folgt. Bau dir eine Funktion, die ein Wertepaar (x,w) bekommt und dann deine DGL fuer dieses spezielle w von 0 (oder von wo auch immer) bis x integriert. Dann gibst du den Punkt f(x,w) zurueck, indem du die Werte in die erhaltene Interpolationsfunktion einsetzt. Fuer das erste Beispiel aus der Hilfe zu NDSolve ergibt sich dann sowas wie

1: fc = Compile[{{x, _Real}, {w, _Real}}, 
2:   Block[{xx, 
3:     yy}, (yy /. 
4:       First@NDSolve[{yy'[xx] == yy[xx] Cos[w*xx + yy[xx]], 
5:          yy[0] == 1}, yy, {xx, 0, x}])[x]
6:    ], RuntimeOptions -> "Speed"]
7: f[x_?NumericQ, w_?NumericQ] := fc[x, w]
8:
9: ContourPlot[f[x, w], {x, 2, 5}, {w, 2, 5}]


[Dateianhang nicht öffentlich]

Cheers
Patrick


Dateianhänge:
Anhang Nr. 1 (Typ: png) [nicht öffentlich]
Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Mathematica"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]