MB-Verteilung Simulation

Hier könnt Ihr euch einfach so unterhalten

Moderatoren: Guhrfisch, nocheinPoet

MB-Verteilung Simulation

Beitragvon Spacerat » Samstag 16. Mai 2015, 08:03

Hallo Community

Ich versuche grade ein wenig Lothars Feinstrukturkonstante in Java nachzuvollziehen. Leider scheitere ich da grade ein wenig an der Vorhersage einer MB-Verteilung. Ich habe eine Geschwindigkeitsvorgabe, mit welcher jede Kugel im simulierten Gas initialisiert wird. Diese Geschwindigkeit nehme ich für die Berechnung der Intervalle schon mal pauschal mal 4, weil sich gezeigt hat, dass sich Geschwindigkeiten bei der Verteilung auch schon mal in diesen Bereich verirren. Diesen Geschwindigkeitsbetrag teile ich dann durch die Anzahl der Intervalle und erhalte so die Schrittweite für die Vorhersage. Wenn ich jetzt jedoch eine der beiden Formeln von Wikipedia
MB1.png
MB1.png (1.66 KiB) 14703-mal betrachtet

oder
MB2.png
MB2.png (2.13 KiB) 14703-mal betrachtet

für die Wahrscheinlichkeiten der Verteilung hernehme kommt nur Murks raus. Ich denke mal, so ganz verstehe ich die MB-Verteilung nicht. Kann mir da mal jemand auf die Sprünge helfen? Sehr angenehm wäre Pseudo- oder besser noch Java-Code. Benötigt werden die Wahrscheinlichkeitswerte der Geschwindigkeiten in Prozent pro Intervall. Hier schon mal mein bisheriger Ansatz.

Code: Alles auswählen
private static final double fourPi = 4.0 * PI;
private static final double boltzmann = 1.3806488e-23;// Boltzmann-Konstante
private static final double twoBoltzmann = 2.0 * boltzmann;
private static final double neutronMass = 1.674927351e-27;// Neutronenmasse

private double speed, speedSteps;
private double[] maxwell;
private int[] speedStats;

public synchronized double init(Ball[] balls, int numColumns, double speed) {
   this.speed = speed;
   maxwell = new double[numColumns];
   speedStats = new int[numColumns];
   speedSteps = speed * 4.0 / numColumns;
   for (int n = 0; n < speedStats.length; n++) {
      speed = n * speedSteps;
      speed *= speed;
      maxwell[n] = fourPi * pow(neutronMass / (twoBoltzmann*PI), 1.5)
            * speed * exp(-speed * neutronMass / twoBoltzmann);
   }
   return init(balls);
}
Nach Möglichkeit möchte ich statt mit der Neutronenmasse mit einer Einheitsmasse 1kg arbeiten, bzw. das Ganze Masse und Temperatur unabhängig realisieren, also nur die Geschwindigkeit in die Formel mit einbeziehen.

Wenn man die Simulation laufen lässt, erkennt man zumindest schon mal, dass sich die Geschwindigkeiten korrekt MB-verteilen, ohne dass man da irgendwo eine Konstante reinmogelt - einfach nur per Stoßtransformation. Ich hätte da aber gerne eine Vorschau von.

MfG
Spacerat

Edit: Link zum Simulator: https://www.dropbox.com/s/so1v9m1cn932h ... 1.jar?dl=0
Letzte Änderung 26.05.2015 10:13
Zuletzt geändert von Spacerat am Dienstag 26. Mai 2015, 11:45, insgesamt 4-mal geändert.
"Man übersah bei dieser geradezu kindisch anmutenden wissenschaftspolitischen Wichtigtuerei, dass nicht jeder exzellenter sein kann als alle anderen." (Dr. Prof. Matthias Binswanger)
Benutzeravatar
Spacerat
 
Beiträge: 607
Registriert: Donnerstag 9. April 2015, 02:29

Re: Problem mit MB-Verteilung

Beitragvon Spacerat » Sonntag 17. Mai 2015, 21:33

Hallo noch mal

