2 Sonnen und ein Doppelschatten

MichaMedia

Registriertes Mitglied
Hallo Mac,

Danke für das Aufbrummen an Arbeit :D
Ich werde das System dann so aufbauen.

Da McSteve es Ansprach, das ich vieleicht die Rotationszeit bestimme, würde ich zwischen 28 und 30 Stunden tendieren, exakte 28,5 würden einen Angenehmen Tag bilden, wobei 18 oder nur 20 sicherlich in so einer Konstalation anderes hervorbringt, als Menschenähnlich, meiner Meinung nach.

Ansonsten finde ich beim Überfliegen der Daten das System nicht schlecht, Kelvin oder RGB Werte der Sterne würden noch gut tun für mein Nachbau und Umas Meinung.

Ich bin mir nicht sicher, da ich erlich auch nicht allzuviel Ahnung davon habe, aber sind die beiden mittleren Sterne Stabil genug, wirkt mir wie ein Fangspiel, jeder fängt jeden?
Wie wirkt sich deren Schwerpunkt Veränderung innerhalb des Systems auf die Planetenbahnen aus, ok es reicht die Kreisform, aber die Kloppe in der Mitte wirkt mir recht radikal :D

Gruß Micha.
 

mac

Registriertes Mitglied
Hallo Michael,

Da McSteve es Ansprach, das ich vieleicht die Rotationszeit bestimme, würde ich zwischen 28 und 30 Stunden tendieren, exakte 28,5 würden einen Angenehmen Tag bilden, wobei 18 oder nur 20 sicherlich in so einer Konstalation anderes hervorbringt, als Menschenähnlich, meiner Meinung nach.
Einverstanden. Im Interesse der Glaubwürdigkeit mache ich daraus 28h 29' 16,031151" Sonnentaglänge.



Ansonsten finde ich beim Überfliegen der Daten das System nicht schlecht, Kelvin oder RGB Werte der Sterne würden noch gut tun für mein Nachbau und Umas Meinung.
Danke! Hab' ich nachgeholt :eek:. Ja, auf die bin ich auch gespannt.

Ich bin mir nicht sicher, da ich erlich auch nicht allzuviel Ahnung davon habe, aber sind die beiden mittleren Sterne Stabil genug, wirkt mir wie ein Fangspiel, jeder fängt jeden?
Die kommen sich im Laufe der Zeit immer näher. Bei dem Abstand dauert das aber noch sehr lange. Ist aber ein guter Hinweis. Vielleicht sollte ich AB 1 auch entfernen? Mal sehen was UMa sagt. Ich kann das leider bisher nicht Simulieren.

Im jetzigen Zustand brauchst Du Dir wegen den Beiden keine Sorgen zu machen. Das System hat im jetzigen Zustand eine Vorlaufzeit von 10000 Jahren bis zum Tag 1 klaglos überstanden. :D Wie gesagt, einige Entwurfsplaneten wurden in der Versuchsphase rausgekegelt.

Siehe auch: http://de.wikipedia.org/wiki/Doppelstern

aber die Kloppe in der Mitte wirkt mir recht radikal
Sowas gibt es in der Natur gar nicht so selten. Bis hin zu Kontakt-Doppelsternen. Spätestens in einigen hundert millionen Jahren ist's aber vorbei. Wenn Alden A ein roter Riese wird, dann wird er von Alden B gefressen und der platzt daran. Bis dahin muß Alden geräumt sein und Alden System darf bis auf Weiteres nur weitläufig Umschifft werden. :D

Herzliche Grüße

MAC
 

mac

Registriertes Mitglied
Hallo Michael,

hier jetzt doch schon die Durchmesser:

Für die Sterne habe ich LStern/L0 und die temperaturabhängige Abstrahlleistung pro Fläche verwendet, um auf den dafür nötigen Durchmesser umzurechnen.

Aldensystem:

A:
2,256E6 km

B:
2,089E6 km

AB 1
28166 km

AB 2
7065 km

AB 3
7641 km

C = AB 4 = Aldens Sonne:
1,079E6 km

C 1
9169 km

C 2 = Planet Alden
9452 km

C 2 a = Aldens Mond
2651 km

AB 5
120221 km

AB 6
95760 km

Herzliche Grüße

MAC
 

McSteve

Registriertes Mitglied
Schön, mal sehen welche Fragen da auftauchen:

Von den vielen Stunden, wieviele werden da etwa Tag sein, wieviele Nacht und ist es Mittags zu heiss um zu reisen oder zu arbeiten? Na, ich denke das erfahre ich nachher im "Gesamtpaket" :))

Bei den vielen A1 bis C5... welcher ist die 2te Sonne? Oder wie kommen wir an den Doppelschatten?

Kennt Ihr den schon?
2 Borg kommen auf Alden in ein Grub - Inn:
"Wir sind die Borg, Wiederstand ist zwecklos, Zwei mal "Delmen Nuggets" aber schnell!" Grinst der Wirt (ein Flederer): "Werd' ich sonst assimiliert?"

Literarische Verzweiflungstat

Okay, ich bin weg

@ pauli
Des sind koa Bayern, des sind Aldener und dera Autor, des ist a Preuss! Da guibts koa Watsch'n und koa dritte Dimension - aber a Bier, des habns schon erfunden :))
 

UMa

Registriertes Mitglied
Hallo MAC,

