minimum na orbicie
-
- Użytkownik
- Posty: 971
- Rejestracja: 27 wrz 2005, o 22:56
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 11 razy
- Pomógł: 75 razy
minimum na orbicie
Mamy orbitę w 3D, typu elipsa lub zbliżoną do elipsy, co i tak nie ma tu znaczenia.
Znamy tylko dwa punkty tej orbity:
\(\displaystyle{ r(t=0),\ r(1)}\) oraz prędkości w tych punktach: \(\displaystyle{ r'(0) = v(0),\ r'(1) = v(1)}\)
oraz wiemy, że minimum leży pomiędzy tymi punktami.
Jak wyznaczyć to minimum, znaczy: \(\displaystyle{ r = (x,y,z),\ gdzie:\ |r| = \min}\)?
Interpolacja dla dwóch punktów + pochodne daje funkcję kubiczną, czyli mamy takie coś:
\(\displaystyle{ r(t) = at^3 + bt^2 + ct + d}\)
współczynniki: a, b,c,d, wyliczamy dość łatwo: \(\displaystyle{ d = r(0),\ c = v(0), ...}\)
Zatem mam teraz funkcję: \(\displaystyle{ y(t) = |r|}\), której minimum należy wyliczyć.
I co dalej?
Znamy tylko dwa punkty tej orbity:
\(\displaystyle{ r(t=0),\ r(1)}\) oraz prędkości w tych punktach: \(\displaystyle{ r'(0) = v(0),\ r'(1) = v(1)}\)
oraz wiemy, że minimum leży pomiędzy tymi punktami.
Jak wyznaczyć to minimum, znaczy: \(\displaystyle{ r = (x,y,z),\ gdzie:\ |r| = \min}\)?
Interpolacja dla dwóch punktów + pochodne daje funkcję kubiczną, czyli mamy takie coś:
\(\displaystyle{ r(t) = at^3 + bt^2 + ct + d}\)
współczynniki: a, b,c,d, wyliczamy dość łatwo: \(\displaystyle{ d = r(0),\ c = v(0), ...}\)
Zatem mam teraz funkcję: \(\displaystyle{ y(t) = |r|}\), której minimum należy wyliczyć.
I co dalej?
-
- Użytkownik
- Posty: 4211
- Rejestracja: 25 maja 2012, o 21:33
- Płeć: Mężczyzna
- Lokalizacja: Kraków PL
- Podziękował: 2 razy
- Pomógł: 758 razy
minimum na orbicie
- Można dobrać taki układ współrzędnych, że problem będzie dwuwymiarowy (płaski).
- Dlaczego chcesz interpolować?
Orbita jest krzywą stożkową, więc Twoja funkcja \(\displaystyle{ r(t)}\) nie będzie wielomianem. - Gdybyś miał informacje o położeniu osi głównej tej krzywej, cztery jej punkty i funkcję \(\displaystyle{ \overrightarrow{r}(\varphi)}\), to problem byłby geometryczny (z geometrii różniczkowej).
Ale masz tylko tylko dwa punkty, a w nich wartości funkcji \(\displaystyle{ \overrightarrow{r}(t)}\) i \(\displaystyle{ \overrightarrow{r}'(t)}\).
Jeśli \(\displaystyle{ t}\) jest czasem, to Twoja funkcja jest klasycznym rozwiązaniem problemu. Trzeba wyznaczyć funkcję \(\displaystyle{ \overrightarrow{r}(t)}\), a równaniem orbity będzie \(\displaystyle{ \overrightarrow{r}(\varphi(t))}\), gdzie:Kod: Zaznacz cały
https://pl.wikipedia.org/wiki/Problem_n_cia%C5%82#Problem_dw.C3.B3ch_cia.C5.82
- \(\displaystyle{ \overrightarrow{r}(t)=\begin{cases}\ x(t)\\\ y(t)\end{cases},\varphi(t)=\arccos\frac{x(t)}{\left|\overrightarrow{r}(t)\right|}}\)
- Minimum funkcji \(\displaystyle{ \overrightarrow{r}(t)}\) będzie tam, gdzie maksimum funkcji \(\displaystyle{ \overrightarrow{r}'(t)}\) (z zasady zachowania energii).
- W tej chwili nie wiem (w szczegółach), jak analitycznie rozwiązać ten problem. Ja zrobiłbym to numerycznie.
-
- Użytkownik
- Posty: 971
- Rejestracja: 27 wrz 2005, o 22:56
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 11 razy
- Pomógł: 75 razy
minimum na orbicie
1. to nic nie daje, bo minimum będzie nadal funkcją 5-tego stopnia, czyli nierozwiązywalne analitycznie.
2. muszę interpolować bo znam tylko wybrane punkty, a nie wszystkie;
a wiedza o minimum pomiędzy punktami jest łatwo dostępna:
|r|' < 0 przed minimum, oraz |r|' > 0 za minimum, co można łatwo wyliczać, mając v i r:
\(\displaystyle{ v\cdot r < 0 \to |r|' < 0}\) i podobnie z drugiej strony - w następnym punkcie.
3. to jest tylko w dobrym przybliżeniu elipsa, ale nie idealna, bo problem dotyczy wielu ciał, a nie tylko dwóch.
Czas minimum mogę chyba wyliczyć z liniowej aproksymacji,
ponieważ prędkość radialna w pobliżu peryhelium jest praktycznie liniowa,
jak funkcja sinus w zerze: sinx = x, dla małych x.
Zatem, powiedzmy że mam: |r(t_min)|' = 0, znaczy to t_min pomiędzy, czyli z: <0,1> mam wyliczone.
Jak z tego wyliczyć pozycję w minimum, czyli:
\(\displaystyle{ r(t_{min}) = ?}\), mając dane: \(\displaystyle{ r(0),\ v(0)\, i\ r(1),\ v(1)}\), no i t_min, które jest oczywista, pomiędzy t=0 i 1.
2. muszę interpolować bo znam tylko wybrane punkty, a nie wszystkie;
a wiedza o minimum pomiędzy punktami jest łatwo dostępna:
|r|' < 0 przed minimum, oraz |r|' > 0 za minimum, co można łatwo wyliczać, mając v i r:
\(\displaystyle{ v\cdot r < 0 \to |r|' < 0}\) i podobnie z drugiej strony - w następnym punkcie.
3. to jest tylko w dobrym przybliżeniu elipsa, ale nie idealna, bo problem dotyczy wielu ciał, a nie tylko dwóch.
Czas minimum mogę chyba wyliczyć z liniowej aproksymacji,
ponieważ prędkość radialna w pobliżu peryhelium jest praktycznie liniowa,
jak funkcja sinus w zerze: sinx = x, dla małych x.
Zatem, powiedzmy że mam: |r(t_min)|' = 0, znaczy to t_min pomiędzy, czyli z: <0,1> mam wyliczone.
Jak z tego wyliczyć pozycję w minimum, czyli:
\(\displaystyle{ r(t_{min}) = ?}\), mając dane: \(\displaystyle{ r(0),\ v(0)\, i\ r(1),\ v(1)}\), no i t_min, które jest oczywista, pomiędzy t=0 i 1.
-
- Użytkownik
- Posty: 4211
- Rejestracja: 25 maja 2012, o 21:33
- Płeć: Mężczyzna
- Lokalizacja: Kraków PL
- Podziękował: 2 razy
- Pomógł: 758 razy
minimum na orbicie
Dla większej liczby ciał niż cztery nigdy nie ma rozwiązania analitycznego (dla czterech ciał jedynie dla szczególnych przypadków jeszcze są rozwiązania). Problem można rozwiązać tylko numerycznie.Fibik pisze:... problem dotyczy wielu ciał, a nie tylko dwóch.
-
- Użytkownik
- Posty: 971
- Rejestracja: 27 wrz 2005, o 22:56
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 11 razy
- Pomógł: 75 razy
minimum na orbicie
Przecież rozwiązuję to właśnie numerycznie, i stąd mam te punkty tylko, a nie całą krzywą.
W sumie mogę wyliczyć ten czas minimum liniowo, z równania prędkości radialnych,
a potem podstawić ten czas do tej interpolacji kubicznej...
no ale nie wiem czy to ma sens - czy przypadkiem błąd nie wyjdzie rzędu 1, zamiast 3.
Może lepiej użyć kwadratowej wersji... co byłoby szybsze:
\(\displaystyle{ r(t) = r_0 + v_0 t + a t^2/2}\)
tylko że wtedy przyspieszenie = a jest nieznane... chyba należy wsadzić jakieś średnie:
\(\displaystyle{ a = (v_1 - v_0)/dt}\)
W sumie mogę wyliczyć ten czas minimum liniowo, z równania prędkości radialnych,
a potem podstawić ten czas do tej interpolacji kubicznej...
no ale nie wiem czy to ma sens - czy przypadkiem błąd nie wyjdzie rzędu 1, zamiast 3.
Może lepiej użyć kwadratowej wersji... co byłoby szybsze:
\(\displaystyle{ r(t) = r_0 + v_0 t + a t^2/2}\)
tylko że wtedy przyspieszenie = a jest nieznane... chyba należy wsadzić jakieś średnie:
\(\displaystyle{ a = (v_1 - v_0)/dt}\)
-
- Użytkownik
- Posty: 4211
- Rejestracja: 25 maja 2012, o 21:33
- Płeć: Mężczyzna
- Lokalizacja: Kraków PL
- Podziękował: 2 razy
- Pomógł: 758 razy
minimum na orbicie
Mam na myśli numeryczne rozwiązanie opisujących problem równań różniczkowych.
Musisz wyznaczyć jeszcze jeden punkt w sąsiedztwie \(\displaystyle{ \overrightarrow{r}(0)}\) i \(\displaystyle{ \overrightarrow{r}(1)}\) (pochodne nie są wystarczające) i interpolować wielomianem 2-go stopnia.
Musisz wyznaczyć jeszcze jeden punkt w sąsiedztwie \(\displaystyle{ \overrightarrow{r}(0)}\) i \(\displaystyle{ \overrightarrow{r}(1)}\) (pochodne nie są wystarczające) i interpolować wielomianem 2-go stopnia.
-
- Użytkownik
- Posty: 971
- Rejestracja: 27 wrz 2005, o 22:56
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 11 razy
- Pomógł: 75 razy
minimum na orbicie
Bajki opowiadasz.
n wartości + n pierwszych pochodnych daje wielomian 2n-1,
co dla dwóch punktów = 3 - interpolacja kubiczna, nie inaczej.
Dla wielomianu n=2, należy podać tylko trzy liczby,
czyli: trzy wartości, lub dwie wartości i jedną pochodną (dowolnego rzędu),
albo dwie pochodne i jedną wartość.
-- 16 maja 2016, 21:08 --
A może tak pójdzie:
interpolujemy tylko odległość, znaczy |r|, zamiast r (=wektor).
dla dwóch wartości i pochodnych otrzymam znowu kubiczne, ale już skalarne:
\(\displaystyle{ y(t) = |r| = at^3 + bt^2 + ct + d}\)
wtedy:
\(\displaystyle{ y'(t) = |r|' = v_r(t) = 3at^2 + 2bt + c}\)
a mając już skalarny wielomian 3-go stopnia, wyliczam jego minimum,
czyli pochodna: y' = 0, a to będzie tylko 2-go stopnia, czyli łatwe do rozwiązana.
Finalnie otrzymam czas: t = t_min, który sobie podstawiam do wersji wektorowej: r(t) = kubiczne.
No, i takim sposobem rozwiązałem równianie 5-go stopnia metodą analityczną... hehe!
Ciekawe czy wynik będzie faktycznie taki sam, który wyjdzie z rozwiązania tego równania 5-go stopnia.
n wartości + n pierwszych pochodnych daje wielomian 2n-1,
co dla dwóch punktów = 3 - interpolacja kubiczna, nie inaczej.
Dla wielomianu n=2, należy podać tylko trzy liczby,
czyli: trzy wartości, lub dwie wartości i jedną pochodną (dowolnego rzędu),
albo dwie pochodne i jedną wartość.
-- 16 maja 2016, 21:08 --
A może tak pójdzie:
interpolujemy tylko odległość, znaczy |r|, zamiast r (=wektor).
dla dwóch wartości i pochodnych otrzymam znowu kubiczne, ale już skalarne:
\(\displaystyle{ y(t) = |r| = at^3 + bt^2 + ct + d}\)
wtedy:
\(\displaystyle{ y'(t) = |r|' = v_r(t) = 3at^2 + 2bt + c}\)
a mając już skalarny wielomian 3-go stopnia, wyliczam jego minimum,
czyli pochodna: y' = 0, a to będzie tylko 2-go stopnia, czyli łatwe do rozwiązana.
Finalnie otrzymam czas: t = t_min, który sobie podstawiam do wersji wektorowej: r(t) = kubiczne.
No, i takim sposobem rozwiązałem równianie 5-go stopnia metodą analityczną... hehe!
Ciekawe czy wynik będzie faktycznie taki sam, który wyjdzie z rozwiązania tego równania 5-go stopnia.
-
- Użytkownik
- Posty: 4211
- Rejestracja: 25 maja 2012, o 21:33
- Płeć: Mężczyzna
- Lokalizacja: Kraków PL
- Podziękował: 2 razy
- Pomógł: 758 razy
minimum na orbicie
- Pochodna to nie jest punkt. Dla dwóch punktów mamy interpolację liniową, bo dwa punkty wyznaczają prostą. Jeżeli mamy dwa punkty i jeszcze pochodną w którymś z nich, to tak jakbyśmy mieli trzy punkty i wówczas jest możliwa interpolacja kwadratowa (trzy punkty wyznaczają parabolę), etc, etc. Oczywiście muszą być spełnione pewne warunki, np. punkty rożne, trzy punkty nie współliniowe, ... .
- Ponieważ nie jest znana rzeczywista postać funkcji \(\displaystyle{ r(t)}\) więc początkowo uważałem wartości \(\displaystyle{ r'(0)}\) i \(\displaystyle{ r'(1)}\) za mało przydatne, ale zmieniłem zdanie.
Z układu równań:
- \(\displaystyle{ \begin{cases}
\ d=r(0) \\
\ a+b+c+d=r(1) \\
\ c=r'(0) \\
\ 3a+2b+c=r'(1)
\end{cases}}\)
Tam gdzie będzie \(\displaystyle{ 3at^2+2bt+c=0}\), wielomian \(\displaystyle{ r(t)=at^3+bt^2+ct+d}\) będzie miał ekstremum. - \(\displaystyle{ \begin{cases}
Czas minimum będziesz miał automatycznie rozwiązując poprzedni punkt.Fibik pisze:...
Czas minimum mogę chyba wyliczyć z liniowej aproksymacji, ...
-
- Użytkownik
- Posty: 971
- Rejestracja: 27 wrz 2005, o 22:56
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 11 razy
- Pomógł: 75 razy
minimum na orbicie
Prawda, tylko, że to co proponujesz to powrót do punktu wyjściowego, czyli musiałbyś rozwiązać wielomian 5-go stopnia.
W tej chwili interesuje mnie jedynie:
czy rozwiązanie uzyskane z interpolacji |r(t)| - funkcja skalarna,
da ten sam wynik co interpolacja: r(t) - funkcja wektorowa.
W tej chwili interesuje mnie jedynie:
czy rozwiązanie uzyskane z interpolacji |r(t)| - funkcja skalarna,
da ten sam wynik co interpolacja: r(t) - funkcja wektorowa.
-
- Użytkownik
- Posty: 4211
- Rejestracja: 25 maja 2012, o 21:33
- Płeć: Mężczyzna
- Lokalizacja: Kraków PL
- Podziękował: 2 razy
- Pomógł: 758 razy
minimum na orbicie
- To co napisałem uprzednio, to rozwiązanie układu czterech równań liniowych i znalezienie ekstremum wielomianu trzeciego stopnia.
- Funkcje wektorowe nie mają minimum (przynajmniej takiego, o które Ci chodzi)
-
- Użytkownik
- Posty: 971
- Rejestracja: 27 wrz 2005, o 22:56
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 11 razy
- Pomógł: 75 razy
minimum na orbicie
Aby to rozstrzygnąć wystarczy wyliczyć jakiś dowolny przypadek, np. przyjmując elipsę jako krzywą, którą interpolujemy.
Mamy dane punkty, np. w odległości 1 stopnia,
pierwszy przed minimum:
r(0), r'(0) = v(0), i drugi - tuż za tym minimum: r(1), v(1);
Równanie elipsy:
\(\displaystyle{ r(f) = \frac{p}{1+e.\cos(f)}}\)
gdzie: \(\displaystyle{ p = 1-e^2}\) e to mimośród elipsy (0,1), i wstawiamy, np. e = 0.5;
Teraz wyliczamy te współczynniki kubiczne... i dla dwóch wersji: skalarnej |r|, i wektorowej r.
Prędkości radialne wyliczamy z danych r i v, w taki sposób:
\(\displaystyle{ v_r = |r|' = v\cdot r^0 = \frac{v\cdot r}{|r|}}\)
liczymy z tego: \(\displaystyle{ v_r(0)\, i\ v_r(1)}\), itd.
Mamy dane punkty, np. w odległości 1 stopnia,
pierwszy przed minimum:
r(0), r'(0) = v(0), i drugi - tuż za tym minimum: r(1), v(1);
Równanie elipsy:
\(\displaystyle{ r(f) = \frac{p}{1+e.\cos(f)}}\)
gdzie: \(\displaystyle{ p = 1-e^2}\) e to mimośród elipsy (0,1), i wstawiamy, np. e = 0.5;
Teraz wyliczamy te współczynniki kubiczne... i dla dwóch wersji: skalarnej |r|, i wektorowej r.
Prędkości radialne wyliczamy z danych r i v, w taki sposób:
\(\displaystyle{ v_r = |r|' = v\cdot r^0 = \frac{v\cdot r}{|r|}}\)
liczymy z tego: \(\displaystyle{ v_r(0)\, i\ v_r(1)}\), itd.
-
- Użytkownik
- Posty: 4211
- Rejestracja: 25 maja 2012, o 21:33
- Płeć: Mężczyzna
- Lokalizacja: Kraków PL
- Podziękował: 2 razy
- Pomógł: 758 razy
minimum na orbicie
Twoje równanie elipsy jest błędne: lewa strona jest w metrach, a prawa bezwymiarowa.
Równanie elipsy w układzie biegunowym:
Równanie elipsy w układzie biegunowym:
- \(\displaystyle{ r^2(\varphi)=\frac{b^2}{1-e^2\cos^2\varphi}}\)
-
- Użytkownik
- Posty: 971
- Rejestracja: 27 wrz 2005, o 22:56
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 11 razy
- Pomógł: 75 razy
minimum na orbicie
Minimum jest w obu przypadkach dla funkcji: |r|, czyli minimalna odległość.SlotaWoj pisze:
- To co napisałem uprzednio, to rozwiązanie układu czterech równań liniowych i znalezienie ekstremum wielomianu trzeciego stopnia.
- Funkcje wektorowe nie mają minimum (przynajmniej takiego, o które Ci chodzi)
Są tu jednak dwie metody, którymi można to liczyć, ale nie wiem czy wynik będzie taki sam:
1. interpoluję tylko |r| - funkcja skalarna, więc liczę proste minimum funkcji skalarnej, a finalnie podstawiam: r = r(t_min);
gdzie to r jest tu już interpolacją wektorową.
2. interpoluję od razu r - wektorowa, i liczę minimum po tej krzywej typu: |r| = min, znaczy warunkowe (wyjdzie tu wielomian 5-go stopnia).-- 17 maja 2016, 15:55 --
To jest chyba wersja elipsy z ogniskiem w r=c, zamiast w zerze... czyli taka przesunięta.SlotaWoj pisze:Twoje równanie elipsy jest błędne: lewa strona jest w metrach, a prawa bezwymiarowa.
Równanie elipsy w układzie biegunowym:
- \(\displaystyle{ r^2(\varphi)=\frac{b^2}{1-e^2\cos^2\varphi}}\)
Słońce jest w ognisku, i względem niego liczymy odległość, a nie jakoś... obok niego.
Przyjmuję a = 1, dla uproszczenia;
ogólnie masz: \(\displaystyle{ p = a(1-e^2)}\), to jest tzw. parametr elipsy.
Chyba tu to znalazłeś:
należy to uzupełnić/poprawić, ponieważ takiej wersji nikt nie używa w praktyce, a zwłaszcza w astronomii.