Vielen Dank für eure Bemühungen, aber das Thema hat sich erledigt. Die Lösung sieht (wider erwarten ganz anders als die Formeln bei Wikipedia) so aus und wurde aus einem Java-Applet hergeleitet:
Code: Alles auswählen
// Die Boltzmann-Konstante ist nur fuer den Aufbau der Vorhersage
// einer MB-Verteilung erforderlich.
private static final double boltzmann = 1.3806488e-23;// Boltzmann-Konstante
private static final int[][] speedStats = new int[1][];
private static final double[][] maxwell = new double[1][];

double speed, speedSteps, scale;
int markedColoumn = -1;

public double init(Ball[] balls, int numColumns, double speed) {
   synchronized (maxwell) {
      this.speed = speed;
      maxwell[0] = new double[numColumns];
      speedStats[0] = new int[numColumns];
      speedSteps = speed * 4.0 / numColumns;
      scale = 0.0;
      final double mOverT = (speed * speed) / (boltzmann * 3);
      final double f1 = (1.0 / (boltzmann * mOverT))
            * Math.sqrt(1.0 / (boltzmann * mOverT))
            * Math.sqrt(2.0 / Math.PI);
      final double f2 = -0.5 / (boltzmann * mOverT);
      for (int n = 0; n < speedStats[0].length; n++) {
         speed = n * speedSteps;
         speed *= speed;
         maxwell[0][n] = f1 * speed * Math.exp(f2 * speed) * speedSteps
               * balls.length;
         if (scale < maxwell[0][n]) {
            scale = maxwell[0][n];
         }
      }
      return init(balls);
   }
}

Wie das Ganze funktioniert, ist mir nach wie vor ein Rätsel aber zumindest verteilen sich die Geschwindigkeiten der Simulation in etwa nach den in "maxwell[0][] errechneten Werten, ganz wie es sein soll.

Hier mal ein Link zu meinen bisherigen Bemühungen.
Siehe Opener...

Für die Anwendung ist eine JVM der Version 1.6 oder höher erforderlich, Quellcode anbei.
Zuletzt geändert von Spacerat am Donnerstag 21. Mai 2015, 11:36, insgesamt 1-mal geändert.
"Man übersah bei dieser geradezu kindisch anmutenden wissenschaftspolitischen Wichtigtuerei, dass nicht jeder exzellenter sein kann als alle anderen." (Dr. Prof. Matthias Binswanger)
Benutzeravatar
Spacerat
 
Beiträge: 607
Registriert: Donnerstag 9. April 2015, 02:29

Re: Problem mit MB-Verteilung

Beitragvon Struktron » Montag 18. Mai 2015, 15:46

Hallo alle miteinander,
Spacerat hat geschrieben:Hallo noch mal

Vielen Dank für eure Bemühungen, aber das Thema hat sich erledigt. Die Lösung sieht (wider erwarten ganz anders als die Formeln bei Wikipedia) so aus und wurde aus einem Java-Applet hergeleitet:
Code: Alles auswählen
// Die Boltzmann-Konstante ist nur fuer den Aufbau der Vorhersage
// einer MB-Verteilung erforderlich.
private static final double boltzmann = 1.3806488e-23;// Boltzmann-Konstante
private static final int[][] speedStats = new int[1][];
private static final double[][] maxwell = new double[1][];

double speed, speedSteps, scale;
int markedColoumn = -1;

public double init(Ball[] balls, int numColumns, double speed) {
   synchronized (maxwell) {
      this.speed = speed;
      maxwell[0] = new double[numColumns];
      speedStats[0] = new int[numColumns];
      speedSteps = speed * 4.0 / numColumns;
      scale = 0.0;
      final double mOverT = (speed * speed) / (boltzmann * 3);
      final double f1 = (1.0 / (boltzmann * mOverT))
            * Math.sqrt(1.0 / (boltzmann * mOverT))
            * Math.sqrt(2.0 / Math.PI);
      final double f2 = -0.5 / (boltzmann * mOverT);
      for (int n = 0; n < speedStats[0].length; n++) {
         speed = n * speedSteps;
         speed *= speed;
         maxwell[0][n] = f1 * speed * Math.exp(f2 * speed) * speedSteps
               * balls.length;
         if (scale < maxwell[0][n]) {
            scale = maxwell[0][n];
         }
      }
      return init(balls);
   }
}