wichtig ist, dass am Ende nach n Zeitschritten wieder Ort und Geschwindigkeit am gleichen Zeitpunkt bekannt sind.
Schleifen über die Anzahl der Körper erspare ich mir aus Gründen der Übersichtlichkeit.
Für die s[j] ist die harmonische Folge s[j]=j am schnellsten, erzeugt aber auch die höchsten Rundungfehler (die mit dem Faktor fakt in jedem Schritt verstärkt werden) was die maximale Genuigkeit auf 13 bis 14 Stellen statt 15 begrenzt.
(Für nach geringere Rundungsfehler kannst du eine schneller wachsende Folge nehemen z.B. Fibonacci s[j=1..6]=1;2;3;5;8;13;21..., damit wird der Algorithmus aber auch etwas langsamer, jede beliebige andere wachende Folge kann auch genommen werden.)
Der Fehler sollte sich proportional zu DT^(2*ex) entwickeln, was du zum Testen auf Fehler nutzen kannst. Beispielsweise sollte bei ex=6 sich der Fehler um den Faktor 2^12 verringern, wenn du die Schrittweite DT halbierst. Bei ex=6 und harmonischer Folge (empfohlen) werden nur 21 (statt 6 ohne Extrapolation bei kleinstem dt) Beschleunigungsbrechnungen benötigt. Der overhead hält sich also in Grenzen.
Hoffentlich habe ich keine Tip- oder Indexfehler gemacht. Teste das ganze erstmal mit ex=1; 2 usw.

Die Fehlerschätzer fehlerx und fehlerv sind die Summe der Fehlerquadrate zum zweitbesten Wert und i.a. deutlich größer als der Fehler der Werte in xe[1],ve[1].
Er kann dazu benutzt werden, um die große Schrittweite DT für den nächsten Schritt zu variieren. Außerdem kann er dazubenutzt werden enen weiteren Extrapolationschritt zu machen, falls der gewünschte Fehler noch nicht erreicht ist. In diesem fall ist die for j=1:ex Schleife durch einen Schleife mit Endabruch bezüglich der Fehlergröße zu ersetzen. Für festes DT und ex ist die Berechnung der Fehlerschätzer nicht notwendig. Die Fehlerschätzer geben das Quadrat des Fehler wieder.
Algorithmus1 ist der Algorithmus aus meinen vorherigen Beitrag.
Du kannst auch zuerst die Beschleunigung berechnen und einen halben Geschwindigkeitsschritt machen. Dann benötigst du jedoch eine Berechnung der Beschleunigung mehr. Du solltest dann die Beschleunigung zum Anfangszeitpunkt speichern um sie nicht ex-mal neu berechnen zu müssen.

Möglicherweise kann man sich auch ein paar umkopieren von x und v sparen.

Grüße UMa

Algorithmus für EINEN großen Zeitschritt

// DT großer Zeitschritt
// ex Anzahl der Extrapolationsstufen (am besten 6 oder 7)
// speichere gegenwärtigen Ort und Geschwindigkeit, wird noch gebraucht in xa und va
// x und v enthält Ort und Geschwindigkeit zum Zeitpunkt t
xa=x
va=v
for j=1:ex
x=xa
v=va
dt=DT/s[j]
// berechne neue x,v zum Zeitpunkt t+DT mit obigen Algoritmus in n=s[j] Schritten und Schrittweite DT
[x,v]=Algorithmus1(x,v,dt,n=s[j])
xe[j]=x
ve[j]=v
if j>1
// Extrapolationschritt
for k=j-1:-1:1 // Rückwärtsschleife von j-1 bis 1
fakt=1/(sqr(j/k)-1)
xe[k]=xe[k+1]+(xe[k+1]-xe[k])*fakt
ve[k]=ve[k+1]+(ve[k+1]-ve[k])*fakt
endfor
// Fehlerberechnung
fehlerx=summe((xe[1,:]-xe[2,:])^2)
fehlerv=summe((ve[1,:]-ve[2,:])^2)
endif
endfor
x=xe[1]
v=ve[1]
// nun enthält x und v Ort und Geschwindigkeit zum Zeitpunkt t+DT
 

mac

Registriertes Mitglied
Hallo UMa,

erst mal vielen Dank für Deine Zeit und Deine Bereitschaft mir zu helfen.

Ich habe mindestens an zwei Stellen nicht sicher genug verstanden, was die Syntax die Du verwendest, bedeutet.

for k=j-1:-1:1 // Rückwärtsschleife von j-1 bis 1

welche Werte durchläuft k und j hier? -1, 0, 1 ? Warum nennst Du das dann Rückwärtsschleife? Im Prinzip kann ich bei der Syntax nicht zuordnen was für k und was für j gilt.
Z.B. bei der Schreibweise for j=1:ex denke ich, daß hier j von 1 bis ex mit der Schrittweite +1 durchläuft. Aber in der Schreibweise k= j-1:-1:1 ist nochmal eine weitere Zuweisungsvorschrift verschachtelt, deren Hierarchiereihenfolge ich nicht kenne.



fehlerx=summe((xe[1,:]-xe[2,:])^2)
bei dieser Schreibweise kenne ich die Bedeutung von xe[1,:]-xe[2,:] nicht.

