Вход для пользователей

You are here

Расчёт времени межзвёздного путешествия (релятивистский) (fx-9750G, fx-9860G)

Сценарий космического путешествия такой: половину пути корабль разгоняется с постоянным ускорением, а вторую половину пути он замедляется с таким же ускорением. Исходные данные - это длина пути в световых годах и ускорение корабля. Вычисляется время путешествия для наблюдателя, оставшегося на Земле, и для экипажа в секундах и годах.

Программа

\ClrText
2.9979\EE8\->C
"DISTANCE L.Y."?\->D
D*3600*24*365.25*C\->D
"ACCELERATION M/C^2"?\->A
"TIME OF TRAVEL"
"SEC ="
\sqrt(D\x^2/(4C\x^2)+D/(2A))\->T
\LOCATE 6,6,T*2
"YEAR="
\LOCATE 6,7,T/(3600*24*365.25)*2
C/A*\In (AT/C+\sqrt(1+(AT/C)\x^2)\->T
"TIME ON SHIP"
"SEC ="
\LOCATE 6,7,2T
"YEAR="
\LOCATE 6,7,2T/(365.25*24*3600)
\STOP

Контрольный пример:

Летим на границу видимой части Вселенной:
Расстояние 13400000000 св. лет.
Ускорение 10 м/с2
Время путешествия:
4.2287184е+17 сек
1.34е+10 лет
Время на корабле:
1401208738 сек
44.40162554 лет

Летим к Альфа Центавра
Расстояние 4.3 св. лет
ускорение 10 м/с2
Время путешествия:
162941774.4 сек
5.163313257 лет
Время на корабле:
103436341.6 сек
3.277699875 лет

File attachments: 
Прикрепленный файлРазмер
File voyagetm.cat531 байт

Комментарии

Изображение пользователя Vitasam.

Можно выложить тестовый пример? Для проверки :)

Пример. Такой пример подходящий?

Мои программируемые калькуляторы:
Б3-21, Б3-34, МК-61, МК-52, МК-85
CASIO: cfx-9850GB+, fx-9750G+, fx-9750GII, fx-9860G, Algebra fx-2.0, fx-5800P, fx-7400G+
HP: 50G, 48G, 35s
TI: Nspire-CAS, Voyage-200, 89Titanium
SHARP EL-9600G

Изображение пользователя Vitasam.

Да, вполне. Спасибо!

Изображение пользователя Vitasam.

Время путешествия:
1.34е+10 лет
...
Время на корабле:
44.40162554 лет

Хорошая разница :)

Изображение пользователя Vitasam.

И еще нет ли опечатки? [SOLVED]. И еще нет ли опечатки со временем на корабле в секундах?

octave:12> clear all
octave:13> C=2.9979e8
C =  299790000
octave:14> D=4.3*3600*24*365.25*C
D =  4.0681e+16
octave:15> A=10
A =  10
octave:16> T=sqrt(D*D/(4*C*C)+D/(2*A))
T =  8.1471e+07
octave:17> T/(3600*24*365.25)*2
ans =  5.1633

Нету,я же на 2 умножил секунды :)

Изображение пользователя Vitasam.

