DMUG-Archiv 1998

Frühere

 

Chronologischer Index

 

Spätere

Vorherige

 

Thematischer Index

 

Nächste

Definition von Funktionen und Plotten von Funktionen

Hallo.

Im Verlaufe meines Mathematica Programms loese ich numerisch ein System von gewoehnlichen Differentialgleichungen.
Die gesuchten Funktionen haben die Namen R[i] und alpha[k,i], wobei k von 1 bis n und i von 0 bis m laufen. Die
unabhaengige Variable heisst t. Sie umfasst das Intervall von 0 bis 10*tq, wobei tq=2/25 ist.

Dazu nun meine Fragen:

1.  Nach der Eingabe der beiden Zeilen:

     test[i_,t_]:=Evaluate[R[i][t]/.sol]
     test[3,tq]
    
    bekomme ich als Ausgabe:

     {R[3][2/25]}


    Fuege ich stattdessen in der ersten Eigabezeile auf der rechten Seite einen beliebigen (trivialen) Term hinzu,
so dass die Eingabe zum Beispiel lautet:

     test[i_,t_]:=Evaluate[R[i][t]/.sol] + 0
     test[3,tq]

    so bekomme ich als Ausgabe:

     {0.00245828}


    Wieso liefern die beiden Eingaben unterschiedlich Ausgaben? (Benutze ich die zweite Eingabe, kann ich
    uebrigens test[i,t] fuer ein beliebiges i gegen t plotten, was mir im Falle der ersten Eingabe nicht moeglich
    ist.)


2.  test[i_,t_] ist aufgrund seiner Definition nur fuer Integerzahlen von i sinnvoll. (Und das auch nur fuer
    solche, die nicht groesser als m und nicht kleiner als 0 sind.) i ist in meinem Problem aber im Grunde nichts
    anderes als eine Diskretisierung einer kontinuierlichen Variablen. Es waere fuer mich daher sinnvoll, einen
    3D-Plot fuer test[i,t] zu machen. Das ist mir bislang nicht gelungen. Ich denke, es scheitert daran, dass
    test[i,t] nur fuer ganze Zahlen i definiert ist.

    Wie kann ich es schaffen, einen 3D-Plot von test[i,t] zu erzeugen?


3.  Aus den oben genannten Funktionen alpha[k,i] defniere ich die folgende Funktion w:

     w[eta_, i_, t_] := Sum[Evaluate[alpha[k, i][t] /. sol] * (eta^(2*k) - 1), {k, 1, n}]

    Ohne Probleme lassen sich die beiden folgenden Plots erstellen:

     Plot[w[eta,5,tq],{eta,0,1}];
     Plot[w[0,5,t],{t,0,tq}];

    Einen 3D-Plot hingegen kann ich nicht erzeugen lassen. Die Eingabe:

     Plot3D[w[eta,5,t],{eta,0,1},{t,0,10tq}];

    hat bringt die folgenden Meldungen:

     Plot3D::plnc : w[eta, 5, t] is neither a machine-size real number
           at {eta, t}={0., 0.} nor a list of a real number and a valid color directive.
      
    (Es folgen noch zwei weitere Meldungen derselben Art fuer andere Paare {eta,t}.)
     
    und

     SurfaceGraphics::gmat : {<<1>>, <<13>>, {{6.45911*10^-6}},<<13>>, {{-1.52046*10^-20}}} is not a rectangular
     array larger than 2 x 2.

    Gebe ich stattdessen ein:

     Plot3D[Evaluate[w[eta,5,t]],{eta,0,1},{t,0,10tq}]

    bekomme ich zwar keine Fehlermeldung mehr, die Meldung:

     Plot3D[{(-1 + eta^12)*InterpolatingFunction[][t] +
        (-1 + eta^10)*InterpolatingFunction[][t] +
        (-1 + eta^8)*InterpolatingFunction[][t] +
        (-1 + eta^6)*InterpolatingFunction[][t] +
        (-1 + eta^4)*InterpolatingFunction[][t] +
        (-1 + eta^2)*InterpolatingFunction[][t]}, {eta, 0, 1}, {t, 0, 10*tq}]

    hilft mir aber auch nicht so wahnsinnig viel weiter.

    Wie bringe ich Mathematica dazu, mir die Funktion w in der gewuenschten Weise dreidimensional zu plotten?



Hendrik Willig


Antworten:
Re: Definition von Funktionen und Plotten von Funktionen
Jens Potschadtke, 26.02.1997

Frühere

 

Chronologischer Index

 

Spätere

Vorherige

 

Thematischer Index

 

Nächste

DMUG-Archiv, http://www.mathematica.ch/dmug-liste.html; Letzte Änderung: 08.09.2003 20:44