Wie das Ganze funktioniert, ist mir nach wie vor ein Rätsel aber zumindest verteilen sich die Geschwindigkeiten der Simulation in etwa nach den in "maxwell[0][] errechneten Werten, ganz wie es sein soll.

Die Boltzmannkonstante sollte eigentlich nicht mit verwendet werden. Solche fertige Algorithmen lassen schwer den Inhalt erkennen. Bei mir geht es anschaulich nachvollziehbar, auch im ortslosen Gas. Nur Homogenität, Isotropie und die Kreiszahl werden voraus gesetzt.
Mein Bild 1 in Thermalisierung zur MB-Verteilung ist vielleicht nicht optimal, aber man sieht, wie aus beliebigen Geschwindigkeitsbeträgen nach wenigen Stößen MB-verteilte entstehen.
Spacerat hat geschrieben:Hier mal ein Link zu meinen bisherigen Bemühungen.
https://www.dropbox.com/s/a9vko54gao8cc ... r.jar?dl=0

Für die Anwendung ist eine JVM der Version 1.6 oder höher erforderlich, Quellcode anbei.

Eine Thermalisierung, welche eine MB-Verteilung erzeugt, sollte ja eigentlich auch an anderen Stellen gerechnet worden sein. Hat dazu schon mal jemand etwas gefunden?

MfG
Lothar W.
--
Erzeugen Stöße die Feinstrukturkonstante?
http://struktron.de
Benutzeravatar
Struktron
 
Beiträge: 468
Registriert: Mittwoch 5. Juni 2013, 11:37
Wohnort: Winter: Sarajevo, Sommer: Porec, offiziell (Geburtsort) Leipzig

Re: Problem mit MB-Verteilung

Beitragvon Spacerat » Montag 18. Mai 2015, 17:02

Hallo Lothar

Ja, ich habe dazu schon etwas gefunden und zwar ein Applet. Aus diesem habe ich mir zunächst nur das Diagramm reproduziert und als ich mit den Formeln der MB-Verteilung nicht klar kam, habe ich mir genauer angesehen, wie die es dort berechnen. Dann musste ich nur noch die Faktoren für Masse und Temperatur herausrechnen und schon konnte ich auch das Diagramm erstellen. Ich erstelle mit der Konstante auch nur dieses Diagramm, damit ich in der Betriebsart "DISTRIBUTED" die Geschwindigkeiten gemäß dieser vorverteilen kann. In dieser Betriebsart kann ich die Simulation deswegen bereits thermalisiert starten.
Ich werde mal versuchen, das Diagramm nach mathematischen Konventionen darzustellen. Evtl. kannst du dies dann auch für deine Simulation verwenden, weil dann keine Deltageschwindigkeit mehr durch die Thermalisierung verfälscht wird. Soweit ich das erkennen kann, passiert dies bei dir ja bei jedem Start.
"Man übersah bei dieser geradezu kindisch anmutenden wissenschaftspolitischen Wichtigtuerei, dass nicht jeder exzellenter sein kann als alle anderen." (Dr. Prof. Matthias Binswanger)
Benutzeravatar
Spacerat
 
Beiträge: 607
Registriert: Donnerstag 9. April 2015, 02:29

Re: Problem mit MB-Verteilung

Beitragvon Struktron » Montag 18. Mai 2015, 17:38

Hallo Hartmut,
Spacerat hat geschrieben:
Ja, ich habe dazu schon etwas gefunden und zwar ein Applet. Aus diesem habe ich mir zunächst nur das Diagramm reproduziert und als ich mit den Formeln der MB-Verteilung nicht klar kam, habe ich mir genauer angesehen, wie die es dort berechnen. Dann musste ich nur noch die Faktoren für Masse und Temperatur herausrechnen und schon konnte ich auch das Diagramm erstellen. Ich erstelle mit der Konstante auch nur dieses Diagramm, damit ich in der Betriebsart "DISTRIBUTED" die Geschwindigkeiten gemäß dieser vorverteilen kann. In dieser Betriebsart kann ich die Simulation deswegen bereits thermalisiert starten.
Ich werde mal versuchen, das Diagramm nach mathematischen Konventionen darzustellen. Evtl. kannst du dies dann auch für deine Simulation verwenden, weil dann keine Deltageschwindigkeit mehr durch die Thermalisierung verfälscht wird. Soweit ich das erkennen kann, passiert dies bei dir ja bei jedem Start.

