AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

100 milliarden Werte speichern!

Offene Frage von "LePtitmort"
Ein Thema von LePtitmort · begonnen am 26. Jun 2006 · letzter Beitrag vom 6. Jul 2006
Antwort Antwort
Seite 5 von 6   « Erste     345 6      
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#41

Re: 100 milliarden Werte speichern!

  Alt 1. Jul 2006, 18:58
Zitat von Toxman:
... z.B. nach einer bestimmten Anzahl an Schritten die Bahn jedes Planeten als Polynom großen Grades zu approximieren ...
Glaubst du nicht, dass wenn man eine sehr hohe Genauigkeit (größer als die von Extendedzahlen) möchte, eine Approximation etwas zu ungenau werden dürfte. Ich meine letztlich kannst du mit einer Approximation nur die Genauigkeit des wertebereichs (als auch max. im Fehler von Extended) landen, da die aber schon zu ungenau sind...
[OT]
Gibt da wirklich ein paar Probleme, wo Approximationen völlig zerissen werden (weiß ja nicht wie es dann hier aussieht), hatte da aber mal einen sehr interessanten Algorithmus zur Approximation eines nicht-adiabatischen Energiesprungs in einem Molekül gesehen (da geht es um Prozessen im unteren Femptosekundenbereich), die wurde von so ein zwei Menschen auch als deutlich zu ungenau erachtet, aber egal.
[/OT]
  Mit Zitat antworten Zitat
LePtitmort

Registriert seit: 25. Jun 2006
20 Beiträge
 
#42

Re: 100 milliarden Werte speichern!

  Alt 2. Jul 2006, 07:37
wer des programm mal angekuckt hat, wird faszinierd sein. unten rechts wird die Differnz eines planeten zur Zeit t=0 berechnet... in meinem Programm sind keineirlei Zufallsgeneratoren und dergleichen, tortzdem ergibt sich bei jedem neuen start des programms eine neue Differenz, und dass obowhl 100% genau die selben werte am start vorhanden sind, hier sieht man wie entscheidend, die genauigkeit ist. Beireits die zufälligen rundungen des Computers führen (à la Chaostheorie) zu riesigen Auswirkungen

Hier noch mal des Prog
-ich steck schon immer in der Scheisse nur die Tiefe wechselt-
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#43

Re: 100 milliarden Werte speichern!

  Alt 2. Jul 2006, 07:59
Ohne dass ich mir das Prog. angeschaut habe, möchte ich hier sagen, dass es sicherlich keine zufälligen Rundungen eines Computers gibt. Wie sollte das klappen?
So eine ALU berechnet bei gleicher Eingabe auch immer die gleiche Ausgabe. Wenn sich da Werte ändern wäre meine erste Schätzung, dass du mindestens eine lokale Variable verwendest, die du nicht initialisierst. Die hätte dann einen nicht vorhersehbaren Wert.
  Mit Zitat antworten Zitat
Flo85

Registriert seit: 25. Apr 2006
23 Beiträge
 
#44

Re: 100 milliarden Werte speichern!

  Alt 3. Jul 2006, 09:36
[quote="Der_Unwissende"]Ohne dass ich mir das Prog. angeschaut habe, möchte ich hier sagen, dass es sicherlich keine zufälligen Rundungen eines Computers gibt. Wie sollte das klappen?
So eine ALU berechnet bei gleicher Eingabe auch immer die gleiche Ausgabe./quote]

Dem kann ich nur zustimmen.

Wenn der rechner zufällig runden würde müste er ja dafür programmiert sein.

Es ist nun mal vorgeschriben was er aus einer 1 und einer 0 macht.

Ich meine damit wenn ich "1" und "0" multiplizire und er das ergebniss runden würde könte nicht einmal "1" und einmal "0" rauskommen. da brauche ich auch keinen computer.
  Mit Zitat antworten Zitat
happyaura

Registriert seit: 12. Jan 2005
Ort: Hamburg
73 Beiträge
 
Delphi 6 Personal
 
#45

Re: 100 milliarden Werte speichern!

  Alt 4. Jul 2006, 23:52
