Comments 65
ps: Почему нет ссылок на книжки по астрономии?
Луна, в свою очередь, движется вокруг Земли (система К') по окружности радиуса R2 = 3.844*10**5 км.
Написана охинея. Луна движется по незамкнутой спирали, из-за того, что к Солнцу она притягивается в 2 раза сильнее, чем к Земле. Отсюда вытекает вращение узлов лунной орбиты с периодом ~18 лет и прочие известные нам эффекты, связанные с периодичностью лунных и солнечных затмений.
Чтобы это не было охинеей нужно оговорится: принимается допущение что Луна движется по окружности… и т.д.
В ту же степь
В гелиоцентрической системе отсчета (система К) Земля движется по окружности радиуса R1=…
А ничего, что эксцентриситет земной орбиты равен 0,01671123?
После повторных наблюдений в следующие ночи вам удастся вычислить ее координаты в ту первую ночь. Координаты в гелиоцентрической системе координат: P0= (x0, y0, z0) и и вектор скорости v0 = (vx0, vy0, vz0)
Шо, прямо декартовы координаты и определим? Телескопом? С экваториальной монтировкой?
P.S.: На хабре уже давным-давно сделали возможность вводить формулы. Вот, спрашивается, для кого? Всё равно продолжают лепить картинками
Обязательно попробую, но у других авторов такие орбиты выглядят вот так
только, Python позволяет более точно отражать характер соотношений при численном интегрировании
Что позволяет...? Вот с этого места поподробнее, пожалуйста
А сама теория небесной механики (в её части) принадлежит Ландау Л. Д.
Чтоооо? Да как-то и до Ландау, знаете ли, открывали «Нептуны на кончике пера». Вы какую-то ересь несете, уважаемый гн. Тараненко
Что касается численного интегрирования на Python читайте С. К. Буйначев Применение численных методов в математическом моделировании.
Не судите и судимы не будите.
Спасибо за комментарий.
Что касается численного интегрирования на Python читайте…
Вот в этом и есть квинтэссенция моего неприятия Ваших публикаций. Вы излагаете очевидное, оставляя его очевидным. Вместо развернутого ответа на заданный вопрос (который можно было привести и в статье!) Вы тыкаете в источник, с которым я при желании могу ознакомится и без хабра.
Я вот на протяжении уже 60-й Вашей публикации хочу всё узнать, в чем соль применения питона и не получаю ответа на этот вопрос. Более точно отражает соотношения… Оставьте это для дипломных работ студентов, а здесь люди хотят конкретики
Как вообще универсальный ЯП может что-то отражать? Он отражает ровно то, что Вы заставляете его делать, написав программу, и не более того
Python позволяет более точно отражать характер соотношений при численном интегрировании
Что вкладывается в понятие «более точно отражать характер соотношений при численном интегрировании»? Каким образом это связано с теми средствами, что предоставляет разработчику питон?
Как это, вместо гравитационного параметра Солнца сюда затесалось четыре пи в квадрате? Если это какое то нормирование, то интересна размерность переменных в приведенных уравнениях
В математических моделях уравнения приводят к безразмерным параметрам
А так же и не приводятся, если в этом нет нужды
По отношению к чему выполняется нормирование координат и времени в этих уравнениях? Выкладки, которые провел я, вот сейчас на скорую руку не дают приведенной формы уравнений. Где источник выкладок, в котором можно убедится в верности приведенных соотношений?
Правые части системы их трёх дифференциальных уравнений содержат одинаковый численный множитель что тут объяснять
Людям, читающим данный ресурс, из соображений элементарной вежливости и уважения, принято объяснять многое, например так
где tau — безразмерное время (в оборотах Земли вокруг Солнца); a — большая полуось орбиты Земли (а.е.); mu — гравитационный параметр Солнца
Я Вам совершенно конкретный вопрос задал, а ответа не получаю, только многозначительные фразы. Если Вы не разбираетесь в предметной области, то многозначительность Вам не поможет.
всегда отвечаю на содержательные вопросы а если Вы пытаетесь экзаменовать то это не Ваша функция
Вот я и задавал вопрос содержательный, ответа не получил (сам дал ответ). Экзамен не сдан, да, и да, это моя функция, как полноправного члена данного сообщества
Хм, извините, вы пишите публикации на популярном общедоступном ресурсе, и если Вас спрашивают о содержании Ваших статей, об источниках выкладок, смысле параметров — извольте отвечать
Но есть возможность повысить точность с помощью классов Decimal и Fraction. Decimal хорошо воспроизводит точность для десятичных чисел, а Fraction может представлять числа в виде рациональных дробей. Но они крайне сильно повлияют на производительность, что для Вас не должно играть большой роли. Если ещё не используете их, рекомендую проверить разницу в точности вычислений по сравнению с float. Мне, по крайней мере было бы интересно.
Спасибо за интересный вопрос. По факту на мантиссу — 52. 53-й бит неявный и для нормальных чисел равен 1:
- IEEE_754 (см. binary64)
- Double-precision floating-point format
- Floating-point: “The leading 1 is 'implicit' in the significand.” — …huh?
Так что да, 11 бит на порядок, а не 10.
Но, как оказалось есть нормальные числа:
и денормализованные:
Например, 0 — денормализованное число, поэтому неявный бит у него должен смениться на 0.
Про нормальные и денормализованные числа до сего дня, признаться, не знал. По памяти я не помню, сколько в double на мантиссу выделяется, поэтому если б не спросили, я бы и не заметил подвоха.
А сама теория небесной механики (в её части) принадлежит Ландау Л. Д.
WTF??? Вы записали уравнение Кеплера от 1619 года.
Конечно для задачи 3 тел так уже не выходит, т.к. 1 радиус-вектором ничего описать не выйдет.
но у других авторов такие орбиты выглядят вот так
Где-то в глубине души я понимаю, что после всего сказанного это бесполезно, но всё же задам пару вопросов:
1. У каких авторов такие результаты?
2. Неужели Вы, Юрий Карлович, один единственный суперспец в мире, кто может построить гладкую орбиту кометы? Что-то я сильно в этом сомневаюсь.
Для гамильтоновых систем нужно использовать геометрические методы интегрирования, а SciPy есть только многошаговые линейные методы.
не пробовали исследовать устойчивость построенных орбит?
Ответ известен давно: уравнения небесной механики неустойчивы по Ляпунову вдоль траектории, по нормали и бинормали все ок.
не пробовали исследовать устойчивость…
Не пугайте Юрия Карловича такими страшными словами
Python достаточно популярный язык. Куда его ещё популярнее?
Хотите популяризировать — рекламируйте готовые отличные модули и пишите issue и pull requests в эти модули
Мне кажется, что Юрию Карловичу это, как минимум, неинтересно. Ему даже лень позаботится о своей репутации, убрав безграмотные вычисления из собственной статьи. И то что этот трэшак про Луну, вращающуюся вокруг Земли, как метко выразился один из комментаторов, на палке, будет читать неокрепшая молодежь, ему видимо всё равно. Это у него метода популяризации питона такая, видимо. Но куда нам понять посыл крутых лингвистов…
Стыдно, профессор
Например почему бы в коде, строящем орбиту кометы вместо
«def f(y, t):
y1, y2, y3, y4,y5,y6 = y
...»
не написать
«def f(y, t):
x, vx, y, vy, z, vz = y
...» (и далее по тексту)?
Я уж не говорю про отсутствие пустых строк, разделяющих импорты, объявления функций и логические блоки в коде.
А велосипеда, на котором кто-то будет ездить, здесь нет. Есть несколько хорошо написанных и широко известных библиотек, а от вас — только обёртки, вызывающие их с конкретными данными. Будет другая задача — будут совсем другие обёртки.
если вместо древних методичек с фортраном будут новые методички с питоном
В данном случае мне всё равно, какой инструмент пропагандирует автор. Любой инструмент в неумелых руках превращается в оружие массового уничтожения молодых умов. Меня возмущает наплевательский подход к фактическому материалу в предметной области, в данном случае в астрономии и механике. Молодежь будет гуглить и нагуглит вот это чтиво, где Луна вращается по окружности на расстоянии 38 млн. км от Земли. Это сродни той самой задачке про периметр прямоугольного треугольника со сторонами 3, 4 и 6 метров. Сбывается предсказание академика Арнольда (земля ему пухом) — в сферу высшего образования лезут дилетанты со своими дилетантскими воззрениями.
Так что фортран там или питон, значения не имеет. Я не против популяризации питона, я против его популяризации таким способом
Я на рисунке с орбитами Земли и Марса "круговую" орбиту Земли всё равно вижу довольно выразительным эллипсом. Если это популяризация Питона в области рисования окружностей, то она получилась так себе...
figure()
написать gca().set_aspect('equal')
figure()
Только сейчас заметил, что орбита кометы вычисляется вроде как методом численного решения диф. уравнений. Но опять же и тут получился полный бред. Потому как под системой уравнений я имел в виду не просто 3 пространственные координаты, а все участвующие в движение тела (т.е. 3*N уравнений должно быть) и учёт суммарной гравитационной силы (каждое тело в систем действует на всех остальных). А решать численно указанный пример — это тоже полная чушь, т.к. он элементарно решается аналитически. Т.е. если мы пренебрегаем взаимодействием тел между собой (хотя непонятно как это можно сделать в случае той же луны) и считаем только полёт в гравитационном поле солнца, то никаких численных интегрирований не нужно — уравнение решается аналитически в общем виде (получается тот самый эллипс).
Т.е. в итоге у вас в тех случая, где требуется численное решение системы диф. уравнений, его нет. А там где оно не нужно, оно есть. Феерично. )))
А решать численно указанный пример — это тоже полная чушь, т.к. он элементарно решается аналитически
… в классической задаче двух тел
Такую задачу нужно рассматривать в контексте задачи N-тел, Вы совершенно правы, так как динамика кометы определяется возмущениями со стороны, например, планет-гигантов
Да Вы посмотрите на список статей данного автора — темы от небесной механики до ядерных реакторов. Что-то мне сомнительно, что один человек может быть абсолютно компетентен во всех этих вопросах
решается аналитически
Позволю себе, однако, ремарку.
Нет ничего плохого в том, что человек берет аналитическую задачу и решает её численно, а потом пишет об этом статью. Это очень хороший и сильный прием, я сам часто таковой использую. Но статья должна быть не о том как мы решаем элементарную и давно решенную задачу, а о том, какие выводы мы извлекаем из процесса.
Например, для объяснения принципа построения численных методов решения задач на ЭВМ — нет ничего лучше взяв простую задачу с аналитическим решением разобрать процесс построения численной схемы по косточкам, прояснить нюансы, сравнивая получаемые результаты с известным аналитическим решением. Поиграть с параметрами численной схемы влияющими на точность решения, указать на способы её повышения. Просто, наглядно, не перегружает читателя лишними сущностями.
здесь же подобного не наблюдается. Здесь схема построения всех статей такова:
1. Ура! Питон умеет решать дифуры!
2. Берем процесс Х.
3. Решаем дифуру, описывающую процесс Х на питоне
4. Сдабриваем всё картинками формул, надергаными из книжек
5. Строим корявые графики
Выводы — да какие выводы! Зачем?! Один вывод — питон умеет решать ОДУ для процесса Х. Мы рады за Вас, мы сами давно знаем, что он это умеет.
Позволю себе, однако, ремарку.
Нет ничего плохого в том, что человек берет аналитическую задачу и решает её численно, а потом пишет об этом статью. Это очень хороший и сильный прием, я сам часто таковой использую. Но статья должна быть не о том как мы решаем элементарную и давно решенную задачу, а о том, какие выводы мы извлекаем из процесса.
Только при этом довольно трудно обосновать зачем вообще понадобилось численно решение, т.к. аналитическое априори лучше и смысл у численного появляется только в случае невозможности аналитического. Если аудитория это хорошо понимает и воспринимает обсуждаемый пример исключительно как отработку неких технических приёмов, то тогда почему бы и нет…
здесь же подобного не наблюдается. Здесь схема построения всех статей такова:
1. Ура! Питон умеет решать дифуры!
2. Берем процесс Х.
3. Решаем дифуру, описывающую процесс Х на питоне
4. Сдабриваем всё картинками формул, надергаными из книжек
5. Строим корявые графики
На самом деле, если бы обсуждаемая статья была бы вот прямо такой, то я бы и слова против не сказал (ну да, наивно, но почему бы и нет). Но тут же всё совершенно по другому.
Тут большая часть статьи занята рисованием окружностей (называя их при этом орбитами планет)!!!
И только в конце есть небольшой пример численного решения диф. уравнения для кометы, но при этом почему-то без учёта взаимодействия с планетами (хотя именно в учёте этого взаимодействия и есть весь смысл использования численного решения системы диф. уравнений, а без него можно просто подсмотреть готовое аналитическое решение).
В общем дикая статья и видимо ужасно не образованный автор. Хотя заявляемую им изначальную цель (популяризацию Питона) я полностью поддерживаю. Но не так же убого это делать…
Созданный график позволяет расширить задачу и посмотреть какой будет орбита луны, если радиус орбиты Луны будет равен R2=3.844*10e7.
я пропустить уже точно не могу.
И так, Вы фантазируете на тему формы орбиты Луны, варьируя расстояние от Земли до Луны. Задаете радиус в 38,44 млн. километров. А вы в курсе существования понятия о сфере действия тяготения одного тела, относительно другого?
Давайте-ка посчитаем условный радиус сферы влияния Земли (m) относительно Солнца (M)
r = a * (m / M) ^(2/5) = 1,5e8 * (5.98e24 / 1.99e30)^(2/5) = 930000 км
930 тысяч километров! При решении ограниченной задачи трех тел можно считать что за этой границей Земля не притягивает Луну вообще! То есть, находясь на расстоянии в 38 млн. км. от Земля Луна превратится в планету Солнечной системы, а не спутник Земли и будет иметь совершенно другую траекторию. Согласно законам небесной механики, траектория Луны нарисованная Вами существовать не может
Так что мой Вам совет —
уберите, и впредь, прежде чем писать ещё один опус тысячу раз подумайте и почитайте внимательно книги по предметной области
Центробежную силу я тут не учитываю (может у нас вовсе не подвижный спутник, а мы просто считаем силу действия гравитации на зависший относительно Солнца объект в некий момнет времени), но более точно выражение будет такое. Берем например случай афелия (обозначим буквой a, расстояние от Земли до тела — r), а массы Солнца и Земли — M и m.
Тогда нужно решить уравнение
m/r^2 — M/(a-r)^2 = 0 (случай нахождения тела на линии между Землей и Солнцем)
(M-m)*r^2 + 2am*r — ma^2 = 0
Вышло у меня что-то вроде такого:
r = a*sqrt(m)*(sqrt(M)-sqrt(m))/(M-m) = a*sqrt(m)/(sqrt(M)+sqrt(m)).
А вообще да, погрешность совсем небольшая и на Ваше замечание никак не влияет.
r = a (m / M)^(2/5)
где a — расстояние между телами, m и M — массы соответственно большего и меньшего тела. Практически это применяется в так называемом методе сопряжения конических сечений для приближенного расчета межпланетных траекторий и оценки устойчивости орбит.
from numpy import*
from matplotlib.pyplot import*
R1=1.496*10**8
T1=3.156*10**7
R2=3.844*10**5
T2=2.36*10**6
N=1000.0
def X(t):
return R1*cos(2*pi*t/T1)
def Y(t):
return R1*sin(2*pi*t/T1)
def x(t):
return R2*cos(2*pi*t/T2)
def y(t):
return R2*sin(2*pi*t/T2)
k=100
t=[T1*i/N for i in arange(0,k,1)]
X=array([X(w) for w in t])
Y=array([Y(w) for w in t])
x=array([x(w) for w in t])
y=array([y(w) for w in t])
XG=X+x
YG=Y+y
figure()
title("Траектория орбит Земли и Луны.\n Для положительных значений координат")
xlabel('X(t),XG(t)')
ylabel('Y(t),YG(t)')
axis([1.2*10**8,1.5*10**8,0,1*10**8])
plot(X,Y,label='Орбита Земли')
plot(XG,YG,label='Орбита Луны')
legend(loc='best')
grid(True)
show()
from numpy import*
from matplotlib.pyplot import*
R1=1.496*10**8
T1=3.156*10**7
R2=3.844*10**7
T2=2.36*10**6
N=1000.0
def X(t):
return R1*cos(2*pi*t/T1)
def Y(t):
return R1*sin(2*pi*t/T1)
def x(t):
return R2*cos(2*pi*t/T2)
def y(t):
return R2*sin(2*pi*t/T2)
t=[T1*i/N for i in arange(0,N,1)]
X=array([X(w) for w in t])
Y=array([Y(w) for w in t])
x=array([x(w) for w in t])
y=array([y(w) for w in t])
XG=X+x
YG=Y+y
figure()
title("Гелиоцентрическая орбита Земли и Луны")
xlabel('X(t),XG(t)')
ylabel('Y(t),YG(t)')
axis([-2.0*10**8,2.0*10**8,-2.0*10**8,2.0*10**8])
plot(X,Y,label='Орбита Земли')
plot(XG,YG,label='Орбита Луны')
legend(loc='best')
grid(True)
show()
Смотрим на исходные данные. В первой программе
R2=3.844*10**5
T2=2.36*10**6
Во второй программе
R2=3.844*10**7
T2=2.36*10**6
Это что ж это, милейший, получается — расстояние от планеты до спутника во втором случае в 100 раз больше, движение происходит по круговой орбите, а у вас… период обращения Луны в обоих случаях одинаков!
Вы знаете что такое первая космическая скорость?
Теперь мне понятно, почему Вы мямлили, когда я задал Вам вопрос откуда взялось 4пи^2 в уравнениях движения кометы. Вы не знаете о законе всемирного тяготения, Вы вообще ни черта не смыслите в небесной механике! И смеете мяукать о Ландау!
Статью в утиль! Не позорьтесь!
P.S. Про заведующих не скажу, но преподы бывают совсем странные.
но преподы бывают совсем странные.
Встречал я одного такого — величал себя доктором железнодорожных наук, написал письмо Медведеву (на тот момент президенту), что законы Ньютона неправильные. Доказывал, что силу можно переносить вдоль дуги окружности. Хотя человек очень уважаемый, но возраст и отсутствие занятости свое дело сделали. Грусно
Построение орбит небесных тел средствами Python