Телескопы покупают здесь


A A A A Автор Тема: Помогите разобраться.  (Прочитано 1166 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн АртемийАвтор темы

  • Новичок
  • *
  • Сообщений: 26
  • Благодарностей: 0
    • Сообщения от Артемий
Помогите разобраться.
« : 04 Янв 2008 [16:37:12] »
Доброго всем времени суток.
Решил для себя написать небольшую прогу для определения положения солнца, всё делал по книжке , но столкнулся со следующей проблемой: (выделенно красным)

The Sun's position.
Today most people know that the Earth orbits the Sun and not the other way around. But below we'll pretend as if it was the other way around. These orbital elements are thus valid for the Sun's (apparent) orbit around the Earth. All angular values are expressed in degrees:

    w = 282.9404_deg + 4.70935E-5_deg   * d    (longitude of perihelion)
    a = 1.000000                               (mean distance, a.u.)
    e = 0.016709 - 1.151E-9             * d    (eccentricity)
    M = 356.0470_deg + 0.9856002585_deg * d    (mean anomaly)
We also need the obliquity of the ecliptic, oblecl:

    oblecl = 23.4393_deg - 3.563E-7_deg * d
and the Sun's mean longitude, L:

    L = w + M
By definition the Sun is (apparently) moving in the plane of the ecliptic. The inclination, i, is therefore zero, and the longitude of the ascending node, N, becomes undefined. For simplicity we'll assign the value zero to N, which means that w, the angle between acending node and perihelion, becomes equal to the longitude of the perihelion.

Now let's compute the Sun's position for our test date 19 april 1990. Earlier we've computed d = -3543.0 which yields:

    w = 282.7735_deg
    a = 1.000000
    e = 0.016713
    M = -3135.9347_deg
We immediately notice that the mean anomaly, M, will get a large negative value. We use our function rev() to reduce this value to between 0 and 360 degrees. To do this, rev() will need to add 9*360 = 3240 degrees to this angle:

    M = 104.0653_deg
We also compute:

    L = w + M = 386.8388_deg = 26.8388_deg

    oblecl = 23.4406_deg
Let's go on computing an auxiliary angle, the eccentric anomaly. Since the eccentricity of the Sun's (i.e. the Earth's) orbit is so small, 0.017, a first approximation of E will be accurate enough. Below E and M are in degrees:

До этого момента все ответы сходилось, но решая это Уравнение Кеплера (ниже) у меня получается E=103.70447, а по примеру E = 104.9904

     E = M + (180/pi) * e * sin(M) * (1 + e * cos(M))
    E = 104.9904_deg
[/color]


Now we compute the Sun's rectangular coordinates in the plane of the ecliptic, where the X axis points towards the perihelion:

    x = r * cos(v) = cos(E) - e
    y = r * sin(v) = sin(E) * sqrt(1 - e*e)
We plug in E and get:

    x = -0.275370
    y = +0.965834
Convert to distance and true anomaly:

    r = sqrt(x*x + y*y)
    v = arctan2( y, x )
Numerically we get:

    r = 1.004323
    v = 105.9134_deg
Now we can compute the longitude of the Sun:

    lon = v + w

    lon = 105.9134_deg + 282.7735_deg = 388.6869_deg = 28.6869_deg
We're done!

Если кому не тяжело помогите кто чем может.

Оффлайн Александр Вольф

  • *****
  • Сообщений: 3 329
  • Благодарностей: 104
  • Разработчик Stellarium'а
    • Skype - alex.v.wolf
    • DeepSkyHosting: alexwolf
    • Сообщения от Александр Вольф
    • 47 Tucanae
Re: Помогите разобраться.
« Ответ #1 : 05 Янв 2008 [13:09:44] »
До этого момента все ответы сходилось, но решая это Уравнение Кеплера (ниже) у меня получается E=103.70447, а по примеру E = 104.9904

     E = M + (180/pi) * e * sin(M) * (1 + e * cos(M))

Если кому не тяжело помогите кто чем может.

В выделенном примере получается E = 104.9904. Возможно у Вас получился ошибочный результат из-за ошибок округления.
С уважением, Александр
Астротоп | Stellarium: donate | KStars | Astrarium
SW ED80/SW AllView GOTO | Celestron 15x70 | Celestron 25-125x80 | Veber 25x100

Оффлайн АртемийАвтор темы

  • Новичок
  • *
  • Сообщений: 26
  • Благодарностей: 0
    • Сообщения от Артемий
Re: Помогите разобраться.
« Ответ #2 : 05 Янв 2008 [14:05:08] »
Спасибо за ответ буду исправлять