es gibt schon statistiken, nach denen zufälliges Runden sinn machen würde, zumindest was den absoluten Fehler angeht. Das war die aussage Unseres Professors in Sprachen und Algorithmen. es will aber keiner ein Programm schreiben, was häufig funktioniert, gelegentlich aber leider auch nicht, je nachdem, wie gerade gerundet wurde. Und noch weniger möchte man so ein programm kaufen. deswegen gibt es ein klar definiertes rount to nearest oder auf- und abrunden und nicht heute so und morgen so.
Zufällige geschichten bekommt man häufig rein, wenn man mit zeigern irgend einen speicherbereich ausliest, der leider nicht genauer definiert ist. (zumindest für das Prog...=
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#46

Re: 100 milliarden Werte speichern!

  Alt 5. Jul 2006, 01:23
für mich stellt sich immernoch die Frage (wie sicherlich für viele andere auch) wozu Du die Daten überhaupt speichern willst ?
Berechnete Koordinaten speichert man doch nicht ab, wenn man Sie nur zeichnen möchte.
Was hast Du denn vor, mal neugierig frag ?
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#47

Re: 100 milliarden Werte speichern!

  Alt 5. Jul 2006, 08:15
[klein wenig OT]
wenn ich dein programm starte, bekomm ich nur ne messageBox "Das Programm kann nicht gestartet werden."
[/klein wenig OT]

aeno
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
LePtitmort

Registriert seit: 25. Jun 2006
20 Beiträge
 
#48

Re: 100 milliarden Werte speichern!

  Alt 5. Jul 2006, 15:17
die werte solten eigentlich zur späteren Analyse vorhanden sein....

PS: dein Arbeitsspeicher packt vermutlich des grosse array nicht...
-ich steck schon immer in der Scheisse nur die Tiefe wechselt-
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#49

Re: 100 milliarden Werte speichern!

  Alt 5. Jul 2006, 15:46
Zitat von LePtitmort:
die werte solten eigentlich zur späteren Analyse vorhanden sein....
Das Lesen von Festplatte dürfte wesentlich länger dauern, als die Werte einfach neu zu berechnen !
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#50

Re: 100 milliarden Werte speichern!

  Alt 5. Jul 2006, 16:34
So .. ich habe jetzt nochmal Dein PRogramm angeschaut.
Und ich glaube, Du befindest Dich irgendwie auf dem Holzweg. Denke nochmal über Dein weiteres vorgehen nach.

Ich habe also Dein Programm gestartet. Habe "Günstige Startwerte" ausgewählt und es rechnete.
Es ging sehr flott !
Dabei reservierte sich das Programm 397 MB Speicher im RAM !
Diese 397 MB zeichnest Du als Kurve (wahrscheinlich) in ein TBitmap. Das ganze machst Du ON THE FLY !!!
(und dennoch ist das programm ziemlich flott)

das bedeutet.
Aus meinen Erfahrungen her würde ich folgende Schlüße ziehen, genau kann ich es natürlich nicht testen, da ich Deinen Quelltext nicht vorliegen habe.
Aber:
Punkt 1. Das Reservieren der 397 MB im Hauptspeicher dauert wahrscheinlich sogar länger als das Berechnen der Werte selber !
Das bedeutet, ein zwischenspeichern auf Festplatte wäre sinnlos und würde für eine spätere Analyse keine Vorteile bringen.

Ich weiß nicht genau, wie Du zeichnest. Aber viel viel schneller wird es, wenn Du nicht jeden Punkt zeichnest, sondern nur wenn sich die x und y-Koordinaten der gezeichneten Pixel ändern. Denn die Interaktion mit einem Canvas dauert sehr lange ( auch wenn Du ein TBitmap als Puffer nimmst)
Du schreibst, im Moment wird jeder 200 ste Schritt gezeichnet, dass dürfte bei 397 MB noch viel zu oft sein !
Also bitte nur zeichnen, wenn sich x oder y Koordinate eines Punktes, den Du setzen möchtest, ändert.
Empfehlen würde ich Dir ausserdem nicht auf eine Groubbox zu malen sondern auf eine Paintbox.
Wenn man nämlich bei Dir ein anderes Fenster drüberschiebt, dann wird es grau und das Bild wird nicht neu gezeichnet.
Bei der Paintbox gibt es dafür ein OnPaint Ereignis, wo Du die Möglichkeit hast Dein Bitmap in das Bitmap der Paintbox zu kopieren.
Deine ganze Geschichte flackert auch nicht, dass heißt Du wirst das langsame "doublebufferd" auf true gesetzt haben.

eine flackerfreie Paintbox findest Du hier: http://www.pjh2.de/delphi/units/index.php?l=de
(TWinPaintBox)
Alles im allem hab ich das Gefühl dass die Berechnungen für einen Computer nichts großartiges sind.
Die Geschicklichkeit Deinerseits liegt nun darin, Deine Analysen die Du machen möchtest, on the fly durchzuführen
Aber bitte nicht alles in Deine berechnungsprocedure reinpacken und schön objectorientiert !!


<edit>

Zitat:
Ein weiteres Prob, das ich hab ist ein Scheibenwischereffekt der Auftritt wenn ich den Planeten mache, er "wischt" über meine Paintbox und löscht somit meine alten Bahnen (natürlich nur die Grafik nicht die berechneten Werte im Array). Und speichern und laden des bildes kommt auch nicht in Frage, auf Grund der grossen Schrittanzahl (monmentan wird jeder 200ste Schritt gezeichnet sh. im Programm unten rechts)
das habe ich gerade noch gefunden. Anscheinend zeichnest Du direkt auf die Paintbox, das ist in Bezug auf die Geschwindigkeit überhaupt nicht günstig.

Du solltest also in ein TBitmap zeichnen (dieses hat ebenfalls ein Canvas Object) und zum Schluß Deiner Zeichnungen das gesamte Bitmap per BitBlt in das canvas der Paintbox kopieren. ( oder alle zig Schritte wenn Du einen "flüssigen" Film sehen möchtest.
Das machst Du auch im OnPaint Ereignis der Painbox.
Wenn Du das nicht willst und ein "wischen" verhindern willst, musst Du das viel langsamere TImage Object nehmen.


viele Grüße
stoxx
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 6   « Erste     345 6      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz