minimum na orbicie

Sześciany. Wielościany. Kule. Inne bryły. Zadania i twierdzenia z nimi związane. Geometria rzutowa w przestrzeni.
Fibik
Użytkownik
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

Post autor: Fibik »

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?
SlotaWoj
Użytkownik
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

Post autor: SlotaWoj »

  1. Można dobrać taki układ współrzędnych, że problem będzie dwuwymiarowy (płaski).
  2. Dlaczego chcesz interpolować?
    Orbita jest krzywą stożkową, więc Twoja funkcja \(\displaystyle{ r(t)}\) nie będzie wielomianem.
  3. 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

    Kod: Zaznacz cały

    https://pl.wikipedia.org/wiki/Problem_n_cia%C5%82#Problem_dw.C3.B3ch_cia.C5.82
    . Trzeba wyznaczyć funkcję \(\displaystyle{ \overrightarrow{r}(t)}\), a równaniem orbity będzie \(\displaystyle{ \overrightarrow{r}(\varphi(t))}\), gdzie:
    • \(\displaystyle{ \overrightarrow{r}(t)=\begin{cases}\ x(t)\\\ y(t)\end{cases},\varphi(t)=\arccos\frac{x(t)}{\left|\overrightarrow{r}(t)\right|}}\)
  4. Minimum funkcji \(\displaystyle{ \overrightarrow{r}(t)}\) będzie tam, gdzie maksimum funkcji \(\displaystyle{ \overrightarrow{r}'(t)}\) (z zasady zachowania energii).
  5. W tej chwili nie wiem (w szczegółach), jak analitycznie rozwiązać ten problem. Ja zrobiłbym to numerycznie.
Fibik
Użytkownik
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

Post autor: Fibik »

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.
SlotaWoj
Użytkownik
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

Post autor: SlotaWoj »

Fibik pisze:... problem dotyczy wielu ciał, a nie tylko dwóch.
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
Użytkownik
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

Post autor: Fibik »

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}\)
SlotaWoj
Użytkownik
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

Post autor: SlotaWoj »

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.
Fibik
Użytkownik
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

Post autor: Fibik »

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.
SlotaWoj
Użytkownik
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

Post autor: SlotaWoj »

  1. 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, ... .
  2. 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}}\)
    (drugie i trzecie równanie powstały po zróżniczkowaniu Twojego wielomianu stopnia 3-go i podstawieniu \(\displaystyle{ t}\)) obliczasz wartości współczynników \(\displaystyle{ a}\), \(\displaystyle{ b}\), \(\displaystyle{ c}\) i \(\displaystyle{ d}\).
    Tam gdzie będzie \(\displaystyle{ 3at^2+2bt+c=0}\), wielomian \(\displaystyle{ r(t)=at^3+bt^2+ct+d}\) będzie miał ekstremum.
  3. Fibik pisze:...
    Czas minimum mogę chyba wyliczyć z liniowej aproksymacji, ...
    Czas minimum będziesz miał automatycznie rozwiązując poprzedni punkt.
Fibik
Użytkownik
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

Post autor: Fibik »

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.
SlotaWoj
Użytkownik
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

Post autor: SlotaWoj »

  1. To co napisałem uprzednio, to rozwiązanie układu czterech równań liniowych i znalezienie ekstremum wielomianu trzeciego stopnia.
  2. Funkcje wektorowe nie mają minimum (przynajmniej takiego, o które Ci chodzi)
Fibik
Użytkownik
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

Post autor: Fibik »

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.
SlotaWoj
Użytkownik
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

Post autor: SlotaWoj »

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}}\)
Fibik
Użytkownik
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

Post autor: Fibik »

SlotaWoj pisze:
  1. To co napisałem uprzednio, to rozwiązanie układu czterech równań liniowych i znalezienie ekstremum wielomianu trzeciego stopnia.
  2. Funkcje wektorowe nie mają minimum (przynajmniej takiego, o które Ci chodzi)
Minimum jest w obu przypadkach dla funkcji: |r|, czyli minimalna odległość.

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 --
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}}\)
To jest chyba wersja elipsy z ogniskiem w r=c, zamiast w zerze... czyli taka przesunięta.

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.

ODPOWIEDZ