|
Ich lasse bei jedem Schritt in der Schleife die Speicherbelegung mit MemoryInUse[] ausgeben, was bei der letzen Ausgabe einen Wert von 11095256 ergibt. Sollte eigentlich kein Problem sein. Das Notebook wurde auf mehreren PCs unter Windows NT und Windows98 getestet. Wobei der Hauptspeicher bei den NT-Maschinen bei 128 MByte und bei den 98-Maschinen bei 64 MByte liegt. Entgegen meiner ersten mail habe ich die Variablen tauy, tauyy usw. (es sind noch mehrere, die Schleife sollte nur ein Beispiel sein) temporaer eingefuehrt, die bei jedem SChritt ueberschrieben werden. Bei diesen Groessen handelt es sich um Ableitungen im Ort (des vorherigen Schritt). Alle Werte sind evaluiert (ich habe auch schon alle Ausdruecke mit Evaluate[...] versehen) worden und liefern numerische Werte. Ich kann auch nicht die einzelnen Zeitschritte ueberschreiben weil ich die Werte fuer eine Auswertung brauche. Ich hoffe das hilft weiter ?!? mfG. Cetin Haftaoglu BAM Berlin >Das scheint entweder doch auf Speicherplatzprobleme oder nichtnumerische >gro_e Zwischenresultate hinzuweisen. Sie kvnnen ja einmal die Schleife >"von Hand" ein paar Schritte weit laufen lassen und sich jeweils die >Zwischenergebnisse anschauen: > > >M = 4000; >v[0] = Table[....,{i,1,M+1}]; >tau[0] = Table[...,{i,1,M+1}]; >tet[0] = Table[...,{i,1,M+1}]; > >n=0 > >v[n+1] = v[n] + lam (tauy[n]+ k) >tau[n+1] = tau[n] + ...... >tet[n+1] = v[n] + .... + tauyy[n] ...... > >n=1 > >etc... > >Sie haben ins nicht gesagt, was tauy[n_], tauyy[n_],... sind. Diese sollten >wohl zu einer Zahl oder Liste von M (Gleitpunkt-) Zahlen evaluieren, >sonst sieht es nicht gut aus. Fehler bei der Definition der tauy >(oder der Anfangsbedingungen) kvnnen zum Aufbau von symbolischen Werten >f|hren, die sich dann in jedem Schleifendurchgang weiter auft|rmen; >die geschilderten Symptome weisen auf so etwas hin. > >Ein weiteres Problem, das aber offenbar hier nicht entscheidend ist, >liegt darin, da_ Sie in jedem Schleifendurchgang neue Werte speichern; >dies ist nur dann sinnvoll, wenn Sie alle Zwischenergebnisse am Schluss >auch wirklich benvtigen, sonst geht es effizienter mit > >v = Table[....,{i,1,M+1}]; >tau = Table[...,{i,1,M+1}]; >tet = Table[...,{i,1,M+1}]; > >Do[ > v1 = v + lam (tauy[n]+ k); > tau1 = tau + ......; > tet1 = v + .... + tauyy[n] ......; > v=v1; tau=tau1; tet=tet1; >, {n, 0, nstep}]; > >Womit Sie die alten Zwischenergebnisse |berschreiben. > >mit freundlichen Gr|_en, > >Roman Mdder > >----------------------------------------------------------------------- >MathConsult Dr. R. Mdder Samstagernstrasse 58a >Mathematik- und Informatik-Beratung CH-8832 Wollerau > >T: +41-1-687 4050 mailto:maeder@XXXXXXX.ch >F: +41-1-687 4054 http://www.mathconsult.ch/ >----------------------------------------------------------------------- > |