Der Mechanismus der Thermalisierung in der Natur ist der Zufall. Fängt man nun beispielsweise mit lauter gleichen Geschwindigkeitsbeträgen an und auch alle Bewegungsrichtungen sind extrem geordnet, kommt es schon bei einer ganz kleinen Störung zu der beobachteten Thermalisierung. Noch extremer kann man mit lauter ruhenden Kugeln beginnen und nur eine einzige auf diese in einem beliebigen (auch deterministisch willkürlich ausgewähltem) Winkel stoßen lassen. Durch die Reflexion an den Wänden entstehen immer mehr chaotische neue Winkel und die Geschwindigkeitsbeträge ändern sich. Diese muss man speichern, sortieren und dann in das Häufigkeitsdiagramm einzeichnen. So kann man für jede Kugel Tabellen anlegen, was nach den ersten, zweiten,... Stößen heraus kommt. Das wird dann beispielsweise als Kurve gezeichnet und entwickelt sich zur Wahrscheinlichkeitsdichte. Wenn man ein Integral über so eine Kurve bildet, ergibt sich eine typische S-förmige Wahrscheinlichkeitsverteilung. Bei Übereinstimmung mit dem bekannten Graph der MB-Verteilung kann man davon ausgehen, das Gewünschte gezeigt zu haben.
Die erwähnten Integrale können auch als Summen ausgedrückt werden (bei numerischer Berechnung macht das Programm das sowieso). Ralf kann dazu vielleicht mehr sagen.

Meine Frage zu Veröffentlichungen über die Erzeugung der MB-Verteilung stellte ich schon mal am Anfang der Diskussion zur FSK. Es ist möglicherweise solches Allgemeingut, das in Physik-Übungen vorkommt und deshalb nicht als Lösung im Internet steht. Die Studenten sollen ja selbst was tun.

MfG
Lothar W.
--
Erzeugen Stöße die Feinstrukturkonstante?
http://struktron.de
Benutzeravatar
Struktron
 
Beiträge: 468
Registriert: Mittwoch 5. Juni 2013, 11:37
Wohnort: Winter: Sarajevo, Sommer: Porec, offiziell (Geburtsort) Leipzig

Re: Problem mit MB-Verteilung

Beitragvon Spacerat » Mittwoch 20. Mai 2015, 22:34

Heureka! Das Ganze funktioniert tatsächlich ohne Boltzmann-Konstante.

Code: Alles auswählen
   private static final double sqrt2overPi = sqrt(2.0 / PI);
   private static final int[][] speedStats = new int[1][];
   private static final double[][] maxwell = new double[1][];

   double speed, speedSteps, scale;
   int markedColoumn = -1;

   /**
    * Initialisiert die Winkel und Geschwindigkeiten der Kugeln je nach
    * gewaehlten Modus und gibt die initale Durchschnittsgeschwindigkeit
    * zurueck.
    *
    * @param balls
    * @param numColumns
    * @param speed
    * @return
    */
   public double init(Sphere[] balls, int numColumns, double speed) {
      synchronized (maxwell) {
         this.speed = speed;
         maxwell[0] = new double[numColumns];
         speedStats[0] = new int[numColumns];
         speedSteps = speed * 4.0 / numColumns;
         scale = 0.0;
         final double f0 = 3.0 / (speed * speed);
         final double f1 = f0 * sqrt(f0) * sqrt2overPi;
         final double f2 = -0.5 * f0;
         for (int n = 0; n < maxwell[0].length; n++) {
            speed = n * speedSteps;
            speed *= speed;
            maxwell[0][n] = f1 * speed * exp(f2 * speed) * speedSteps
                  * balls.length;
            if (scale < maxwell[0][n]) {
               scale = maxwell[0][n];
            }
         }
         return init(balls);
      }
   }

In dem Array befinden sich nun die Anzahl der Kugeln, die in den Intervallen verteilt werden müssen und die Interval-Breite (also die dort gezählten Geschwindigkeiten) in speedSteps. Letztere müssen bei der Geschwindigkeitsverteilung ("init(balls)") nur aufaddiert werden und dann können Geschwindigkeiten zwischen n*speedStep und (n+1)*speedStep zufällig initialisiert werden. So startet die Anwendung im Modus "DISTRIBUTED".