Welcher Unterschied besteht zwischen ( und [ ?
Was bedeutet 2,: ?
Ist das – Zeichen hier ein Minuszeichen oder bedeutet es bis? (wie bei der EXCEL Syntax der Doppelpunkt zwischen ‚von‘ und ‚bis‘ bei einer Summendefinition)?



Herzliche Grüße

MAC
 

UMa

Registriertes Mitglied
Hallo MAC,

zuerst, mir ist bei der Verallgemeinerung auf beliebige s[j] ein Fehler unterlaufen. Obiger Algorithmus funktioniert nur für s[j]=j, es sei denn
fakt=1/(sqr(j/k)-1)
wird durch
fakt=1/(sqr(s[j]/s[k])-1)
ersetzt.

for k=j-1:-1:1 // Rückwärtsschleife von j-1 bis 1
ist nur eine Schleife mit Laufvariable k
k durchläuft die Werte j-1, j-2, j-3, ... , 3, 2, 1

Zitat:"Z.B. bei der Schreibweise for j=1:ex denke ich, daß hier j von 1 bis ex mit der Schrittweite +1 durchläuft. "
richtig

fehlerx=summe((xe[1,:]-xe[2,:])^2)

würde ausgeschriebener heißen:

// N Anzahl der Körper
fehlerx=0
for i=1:3*N
fehlerx=fehlerx+sqr(xe[1,i]-xe[2,i])
endfor
//

Wobei in xe[1,1] xe[1,2] xe[1,3] die x,y,z Koordinaten des ersten Körpers stehen in xe[1,4] die x Koordinete des 2. Körpers.
sqr istgleich ^2 , also Quadratfunktion.

[] Verwende ich bei Arrays, () sind es normale Klammern. - ist Minus


Grüße UMa
 

UMa

Registriertes Mitglied
Hallo MAC,

die beiden Sterne in der Mitte dürften ihre Bahn nur wenig Entwickeln. Es wird nur durch die Gezeiten die Exzentritität verändert sowie die Rotationszeiten an die Bahnperiode angepasst. Der Bahndrehimpuls dominiert und sollte sich nur wenig verändern. die Vorzeichen der Veränderung hängen davon ab wie die Rotationsperioden sich zur Umlaufzeit verhalten. Da die Gezeitenreibung in Sternen und Gasplaneten sehr gering ist, dürften die langsamen Veränderungen noch nicht abgeschlossen sein.

Mir ist nur nicht ganz die Notwendigkeit der zwei inneren Sterne klar. Ein Stern mit 1,2-1,25 Sonnenmassen würde es doch auch tun, zur Not auch im Unterriesenstadium?
Wie du die BaSTI-Werte richtig interpolieren musst habe ich schon oben geschrieben.

Abgesehen davon ist ein Tripelsternsystem natürlich auch Bahnberechnungsmäßig interessanter.

Grüße UMa
 
Zuletzt bearbeitet:

mac

Registriertes Mitglied
Hallo UMa,

es hat etwas gedauert, weil Dienstag mein Chortag ist. :)

UMa schrieb:
sqr istgleich ^2 , also Quadratfunktion.
Oh! Böse Falle! Gut daß ich gefragt hab‘. In allen ‚Sprachen und Dialekten‘ die ich kenne, bedeutet sqr oder sqrt Square-Root.

UMa schrieb:
Die Fehlerschätzer fehlerx und fehlerv sind die Summe der Fehlerquadrate zum zweitbesten Wert und i.a. deutlich größer als der Fehler der Werte in xe[1],ve[1].
bedeutet das, daß für fehlerx immer nur die xe[1] und xe[2] Werte verwendet werden und für die Indices > 2 gar nicht erst ausgerechnet werden müssen?

Ich hab‘ die Erweiterung des Programms nochmal etwas ausführlicher aufgeschrieben und hoffe daß ich es formal richtig habe. Um’s wirkliche Verstehen muß ich mich noch kümmern.

Vorab aber noch eine Frage: Du setzt die Fibonacci-Reihe [1,2,3,5,8,13,21] mit s[j = 1 bis 6] gleich. Wieso nicht mit s[j = 1 bis 7] oder s[j = 0 bis 6]?

Die Unterstriche zum Einrücken zwingt mir dieser Editor hier auf. :(
Dim N ___________________________// Anzahl der Objekte
N = Anzahl der Objekte
Dim X[1:N,1:3]____________________// Positionen in x, y und z
Dim V[1:N , 1:3]___________________// Geschwindigkeiten in x, y und z
Dim ex ___________________________//Anzahl der Extrapolationsstufen
ex = 7
Dim Xe[1:ex,1:N,1:3]_______________// Extrapolierte Positionswerte
Dim Ve[1:ex,1:N,1:3]_______________// Extrapolierte Geschwindigkeitswerte
Dim Xalt[1:N,1:3]__________________// Archiv für die Ausgangswerte dieses Schrittes
Dim Valt[1:N,1:3]
Dim s[ex]_________________________// Faktor für die Testschrittweiten
Dim kleinsterZeitschritt
Dim größterZeitschritt
Dim AktuellerZeitpunkt
Dim faktor________________________// Extrapolationsfaktor
Dim dt___________________________// Zeitteilschritt um zu DT zu kommen
Dim Dt___________________________// maximaler Zeitschritt der noch getestet wird
Dim n____________________________// Anzahl der Zeitschritte die sich aus Dt/dt ergibt
Dim i, j, k_________________________// Laufvariable

...
...
...
// Do dieses Programm so lange, bis der gewünschte Gesamtzeitrahmen erfüllt ist.
DT = größterZeitschritt
// erst mal Startwerte beschaffen
AktuellerZeitpunkt = 0
kleinsterZeitschritt = 10_______________________________// Sekunden
größterZeitschritt = 10 * 21____________________________// 10 * 7te Fibonacci-Zahl
j = 1
s[j]=1
dt = kleinsterZeitschritt _______________________________// oder muß das hier dt = DT lauten?
(X[ 1:N,1:3 ] , V[1:N ,1:3 ])=Algorithmus1(X[1:N,1:3 ] , V[1:N,1:3 ],dt,n=s[j])

// Zuordnung der Fibonacci-Zahlen
s[2] = 1
For j = 3 To ex
s[j]=s[j-1]+s[j-2]
Next j

// Archivieren der Startwerte
Xalt[1:N,1:3] = X[1:N,1:3]
Valt[1:N,1:3] = V[1:N,1:3]

for j=1 to ex

_____X[1:N,1:3] = Xalt[1:N,1:3]
_____V[1:N,1:3] = Valt[1:N,1:3]
_____dt = DT / s[j]
_____// berechne neue X,V zum Zeitpunkt t+DT mit obigem Algoritmus1 in n=s[j] Schritten und _____// Schrittweite DT
_____// hast Du geschrieben, aber es müßte dt heißen, vermute ich.
_____(X[ 1:N,1:3 ] , V[1:N ,1:3 ])=Algorithmus1(X[1:N,1:3 ] , V[1:N,1:3 ],dt,n=s[j])

_____xe[j,1:N,1:3]=X[1:N,1:3]
_____ve[j,1:N,1:3]=V[1:N,1:3]
_____If j>1
__________// Extrapolationschritt
__________For k = j - 1 Bis 1 Schrittweite -1
_______________faktor = 1 / ((s[j]/s[k])^2 - 1)
_______________xe[k,1:N,1:3]=xe[k+1,1:N,1:3]+(xe[k+1,1:N,1:3]-xe[k,1:N,1:3])*faktor
_______________ve[k,1:N,1:3]=ve[k+1,1:N,1:3]+(ve[k+1,1:N,1:3]-ve[k,1:N,1:3])*faktor
__________Next k
__________// Fehlerberechnung
_________ fehlerx=0
__________fehlerx = fehlerx + (xe[1,1:N,1:3] - xe[2,1:N,2,1:3])^2 _______// Zu den Indices:
__________fehlerv = fehlerv + (ve[1,1:N,1:3] -ve[2,1:N,1:3])^2 ________// Siehe Frage oben
_____EndIf
Next j
X[1:N,1:3] = xe[1,1:N,1:3]
V[1:N,1:3] = ve[1,1:N,1:3]
// nun enthält x und v Ort und Geschwindigkeit zum Zeitpunkt t+DT
AktuellerZeitpunkt=AktuellerZeitpunkt + DT
// Until der gewünschte Gesamtzeitrahmen erfüllt ist. Siehe oben

Herzliche Grüße

MAC

PS. Mein Perfektionismus und dieser Editor ... :mad:
 
Zuletzt bearbeitet:

mac

Registriertes Mitglied
Hallo UMa,

Wenn ich solare Metallizität, Eta=0,2 und ein Systemalter von 4,5 E9 Jahren annehme und ins Unterriesenstadium ausweiche (benimmt sich ein Stern in dieser Phase eigentlich noch so, daß er seine System schonend behandelt?) dann kann ich 1,25 M0 und 4,5 L0 als Zentralstern einsetzen und 0,8 M0 und 0,284 L0 als Sonne Aldens. Das ergibt bei geeigneten und stabilen Umlaufbahnen ein Leuchtkraftverhältnis von 1 zu 2 und eine Jahreslänge von 208 Tagen. In der Zeit von 3,95E9 bis 4,5E9 Jahren hatte Alden dann eine Solarkonstante von 96,1% bis 99% der Erde. In der Zeit vor 3,92E9 Jahren lag die Solarkonstante bei 92% und weniger.

Bleibe ich auf der Hauptreihe, dann kann ich bei einem Systemalter von 4,2E9 Jahren maximal 1,22 M0 einsetzen.

Bei der Kombination 1,22 M0 und 0,8 M0 kann ich bestenfalls ein Verhältnis 1 zu 2,8 bei den Leuchtstärken am Planeten erreichen und eine Jahreslänge von 163 Tagen.

Bei der Kombination 1,22 und 0,7 kann ich zwar ein Verhältnis 1 zu 1,6 erreichen, habe dann aber eine Jahreslänge für Alden von 139 Tagen.

Wenn der Stern in seiner Unterriesenphase ‚friedfertig‘ bleibt, dann rechne ich auch gerne mit einem Doppelsystem (trauriger Nachteil für die aldener Seeleute: Ohne sehr genaue Uhren, keine Längengradnavigation auf hoher See möglich ;) Das deutlich schwächere UV-Licht scheint für die Photosynthese nicht von so großer Bedeutung zu sein, wie ich ursprünglich dachte. Ich hab‘ jedenfalls keine Hinweise dafür gefunden.)

Herzliche Grüße

MAC
 

McSteve

Registriertes Mitglied
Aldener Seeleute

Hi UMa,

die Aldener Seeleute haben ja genetisch sowohl humanoide als auch tierische Elemente. Soll heissen: Zur Not fragen sie nach dem Weg. :D

Exakte Uhren sind zwar auf Alden möglich, aber hier brauchen wir nicht so sehr Rücksicht nehmen. Wenn ich das Scenario anschliessend verstehe, versteht es auch jeder Aldener. Und sollte ich eine Scene mit einem Astronomen einbauen, was sich geradezu aufdrängt, dann frage ich vorher, was der sagen soll.

Bin über das Wochenende in Berlin, aber ich fehle Euch ja nicht so doll.

Liebe Grüße
 

UMa

Registriertes Mitglied
Hallo MAC,

ich zitier mal den ganzen Text und mache Einfügungen, sonst wird es unübersichtlich und noch länger.
Grün sind Bemerkungen von mir
Rot ist wegzulassen
Blau kommt hinzu

Unterscheidet dein Quellcode zwischen Groß- und Kleinbuchstaben?
Falls nein, funktioniert dt und DT nicht, falls ja ist Xe ungleich xe, Dt ungleich DT usw.

Oh! Böse Falle! Gut daß ich gefragt hab‘. In allen ‚Sprachen und Dialekten‘ die ich kenne, bedeutet sqr oder sqrt Square-Root.
sqr() ist ^2 und sqrt() ist die Quadratwurzel

bedeutet das, daß für fehlerx immer nur die xe[1] und xe[2] Werte verwendet werden und für die Indices > 2 gar nicht erst ausgerechnet werden müssen?
Es werden nur xe[1] und xe[2] für die Fehlerberechnung verwendet,
EDIT: aber natürlich wird xe[k+1] für die Berchung von xe[k] benötigt.


Ich hab‘ die Erweiterung des Programms nochmal etwas ausführlicher aufgeschrieben und hoffe daß ich es formal richtig habe. Um’s wirkliche Verstehen muß ich mich noch kümmern.

Vorab aber noch eine Frage: Du setzt die Fibonacci-Reihe [1,2,3,5,8,13,21] mit s[j = 1 bis 6] gleich. Wieso nicht mit s[j = 1 bis 7] oder s[j = 0 bis 6]?
Die Frage verstehe ich nicht. Alle Schrittanzahlen müssen verschieden sein, sonst teilst du bei der fakt-Berechnung durch 0. Also Fibonaccifolge (nicht Reihe) ohen erste 1. Außerdem solltes du wirklich besser die harmonische Reihe nehmen. Die Rundungsfehler sind im Vergleich zu dem Fehler, dass du nicht relativistisch rechnest in Planetensystemen zu vernachlässigen. Nimm also vorerst s[j]=j

Die Unterstriche zum Einrücken zwingt mir dieser Editor hier auf. :(
Dim N ___________________________// Anzahl der Objekte
N = Anzahl der Objekte
Dim X[1:N,1:3]____________________// Positionen in x, y und z
Dim V[1:N , 1:3]___________________// Geschwindigkeiten in x, y und z
Dim ex ___________________________//Anzahl der Extrapolationsstufen
ex = 7
versuche zuerst ex=1 und ex=2 und erst wenn es läuft mehr
Dim Xe[1:ex,1:N,1:3]_______________// Extrapolierte Positionswerte
Dim Ve[1:ex,1:N,1:3]_______________// Extrapolierte Geschwindigkeitswerte
Dim Xalt[1:N,1:3]__________________// Archiv für die Ausgangswerte dieses Schrittes
Dim Valt[1:N,1:3]
Dim s[ex]_________________________// Faktor für die Testschrittweiten
Wozu werden die 3 Zeitschritte benötigt?
Dim kleinsterZeitschritt
Dim größterZeitschritt
Dim AktuellerZeitpunkt
Dim faktor________________________// Extrapolationsfaktor
Dim dt___________________________// Zeitteilschritt um zu DT zu kommen
Dim Dt___________________________// maximaler Zeitschritt der noch getestet wird
Dim n____________________________// Anzahl der Zeitschritte die sich aus Dt/dt ergibt
Dim i, j, k_________________________// Laufvariable

...
...
...
// Do dieses Programm so lange, bis der gewünschte Gesamtzeitrahmen erfüllt ist.
DT = größterZeitschritt
// erst mal Startwerte beschaffen
AktuellerZeitpunkt = 0
kleinsterZeitschritt = 10_______________________________// Sekunden
größterZeitschritt = 10 * 21____________________________// 10 * 7te Fibonacci-Zahl
j = 1
s[j]=1
dt = kleinsterZeitschritt _______________________________// oder muß das hier dt = DT lauten?


AktuellerZeitpunkt=startzeitpunkt
Startwerte für X und V beschaffen
DT=100000 _________//Großer Zeitschritt in Sekunden

(X[ 1:N,1:3 ] , V[1:N ,1:3 ])=Algorithmus1(X[1:N,1:3 ] , V[1:N,1:3 ],dt,n=s[j])
Warum zuerst einen Schritt mit Alg1?? das würde die Konvergenzrate zerstören.
// Zuordnung der Fibonacci-Zahlen
s[1] = 1
s[2] = 2 ____// !!

For j = 3 To ex
s[j]=s[j-1]+s[j-2]
Next j

// Harmonische Reihe
For j = 1 To ex
s[j]=j
Next j

While AktuellerZeitpunkt<endzeitpunkt



// Archivieren der Startwerte
Xalt[1:N,1:3] = X[1:N,1:3]
Valt[1:N,1:3] = V[1:N,1:3]

for j=1 to ex

_____X[1:N,1:3] = Xalt[1:N,1:3]
_____V[1:N,1:3] = Valt[1:N,1:3]
_____dt = DT / s[j]
_____// berechne neue X,V zum Zeitpunkt t+DT mit obigem Algoritmus1 in n=s[j] Schritten und _____// Schrittweite DT
_____// hast Du geschrieben, aber es müßte dt heißen, vermute ich.
richtig, war ein Schreibfehler
_____(X[ 1:N,1:3 ] , V[1:N ,1:3 ])=Algorithmus1(X[1:N,1:3 ] , V[1:N,1:3 ],dt,n=s[j])

_____xe[j,1:N,1:3]=X[1:N,1:3]
_____ve[j,1:N,1:3]=V[1:N,1:3]
_____If j>1
__________// Extrapolationschritt
__________For k = j - 1 Bis 1 Schrittweite -1
_______________faktor = 1 / ((s[j]/s[k])^2 - 1)
_______________xe[k,1:N,1:3]=xe[k+1,1:N,1:3]+(xe[k+1,1:N,1:3]-xe[k,1:N,1:3])*faktor
_______________ve[k,1:N,1:3]=ve[k+1,1:N,1:3]+(ve[k+1,1:N,1:3]-ve[k,1:N,1:3])*faktor
__________Next k
__________// Fehlerberechnung
_________ fehlerx=0
fehlerv=0
summier er hier auch auf?
__________fehlerx = fehlerx + (xe[1,1:N,1:3] - xe[2,1:N,2,1:3])^2 _______// Zu den Indices:
__________fehlerv = fehlerv + (ve[1,1:N,1:3] -ve[2,1:N,1:3])^2 ________// Siehe Frage oben
_____EndIf
Next j
X[1:N,1:3] = xe[1,1:N,1:3]
V[1:N,1:3] = ve[1,1:N,1:3]
// nun enthält x und v Ort und Geschwindigkeit zum Zeitpunkt t+DT
AktuellerZeitpunkt=AktuellerZeitpunkt + DT
// Until der gewünschte Gesamtzeitrahmen erfüllt ist. Siehe oben
Vergleiche am Ende wie die Fehler X Werte sich bei verringertem DT verringern. Bilde dazu die Differenz zu einem Wert von X, der mit sehr kleinem DT berechnet wurde.
Beispielsweise:
anfangszeitpunkt=0
endzeitpunkt=2^24
DT=2^p
mit p=24, 23, 22,...,11, 10. Führt zu X2hp=X.
und Lösung mit DT=16 als "exakten" Wert. Xexakt=X.
(D.h.
fehler=0
fehler=fehler+ (X2hp[1:N,1:3] - Xexakt[1:N,2,1:3])^2
)
Zuerst für ex=1 (test, sollte das Gleiche wie Alg1 liefern)
Und dann für ex=2, ex=3 usw.

fehlerx und fehlerv haben nicht die Konvergenzrate von xe[1,:,:] und ve[1,:,:] sondern um 2 geringer.

Grüße UMa
 
Zuletzt bearbeitet:

mac

Registriertes Mitglied
Hallo McSteve,

McSteve schrieb:
die Aldener Seeleute haben ja genetisch sowohl humanoide als auch tierische Elemente. Soll heissen: Zur Not fragen sie nach dem Weg.
Siehst Du? Das meinte ich. Damit fängt das ganze Elend immer an. Siehe Moses. Böse Zungen behaupten frech, er hätte nicht gefragt. Ich bin mir sicher, er hat gefragt und ist stets gutgläubig in die gezeigte Richtung gewandert. Und was ist dabei rausgekommen?
McSteve schrieb:
UMa <> MAC :D Er hat sich verlaufen, noch nicht mal im Wald. ;)

Herzliche Grüße

MAC
 

Orbit

Registriertes Mitglied
Mir fällt auf, dass die Diskussion hier von vielen mit grosser Spannung verfolgt wird, auch von mir. Kaum gab's heute wieder was Neues zu lesen, hängten sich gleich über ein halbes Dutzend Mitlesende rein. :)
Orbit
 

UMa

Registriertes Mitglied
Hallo MAC,

(benimmt sich ein Stern in dieser Phase eigentlich noch so, daß er seine System schonend behandelt?)
keine Ahnung. Wahrscheinlich ja. Junge und oder schnell rotiernde Sterne oder M-Sterne sind bestimmt schlimmer.

Falls man vergleichbare Helligkeit will, muss man wohl deutlich unter 0,8 Msonne gehen so zwischen 0,70 und 0,75 Msonne. Bei weniger gibt es wieder Probleme mit der Abbremsung durch die Gezeiten.

Grüße UMa
 

mac

Registriertes Mitglied
Hallo UMa,

Danke! :)