Токен. Что делает токен \In ?
...
C/A*\In (AT/C+\sqrt(1+(AT/C)\x^2)\->T
"TIME ON SHIP"
...

Это натуральный логарифм - LN

Мои программируемые калькуляторы:
Б3-21, Б3-34, МК-61, МК-52, МК-85
CASIO: cfx-9850GB+, fx-9750G+, fx-9750GII, fx-9860G, Algebra fx-2.0, fx-5800P, fx-7400G+
HP: 50G, 48G, 35s
TI: Nspire-CAS, Voyage-200, 89Titanium
SHARP EL-9600G

Изображение пользователя Vitasam.

Понятно. Меня сбило с толку,что если copy/paste из CAT-файла программы, то там явно видна I а не l:
C/A*\In (AT/C+\sqrt(1+(AT/C)\x^2)\->T

А откуда формулы? Что-то не сходится. Взял формулы отсюда , ввел в Free42, запустил - не сходится, проверил все, даже сверил формулы с Ландау-Лифшицем, все нормально. 4.3 св.года при ускорении 10 м/с^2 с разворотом и началом торможения на полпути - 5.9 лет и 3.52, а не 5.16 и 3.28.
Нашел в гугле похожие онлайн-калькуляторы:
http://www.convertalot.com/relativistic_star_ship_calculator.html
http://www.cthreepo.com/lab/math1/
http://nathangeffen.webfactional.com/spacetravel/spacetravel.php
Везде 5.9 и 3.52.

Выкладываю свою программу для HP-42G/Free42:

00 { 235-Byte Prgm }   23 RCL× "Y"         46 ENTER              
01>LBL "STARS"         24 STO "AR"         47 X^2                
02 299792458           25 RCL "R"          48 1                  
03 STO "C"             26 2                49 +                  
04 365.25              27 ÷                50 SQRT               
05 24                  28 RCL× "AR"        51 ÷                  
06 ×                   29 1                52 STO "V"            
07 3600                30 +                53 "MAX SPEED (C)"    
08 ×                   31 X^2              54 PRA                
09 STO "Y"             32 1                55 PRX                
10 ×                   33 -                56 2                  
11 STO "LY"            34 SQRT             57 STO× "T1"          
12 "DISTANCE (LY)"     35 RCL÷ "AR"        58 RCL "T1"           
13 AVIEW               36 STO "T1"         59 "TRAVEL TIME (Y)"  
14 INPUT "R"           37 RCL× "AR"        60 PRA                
15 PRX                 38 ASINH            61 PRX                
16 "ACCEL (M/S^2)"     39 RCL÷ "AR"        62 RCL "T0"           
17 AVIEW               40 2                63 "SHIP TIME (Y)"    
18 INPUT "A"           41 ×                64 AVIEW              
19 PRX                 42 STO "T0"         65 PRX                
20 RCL "A"             43 RCL "T1"         66 .END.              
21 RCL÷ "LY"           44 RCL "AR"         
22 RCL× "Y"            45 ×                
DISTANCE (LY)
              4.3    ***
ACCEL (M/S^2)
               10    ***
MAX SPEED (C)
 9.51887319702E-1    ***
TRAVEL TIME (Y)
     5.9016727751    ***
SHIP TIME (Y)
    3.51780031684    ***

Формулы взял отсюда: https://ru.wikipedia.org/wiki/%D0%E5%EB%FF%F2%E8%E2%E8%F1%F2%F1%EA%EE%E5... Конечно, гарантий нет, что в вики нет ошибок, но сейчас нет свободного времени, чтобы всё перепроверить. Как нибудь попозже. Хотя в принципе нет гарантии, что и Вы не ошиблись.

Мои программируемые калькуляторы:
Б3-21, Б3-34, МК-61, МК-52, МК-85
CASIO: cfx-9850GB+, fx-9750G+, fx-9750GII, fx-9860G, Algebra fx-2.0, fx-5800P, fx-7400G+
HP: 50G, 48G, 35s
TI: Nspire-CAS, Voyage-200, 89Titanium
SHARP EL-9600G

Формулы там правильные. Но немного криво написано. t0 - время по внутренним часам всего пути, с разгоном и торможением, а x(t1) - это только половина пути, t1 тоже только половина. Решать лучше перейдя в единицы измерения года и св.года. Для 10 м/с^2 будет ~1.05265 св.г/год^2. Получается: t1=2.95, t0=3.52

Я как-то больше доверяю СИ с единицами: метр, килограмм, секунда...

Мои программируемые калькуляторы:
Б3-21, Б3-34, МК-61, МК-52, МК-85
CASIO: cfx-9850GB+, fx-9750G+, fx-9750GII, fx-9860G, Algebra fx-2.0, fx-5800P, fx-7400G+
HP: 50G, 48G, 35s
TI: Nspire-CAS, Voyage-200, 89Titanium
SHARP EL-9600G

Нашел:
В программе t=sqrt((D/2)^2/c^2 + (D/2)/a)
По формуле же t=sqrt(x^2/c^2 + 2*x/a)
Потеряна двойка. Вместо \sqrt(D\x^2/(4C\x^2)+D/(2A))\->T нужно \sqrt(D\x^2/(4C\x^2)+D/A)\->T

Существенная ошибка получалась при небольших x, при полете же на край вселенной результат почти сходился.

Ну, спасибо за помощь.

Мои программируемые калькуляторы:
Б3-21, Б3-34, МК-61, МК-52, МК-85
CASIO: cfx-9850GB+, fx-9750G+, fx-9750GII, fx-9860G, Algebra fx-2.0, fx-5800P, fx-7400G+
HP: 50G, 48G, 35s
TI: Nspire-CAS, Voyage-200, 89Titanium
SHARP EL-9600G