Mathematisch sieht das Ganze etwa so aus. "Etwa" weil ich kein Plan habe, wie man mathematisch eine Schleife darstellt.
MB-Verteilung.png
MB-Verteilung.png (12.85 KiB) 14636-mal betrachtet


Hier noch mal eine finale Version:
https://www.dropbox.com/s/so1v9m1cn932h ... 1.jar?dl=0

Änderungen gegenüber ihren letzten Vorgänger belaufen sich auf eine variable Anzahl an Kugeln und einer 2-Seiten-Ansicht des Gases. Letzteres verringert das Volumen des Gases und so werden dann bei entsprechender Menge Kugeln auch wieder mehr Stöße produziert.
Für die Ausführung ist nach wie vor wieder eine JVM 1.6+ erforderlich und der Quelltext liegt auch wieder anbei. Fragen, Wünsche und Vorschläge bitte hier äußern.

MfG
Hartmut
"Man übersah bei dieser geradezu kindisch anmutenden wissenschaftspolitischen Wichtigtuerei, dass nicht jeder exzellenter sein kann als alle anderen." (Dr. Prof. Matthias Binswanger)
Benutzeravatar
Spacerat
 
Beiträge: 607
Registriert: Donnerstag 9. April 2015, 02:29

Re: Problem mit MB-Verteilung

Beitragvon Struktron » Mittwoch 20. Mai 2015, 23:44

Hallo Hartmut,
Spacerat hat geschrieben:Heureka! Das Ganze funktioniert tatsächlich ohne Boltzmann-Konstante.

Code: Alles auswählen
   private static final double sqrt2overPi = sqrt(2.0 / PI);
   private static final int[][] speedStats = new int[1][];
   private static final double[][] maxwell = new double[1][];

   double speed, speedSteps, scale;
   int markedColoumn = -1;

   /**
    * Initialisiert die Winkel und Geschwindigkeiten der Kugeln je nach
    * gewaehlten Modus und gibt die initale Durchschnittsgeschwindigkeit
    * zurueck.
    *
    * @param balls
    * @param numColumns
    * @param speed
    * @return
    */
   public double init(Sphere[] balls, int numColumns, double speed) {
      synchronized (maxwell) {
         this.speed = speed;
         maxwell[0] = new double[numColumns];
         speedStats[0] = new int[numColumns];
         speedSteps = speed * 4.0 / numColumns;
         scale = 0.0;
         final double f0 = 3.0 / (speed * speed);
         final double f1 = f0 * sqrt(f0) * sqrt2overPi;
         final double f2 = -0.5 * f0;
         for (int n = 0; n < maxwell[0].length; n++) {
            speed = n * speedSteps;
            speed *= speed;
            maxwell[0][n] = f1 * speed * exp(f2 * speed) * speedSteps
                  * balls.length;
            if (scale < maxwell[0][n]) {
               scale = maxwell[0][n];
            }
         }
         return init(balls);
      }
   }

In dem Array befinden sich nun die Anzahl der Kugeln, die in den Intervallen verteilt werden müssen und die Interval-Breite (also die dort gezählten Geschwindigkeiten) in speedSteps. Letztere müssen bei der Geschwindigkeitsverteilung ("init(balls)") nur aufaddiert werden und dann können Geschwindigkeiten zwischen n*speedStep und (n+1)*speedStep zufällig initialisiert werden. So startet die Anwendung im Modus "DISTRIBUTED".

Mathematisch sieht das Ganze etwa so aus. "Etwa" weil ich kein Plan habe, wie man mathematisch eine Schleife darstellt.
MB-Verteilung.png


Hier noch mal eine finale Version:
https://www.dropbox.com/s/so1v9m1cn932h ... 1.jar?dl=0

Änderungen gegenüber ihren letzten Vorgänger belaufen sich auf eine variable Anzahl an Kugeln und einer 2-Seiten-Ansicht des Gases. Letzteres verringert das Volumen des Gases und so werden dann bei entsprechender Menge Kugeln auch wieder mehr Stöße produziert.
Für die Ausführung ist nach wie vor wieder eine JVM 1.6+ erforderlich und der Quelltext liegt auch wieder anbei. Fragen, Wünsche und Vorschläge bitte hier äußern.