Unterscheidet dein Quellcode zwischen Groß- und Kleinbuchstaben?
ich vermeide solche Art der Unterscheidungen eigentlich immer, weil ich mir mit solchen und ähnlichen Dingen schon öfter bei Übertragungen von einem Editor zum Anderen viel Arbeit gemacht habe. Hier kommt erschwerend hinzu, daß Word schon mal recht eigenmächtig meine Eingaben 'korrigiert' und ich das nicht auf den ersten Blick sehe. :(



UMa schrieb:
(X[ 1:N,1:3 ] , V[1:N ,1:3 ])=Algorithmus1(X[1:N,1:3 ] , V[1:N,1:3 ],dt,n=s[j])
Warum zuerst einen Schritt mit Alg1?? das würde die Konvergenzrate zerstören.
das verstehe ich wiederum nicht. :eek:

Alg1 = Algorithmus1 = der Programmteil, der die Beschleunigungswerte für die aktuellen Positionen errechnet und damit Geschwindigkeit und Position verändert.

An dieser Stelle wo ich das tue, sind wir noch vor
While t<endzeitpunkt
Wenn ich nicht als allerersten und einmaligen Schritt, ausgehend von den zugewiesenen Startwerten, zunächst nur mit einem halben Zeitschritt die errechnete Beschleunigung mit der Geschwindigkeit verrechne und mit einem ganzen Zeitschritt mit dieser neu errechneten Geschwindigkeit die Position, kommt bei mir 'Müll' raus. In jedem der vielen millionen oder milliarden weiteren Schritte wird bei der hier rot hervorgehobenen Operation der ganze Zeitschritt für die Beschleunigung verwendet.

Du hattest mir dazu nur geschrieben, daß man es auch so machen kann, dann aber eine Iteration mehr rechnen muß. Also eine Iteration von 1E7 oder 1E9, bis ich eben endzeitpunkt erreiche.

Erst nach diesem allerersten Schritt belege ich doch die aktuellen Positionen und Geschwindigkeiten in den Archiv-Variablen Xalt und Valt und das muß ich doch bei jedem neuen Durchgang erneut tun.



Vorab aber noch eine Frage: Du setzt die Fibonacci-Reihe [1,2,3,5,8,13,21] mit s[j = 1 bis 6] gleich. Wieso nicht mit s[j = 1 bis 7] oder s[j = 0 bis 6]?
Die Frage verstehe ich nicht. Alle Schrittanzahlen müssen verschieden sein, sonst teilst du bei der fakt-Berechnung durch 0. Also Fibonaccifolge (nicht Reihe) ohen erste 1.
Ich vermute, daß diese Frage von mir überflüssig ist, bin mir aber nicht sicher.

Meine Frage bezog sich auf diese Aussage von Dir:
(Für nach geringere Rundungsfehler kannst du eine schneller wachsende Folge nehemen z.B. Fibonacci s[j=1..6]=1;2;3;5;8;13;21..., damit wird der Algorithmus aber auch etwas langsamer
s[] hat mit Deiner Definition nur 6 Indizes, denen Du aber 7 oder mehr Werte zuweist. Steckt da mehr hinter als: Das hatte keinen tieferen Sinn? Es ging mir nicht um die beiden ersten fehlenden Glieder der Folge, das die so nicht verwendet werden können, war schon klar.



Beispielsweise:
anfangszeitpunkt=0
endzeitpunkt=2^24
DT=2^p
mit p=24, 23, 22,...,11, 10. Führt zu X2hp=X.
und Lösung mit DT=16 als "exakten" Wert. Xexakt=X.
(D.h.
fehler=0
fehler=fehler+ (X2hp[1:N,1:3] - Xexakt[1:N,2,1:3])^2
)
Oh ha! Jetzt hast Du mich irgendwo abgehängt? Bisher war ich davon ausgegangen, daß
// berechne neue x,v zum Zeitpunkt t+DT mit obigen Algoritmus in n=s[j] Schritten und Schrittweite dt
gilt. Also dt = DT / n und n = s[j]

Wie wird denn jetzt dt und DT genau gebildet und ist p jetzt = s[j]?

'X2hp' heißt „X für 2 hoch p“ und ist ein Variablenname?


Herzliche Grüße

MAC
 
Zuletzt bearbeitet:

UMa

Registriertes Mitglied
Hallo MAC,

bei den Fibonaccizahlen habe ich die Zahlen für ex=7 aufgeschrieben, links stand aber nur 1..6.

das verstehe ich wiederum nicht. :eek:

Alg1 = Algorithmus1 = der Programmteil, der die Beschleunigungswerte für die aktuellen Positionen errechnet und damit Geschwindigkeit und Position verändert.

An dieser Stelle wo ich das tue, sind wir noch vor
While t<endzeitpunkt
Wenn ich nicht als allerersten und einmaligen Schritt, ausgehend von den zugewiesenen Startwerten, zunächst nur mit einem halben Zeitschritt die errechnete Beschleunigung mit der Geschwindigkeit verrechne und mit einem ganzen Zeitschritt mit dieser neu errechneten Geschwindigkeit die Position, kommt bei mir 'Müll' raus. In jedem der vielen millionen oder milliarden weiteren Schritte wird bei der hier rot hervorgehobenen Operation der ganze Zeitschritt für die Beschleunigung verwendet.

Du hattest mir dazu nur geschrieben, daß man es auch so machen kann, dann aber eine Iteration mehr rechnen muß. Also eine Iteration von 1E7 oder 1E9, bis ich eben endzeitpunkt erreiche.

Erst nach diesem allerersten Schritt belege ich doch die aktuellen Positionen und Geschwindigkeiten in den Archiv-Variablen Xalt und Valt und das muß ich doch bei jedem neuen Durchgang erneut tun.
Ups, dann doch die Langversion.
Der Algorithmus berechnet Ort X und Geschwindigkeit V zum jeweils gleichen Zeitpunkt.
Z.B. jeweils X und V
für t=0;DT;2*DT;3*DT.
Also
X(t) und V(t)
X(0) und V(0) gegeben
X(DT) und V(DT)
X(2*DT) und V(2*DT)
usw.

Der Versatz zwischen X und V wird nur in der inneren Iteration mit dt angewendet.
Es nur einmal zu machen geht nicht, da dt ex verschiedene Werte
und zwar DT/j mit j=1:ex hat.

Du berechnest jetzt um einen Schritt von z.B. DT nach 2*DT auszuführen, mittels des versetzten Verfahrens 'ex' verschiedene Werte für X(2*DT) und V(2*DT) mit 'ex' verschiedenen Schrittanzahlen und Schrittweiten.
Und zwar mit dt=DT dann mit dt=DT/2 dann mit dt=DT/3 usw.
Danach wird aus diesen Schrittweiten extrapoliert was theoretisch mit dt=0 harauskäme.
Die Berechnungen müssen dabei exakt symmetrisch sein, d.h. du musst den halben Schritt vom Anfang auch am Ende machen.

Das versetzte Verfahen ist hier also nur ein Verfahren im Verfahren um Werte für verschiedene Schrittweiten dt innerhalb einen großen Schrittes mit DT zu bekommen.
Daher ist wohl auch meine Version von Algorithmus1 vorzuziehen. Versuche es damit

Zitat:"Wie wird denn jetzt dt und DT genau gebildet und ist p jetzt = s[j]?"
nein.
DT=2^p sekunden
s[j]=j
ex=1 oder 2 oder 3 oder ....


Zitat:
"'X2hp' heißt „X für 2 hoch p“ und ist ein Variablenname?"
Ja.

Grüße UMa
 

McSteve

Registriertes Mitglied
Verpeilt

:rolleyes:Joo, da habe ich Mac mit UMa verwechselt. Hatte gedacht, UMA schreibt mir auch mal was :)

Aber UMa schreibt Mac und Mac schreibt mir. Okay!

Und MichMedia braucht Input und Orbit und Jonas beobachten das Scenario...

Ich hab' mal was über Typologien gelernt. Das kann ich hier gut anwenden. Hier geht's so Mega-Sachbezogen ab, das sich ein sensibler Künstlertyp (zum Glück ist hier keiner von der Sorte :D) fast schon einsam fühlt.

Ich habe da oben mal ein paar Fragen gestellt, so wegen der zweiten Sonne in der Planetenliste und den Tageszeiten... Guckst Du? Gibst Du Antwort? Aber bitte, nur wer will! Ich schreibe einen Roman, meine Welt ist nicht die Zahl, "nur" das Wort, ich weiß, das Ihr da Sachen macht, die total "geil" sind - ich weiß nur leider gar nicht wo wir sind. Mag einer den Dolmetscher spielen, so ab und an?

Ich fahr mal mit Family kurz nach Berlin übers Wochenende, meine Ma besuchen. Euch allen weiter viel Spaß mit dem Thema und denkt dran: "Doppelschatten!"

Liebe Grüße

Stefan
 

Orbit

Registriertes Mitglied
Hallo wieder mal, McSteve! :)
ich weiß nur leider gar nicht wo wir sind. Mag einer den Dolmetscher spielen, so ab und an?
Auch ich verstehe das Fach-Chinesisch von Mac und UMa längst nicht mehr. Aber trotzdem bin ich sicher, dass die beste Arbeit leisten. Dein Alden wird so glaubwürdig werden, dass Dein Buch an astronomischen Instituten zur Pflichtlektüre erklärt werden wird. Und wenn dereinst tatsächlich ein erdähnlicher und erst noch bewohnbarer Exoplanet entdeckt werden sollte, wird er bestimmt den Namen Alden tragen. ;)
Über das Dolmetsching mach Dir keine Sorgen: Wenn die beiden einmal nicht mehr mit dem Taschenrechner unter dem Kopfkissen schlafen und den auch nicht mehr aufs Klo mitnehmen - wenn sie also wieder ganz normale Menschen sein werden - dann werden sie Dir auch erzählen, was sie da die ganze Zeit gemacht haben. Und schliesslich wartet ja auch MichaMedia in den Startpflöcken, und der wird uns mit seiner Animation definitiv auf den Sprung helfen.
Herzliche Grüsse
Orbit
 
Zuletzt bearbeitet:

pauli

Registriertes Mitglied
Über das Dolmetsching mach Dir keine Sorgen: Wenn die beiden einmal nicht mehr mit dem Taschenrechner unter dem Kopfkissen schlafen und den auch nicht mehr aufs Klo mitnehmen - wenn sie also wieder ganz normale Menschen sein werden - dann werden sie Dir auch erzählen, was sie da die ganze Zeit gemacht haben.
na, hoffentlich kommt da nicht nur "42" raus :rolleyes:
 
Oben