Das Grundgerüst hast Du. Jetzt wäre interessant, mit unterschiedlichen Werten beginnen zu können. Beispielsweise lauter gleich schnelle oder alles ruhende. Dann eine mit einem beliebigen Wert. Sie sollten sich dann auf dem Häufigkeitsdiagramm verteilen. Wenn Du dann noch die Intervalle immer schmaler machst, entsteht daraus die Wahrscheinlichkeitsdichte der MB-Verteilung.
Später kannst Du noch in Wikpedia nachlesen, wie das mit den anderen Wahrscheinlichkeitsverteilungen (z.B. Poissonverteilung) zusammen hängt. Und vielleicht kommen dann noch die Ideen, alle möglichen Parameter dazu auszurechnen,...
MfG
Lothar W.
--
Erzeugen Stöße die Feinstrukturkonstante?
http://struktron.de
Benutzeravatar
Struktron
 
Beiträge: 468
Registriert: Mittwoch 5. Juni 2013, 11:37
Wohnort: Winter: Sarajevo, Sommer: Porec, offiziell (Geburtsort) Leipzig

Re: Problem mit MB-Verteilung

Beitragvon Spacerat » Donnerstag 21. Mai 2015, 04:58

Hallo Lothar

Struktron hat geschrieben:Das Grundgerüst hast Du. Jetzt wäre interessant, mit unterschiedlichen Werten beginnen zu können. Beispielsweise lauter gleich schnelle oder alles ruhende. Dann eine mit einem beliebigen Wert.
Öhm... lade die Anwendung herunter und spiele ein wenig mit den Optionen. In diesem Fall vorzugsweise mit der Betriebsart distribution, also THERMALISING, DISTRIBUTED oder RANDOM.
Struktron hat geschrieben:Sie sollten sich dann auf dem Häufigkeitsdiagramm verteilen.
Sie verteilen sich zwar gemäß einer MB-Verteilung, aber nicht gemäß der errechneten. Das habe ich zwar auch versucht hinzubekommen, hat aber nicht funktioniert.
Struktron hat geschrieben:Wenn Du dann noch die Intervalle immer schmaler machst, entsteht daraus die Wahrscheinlichkeitsdichte der MB-Verteilung.
Ich weiß das bereits. Ich lasse die Anwendung ja auch viel öfters laufen.
Struktron hat geschrieben:Später kannst Du noch in Wikpedia nachlesen, wie das mit den anderen Wahrscheinlichkeitsverteilungen (z.B. Poissonverteilung) zusammen hängt.
Mal schauen...
Struktron hat geschrieben:Und vielleicht kommen dann noch die Ideen, alle möglichen Parameter dazu auszurechnen,...
Erst mal wird es wichtig, dass du die korrekten Rückschlüsse hinsichtlich deiner These über die FSK aus dieser Simulation ziehst. Verstehst, wie sie arbeitet und auch, warum Rückkopplunen der Ergebnisse zwar möglich, aber nicht Sinnvoll sind.

Ich habe ja immer noch Hoffnung, dass ein Unabhängiger, der sich ein wenig mit Java (oder ähnlichen Programmiersprachen) auskennt und dem die Problematik deiner These geläufig ist, sich über den beiliegenden Quelltext her macht und meine Argumente widerlegt oder bestätigt. Du scheinst mir für diesen Job nicht der Richtige zu sein, den erstens scheinen deine Java-Kenntnisse nicht auszureichen und zweitens bist du deiner These gegenüber viel zu voreingenommen, um sie von einem Laien als widerlegt betrachten zu können.

Aber ich sage es mal so: Die einzige Ordnung in dem Chaos ist die MB-Verteilung. Es stellen sich zwar gemäß deiner Rechnungen lt. Arbeitsblatt immer genauere Werte für Delta_V ein, aber die FSK*4*PI lässt sich da nur selten blicken.
Nun versuche ich mal als nächstes für die Bereiche BOX und SPHERE eine weitere zu erstellen, was zumindest bei SPHERE und vorallem mit zu wenigen Kugeln recht schwierig sein dürfte. Ich gehe mal davon aus, dass es in dieser Betrachtung nicht anders aussehen wird.

MfG
Hartmut
"Man übersah bei dieser geradezu kindisch anmutenden wissenschaftspolitischen Wichtigtuerei, dass nicht jeder exzellenter sein kann als alle anderen." (Dr. Prof. Matthias Binswanger)
Benutzeravatar
Spacerat
 
Beiträge: 607
Registriert: Donnerstag 9. April 2015, 02:29

Re: Problem mit MB-Verteilung

Beitragvon Spacerat » Donnerstag 21. Mai 2015, 11:00

Hallo Lothar
Nun ist mir ganz konkret ein Fehler in deiner Denkweise aufgefallen.
Nehmen wir mal als Geschwindigkeitsvorgabe 0,1, errechnen daraus die MB-Verteilung, verteilen die Geschwindigkeiten der Kugeln gemäß dieser Verteilung und führen Stöße durch. Was denkst du wie hoch die höchsten Delta_Vs sind, und wie hoch die wahrscheinlichsten?

Geschwindigkeiten höher als 0,1 * 4 also 0,4 sind schon sehr unwahrscheinlich. Die wahrscheinlichste ist 0,08 und die Grenzwerte der MB-Verteilung 0,008 - 0,24, wobei diese aber ebenfalls noch sehr unwahrscheinlich sind. Die mittlere Geschwindigkeit würde so bei 0,096 liegen und die DeltaVs sich bei etwa 10% davon (0,0096) einpendeln, wenn man Glück hat. Eine FSK kann auf die Art gar nicht zustande kommen. Für den Fall, dass du nicht weißt, wovon ich rede - Die DeltaVs sind definitiv von der Durchschnittsgeschindigkeit der einzelnen diskreten Objekte abhängig, egal wie du sie betrachtest. Speziell für dich habe ich die Standardbetriebsart der Simulation mal auf DISTRIBUTED gestellt.

Ich habe mich entschlossen, nur noch eine Version meiner Simulation zu pflegen und werde diese im Opener dieses Fadens verlinken und aktuell halten. Das schont nicht nur den Speicher meiner DropBox, es ist auch um einiges übersichtlicher.
"Man übersah bei dieser geradezu kindisch anmutenden wissenschaftspolitischen Wichtigtuerei, dass nicht jeder exzellenter sein kann als alle anderen." (Dr. Prof. Matthias Binswanger)
Benutzeravatar
Spacerat
 
Beiträge: 607
Registriert: Donnerstag 9. April 2015, 02:29

Re: Problem mit MB-Verteilung

Beitragvon Struktron » Donnerstag 21. Mai 2015, 13:50

Hallo Hartmut,
Spacerat hat geschrieben:
Struktron hat geschrieben:Das Grundgerüst hast Du. Jetzt wäre interessant, mit unterschiedlichen Werten beginnen zu können. Beispielsweise lauter gleich schnelle oder alles ruhende. Dann eine mit einem beliebigen Wert.
Öhm... lade die Anwendung herunter und spiele ein wenig mit den Optionen. In diesem Fall vorzugsweise mit der Betriebsart distribution, also THERMALISING, DISTRIBUTED oder RANDOM.

Das habe ich, vermisse aber beispielsweise den Komfort der Anfanfswert-Einstellungen, wie sie Lambiotte bietet.
Spacerat hat geschrieben:
Struktron hat geschrieben:Sie sollten sich dann auf dem Häufigkeitsdiagramm verteilen.
Sie verteilen sich zwar gemäß einer MB-Verteilung, aber nicht gemäß der errechneten. Das habe ich zwar auch versucht hinzubekommen, hat aber nicht funktioniert.

Das wird funktionieren, nur Geduld. Kleine (Tipp-) Fehler erkannt man am schwierigsten.
Spacerat hat geschrieben:
Struktron hat geschrieben:Wenn Du dann noch die Intervalle immer schmaler machst, entsteht daraus die Wahrscheinlichkeitsdichte der MB-Verteilung.
Ich weiß das bereits. Ich lasse die Anwendung ja auch viel öfters laufen.
Struktron hat geschrieben:Später kannst Du noch in Wikpedia nachlesen, wie das mit den anderen Wahrscheinlichkeitsverteilungen (z.B. Poissonverteilung) zusammen hängt.
Mal schauen...
Struktron hat geschrieben:Und vielleicht kommen dann noch die Ideen, alle möglichen Parameter dazu auszurechnen,...
Erst mal wird es wichtig, dass du die korrekten Rückschlüsse hinsichtlich deiner These über die FSK aus dieser Simulation ziehst. Verstehst, wie sie arbeitet und auch, warum Rückkopplunen der Ergebnisse zwar möglich, aber nicht Sinnvoll sind.

Diese Rückschlüsse habe ich gezogen und mehrmals erwähnt. In (Deiner) klassischen Simulation wird durch das entstehende Chaos jede Struktur vernichtet. Rückkopplungen, welche das machen, was die Natur auch im Vakuum macht, "zappeln" nach Deinen Worten herum. Das ist seit Dirac bekannt und nennt sich Zitterbewegung.
Andererseits wissen wir, dass es in der Natur stabile Systeme gibt. Bei Gitterrechnungen der Quantenchromodynamik werden die Rückkopplungen verwendet. Das ganze Verfahren ist sehr kompliziert und bisher nicht auf so ein einfaches System wie die harten Kugeln, mit denen wir hier rechnen, übertragen. Geistfelder, Gluonen,... und ein gleitender Kopplungsfaktor sind für Dich sicher noch nicht aktuell. Die Thermalisation zur MB-Verteilung aber schon. Und dann kannst Du Dir was zur konstanten Ausbreitungsgeschwindigkeit von Störungen in dem Medium überlegen. Das könnte Dir bei Deinen anderen Diskussionen helfen.
Spacerat hat geschrieben:Ich habe ja immer noch Hoffnung, dass ein Unabhängiger, der sich ein wenig mit Java (oder ähnlichen Programmiersprachen) auskennt und dem die Problematik deiner These geläufig ist, sich über den beiliegenden Quelltext her macht und meine Argumente widerlegt oder bestätigt. Du scheinst mir für diesen Job nicht der Richtige zu sein, den erstens scheinen deine Java-Kenntnisse nicht auszureichen und zweitens bist du deiner These gegenüber viel zu voreingenommen, um sie von einem Laien als widerlegt betrachten zu können.

Aber ich sage es mal so: Die einzige Ordnung in dem Chaos ist die MB-Verteilung. Es stellen sich zwar gemäß deiner Rechnungen lt. Arbeitsblatt immer genauere Werte für Delta_V ein, aber die FSK*4*PI lässt sich da nur selten blicken.

Ja, genau so ist es. Nur meine These hat mit Java oder einem CAS nichts zu tun. Das ist Physik und nicht Mathematik. Dass die Zahlen in jeder Programmiersprache und mit jedem CAS heraus kommen, ist bestätigt. Es ändert aber nichts an der Notwendigkeit der geometrischen physikalischen Ausweitung der Rechnungen in Raum und Zeit. Bei Dir fehlt aber die Durchschnittsbildung der sich zeigenden Werte. Eine Zahl. Und dann der Graph mit der MB-Verteilung (bzw. deren Wahrscheinlichkeitsdichte) zum Vergleich.
Spacerat hat geschrieben:Nun versuche ich mal als nächstes für die Bereiche BOX und SPHERE eine weitere zu erstellen, was zumindest bei SPHERE und vorallem mit zu wenigen Kugeln recht schwierig sein dürfte. Ich gehe mal davon aus, dass es in dieser Betrachtung nicht anders aussehen wird.

Irgend wann einmal kannst Du Dir überlegen, was aus der Unkenntnis (mit einer Wahrscheinlichkeitsverteilung) von Teilchenorten folgt?

MfG
Lothar W.
--
Erzeugen Stöße die Feinstrukturkonstante?
http://struktron.de
Benutzeravatar
Struktron
 
Beiträge: 468
Registriert: Mittwoch 5. Juni 2013, 11:37
Wohnort: Winter: Sarajevo, Sommer: Porec, offiziell (Geburtsort) Leipzig

Nächste

Zurück zu Small Talk

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste