2018年IOAA理论第10题-牛郎和织女

来自astro-init

英文题目

(T10) Vega and Altair(75 points)

As per a very famous Chinese folklore about love, Vega and Altair are two lovers. It is said that they can meet each other once every year on a bridge made up of birds over the Milky Way. The parameters of two stars are given in the table below. For the purpose of this question, assume that the coordinate frame is fixed (i.e. not affected by precession or motion of the Sun).

Based on this data, answer the following questions:

(a) (9 points) What is the angular separation of the two stars?

(b) (6 points) Calculate the distance (in parsecs) between Vega and Altair.

(c) (3 points) Calculate position angles of the proper motion vectors of each of these two stars.

For parts d-g, assume that the angular velocity of the stars on the celestial sphere remains constant. This is not a physical situation but this is an assumption to simplify the problem.

(d) (2 points) How many common points on the celestial sphere are there which can be reached by both these stars?

(e) (20 points) Find the coordinates of the closest such point. (Note: Drawing the situation on a celestial sphere will help you in visualising the situation) (f) (8 points) Find when (which year) each of these stars were / will be at that point.

(g) (5 points) When Altair was / will be at that point, what would be its angular separation from Vega?

(h) (22 points) Find coordinates of any point (if it exists) in 3-D space which was /will be visited by both these stars. Do not ignore radial velocities for this part of the question.

Star/恒星 Right Ascension/赤经

(J2000.0)

Declination/赤纬

(J2000.0)

Parallax/视差

(mas)

Proper Motion/自行 Radial Volocity/视向速度

(km/s)

μαcosδ(mas/year) μδ(mas/year)
Vega/织女星 18h36m56.49s +38°47'07.7'' 130.23 +200.94 +286.23 -13.9
Altair/牛郎星 19h50m47.70s +8°52'13.3'' 194.85 +536.23 +385.29 -26.1

中文翻译

(T10)牛郎和织女(75分)

根据中国一段有名的神话传说,牛郎星和织女星是一对恋人。据说他们每年又一次机会在银河上空的鹊桥上相会。两颗星的参数在下表中列出。为了解题方便,假设参考架是固定的(即不会受岁差和太阳自身的运动影响。)

根据这些数据,回答下列问题:

(a)(9分)这两颗星的角距离是多少?

(b)(6分)计算这每颗星在空间中的距离,单位为秒差距。

(c)(3分)计算每颗星自行的方向角。

对于d-g小问,假设两颗星在天球上的自行角速度保持恒定。这在实际情况是不可能的,但为了简化问题做出这个假设。

(d)(2分)这两颗星在天球上经过的轨迹有多少个公共点?

(e)(20分)找到离他们最近的公共点。(提示:画出示意图有助于你理解情景)

(f)(8分)计算什么时候(具体到年)每颗星位于这个点。

(g)(5分)当牛郎星位于这个点时,它与织女星的角距离是多少?

(h)(22分)找出它们在空间中轨迹的公共点(如果存在)。这个小问中注意不要忽略视向速度。

解答

本解答只提供(a)(b)(c)(d)(e)小问的两种解法,目的是对比向量解法于传统球面三角解法的计算量与出错的可能性。

请注意,向量解法并不适用于所有的类似题目。坐标转换题目涉及到旋转矩阵,这并不在高中数学能接触的范畴。

为方便撰写,计算过程使用了简单matlab代码。

球面三角解法

1.将时分秒、度分秒化成度

clear;
v_a=279+14/60+7.35/3600;%织女星赤经
v_d=38+47/60+7.7/3600;%织女星赤纬
v_r=1/(130.23/1000);%织女星距离
a_a=297+41/60+55.5/3600;%牛郎星赤经
a_d=8+52/60+13.3/3600;%牛郎星赤纬
a_r=1/(194.95/1000);%牛郎星距离

2.解牛郎星A、织女星V和北天极P组成的球面三角形

P=a_a-v_a;
PA=90-a_d;
PV=90-v_d;
AV=acosd(cosd(PA)*cosd(PV)+sind(PA)*sind(PV)*cosd(P))%a小问
AV = 34.1958
A=asind(sind(P)*sind(PV)/sind(AV))
A = 26.0557
V=asind(sind(P)*sind(PA)/sind(AV))
V = 33.8319

2.1.角V是钝角还是锐角?

V=180-V
V = 146.1681

3.计算两颗星的空间距离

lAV=sqrt(v_r^2+a_r^2-2*v_r*a_r*cosd(AV))
lAV = 4.4852

4.根据自行数据计算方向角

v_v=atand(200.94/286.23)
v_v = 35.0697
a_v=atand(536.23/385.29)%c小问
a_v = 54.3021

5.解画出牛郎星、织女星、交叉点组成的球面三角形

IAV=a_v+A
IAV = 80.3578
IVA=V-v_v
IVA = 111.0984
AIV=acosd(-cosd(IAV)*cosd(IVA)+sind(IAV)*sind(IVA)*cosd(AV))
AIV = 34.8084
AI=asind(sind(IVA)*sind(AV)/sind(AIV))
AI = 66.7171
VI=asind(sind(IAV)*sind(AV)/sind(AIV))
VI = 76.0858

6.计算PI,进而得到交叉点赤纬

PI=acosd(cosd(AI)*cosd(PA)+sind(AI)*sind(PA)*cosd(a_v))
PI = 53.8052
PI2=acosd(cosd(VI)*cosd(PV)+sind(VI)*sind(PV)*cosd(v_v))%分别使用PIA和PIV计算PI,作为验算
PI2 = 39.6558
%为什么不一样??!!

7.重新做第4步。实际上,交叉点I在牛郎和织女星的背后

IAV=180-(a_v+A)
IAV = 99.6422
IVA=180-(V-v_v)
IVA = 68.9016
AIV=acosd(-cosd(IAV)*cosd(IVA)+sind(IAV)*sind(IVA)*cosd(AV))
AIV = 34.8084
AI=asind(sind(IVA)*sind(AV)/sind(AIV))
AI = 66.7171
VI=asind(sind(IAV)*sind(AV)/sind(AIV))
VI = 76.0858

8.重新做第5步。∠PIA和∠PIV实际上也是补角

PI=acosd(cosd(AI)*cosd(PA)+sind(AI)*sind(PA)*cosd(180-a_v))
PI = 117.9455
PI2=acosd(cosd(VI)*cosd(PV)+sind(VI)*sind(PV)*cosd(180-v_v))
PI2 = 117.9455
%这次一样了!

9.计算交叉点赤经

API=asind(sind(AI)*sind(180-a_v)/sind(PI))
PI = 57.6117
I_d=90-PI
I_d = -27.9455
I_a=a_a-API%e小问
I_a = 240.0870

10.后话:如果你没注意到第2步中∠V实际是钝角,会发生什么?

V=asind(sind(P)*sind(PA)/sind(AV));
IAV=180-(a_v+A);
IVA=180-(V-v_v);
AIV=acosd(-cosd(IAV)*cosd(IVA)+sind(IAV)*sind(IVA)*cosd(AV));
AI=asind(sind(IVA)*sind(AV)/sind(AIV));
VI=asind(sind(IAV)*sind(AV)/sind(AIV));
PI=acosd(cosd(AI)*cosd(PA)+sind(AI)*sind(PA)*cosd(180-a_v))
PI = 80.7170
PI2=acosd(cosd(VI)*cosd(PV)+sind(VI)*sind(PV)*cosd(180-v_v))
PI2 = 80.9302
%非常致命:即使你验算,也很可能无法发现之前的错误!
I_d=90-PI
I_d = 9.2830

如果你没有意识到交叉点在背后,你的答案出错。流程:1-2-3-4-5-出错

这个错误可以通过验算发现,但一般来说你不会验算。流程:1-2-3-4-5-6-7-8-满分

如果你没意识到V是钝角,即使验算也无法发现。流程:1-2-9-出错

只有你同时避开了这两个坑,有可能拿到满分。流程:1-2-3-6-7-8-满分

向量解法

将球面坐标转化成直角坐标,对向量做操作,可能可以节省计算

1.将球面坐标转化为弧度,写成一个向量

clear;
v_a=279+14/60+7.35/3600;
v_d=38+47/60+7.7/3600;
v_r=1/(130.23/1000);
a_a=297+41/60+55.5/3600;
a_d=8+52/60+13.3/3600;
a_r=1/(194.95/1000);
vy=[deg2rad(v_a),deg2rad(v_d),v_r];
ay=[deg2rad(a_a),deg2rad(a_d),a_r];

2.将球坐标的向量转化成直角坐标向量

具体转换方式(sph2cart函数):

x=cos(δ)cos(α)

y=cos(δ)sin(α)

z=sin(δ)

[vc(1),vc(2),vc(3)]=sph2cart(vy(1),vy(2),vy(3));
vc
vc = 0.9606   -5.9080    4.8100
[ac(1),ac(2),ac(3)]=sph2cart(ay(1),ay(2),ay(3));
ac
ac = 2.3558   -4.4874    0.7910

两个直角坐标点乘再除以两个模长,即可求出两颗星角距离的余弦值

AV=acosd(dot(vc,ac)/(a_r*v_r))%(a)问
AV = 34.1958

两个直角坐标相减再取模,即可求出两颗星距离

lAV=norm(vc-ac)%(b)问
lAV = 4.4852

3.将自行加到现在的球面坐标上,同样转化成直角坐标

vyd=vy(1:2)+deg2rad([200.94/1000/3600/cos(vy(2)),286.23/1000/3600])*1000;
ayd=ay(1:2)+deg2rad([536.23/1000/3600/cos(ay(2)),385.29/1000/3600])*1000;
%请注意在赤经加赤经自行时,不需要cos(δ),因此除掉
[vcd(1),vcd(2),vcd(3)]=sph2cart(vyd(1),vyd(2),vy(3));
vcd
vcd = 0.9669   -5.9002    4.8183
[acd(1),acd(2),acd(3)]=sph2cart(ayd(1),ayd(2),vy(3));
acd
acd = 3.5432   -6.7062    1.1982

4.对每颗星,现在的直角坐标与自行后的直角坐标叉乘,可以得到旋转平面的法向量 叉乘(cross)具体计算方式:

| i j k | | x1 y1 z1 | | x2 y2 z2 |

xc=y1z2-z1y2

yc=z1x2-x1z2

zc=x1y2-y1x2

vp=cross(vc,vcd)
vp = -0.0866    0.0223    0.0447
ap=cross(ac,acd)
ap = -0.0725   -0.0202    0.1011

5.两个平面的交叉点同时与两个法向量垂直,因此将两个法向量相叉乘

inc=cross(ap,vp)
inc = -0.0032   -0.0055   -0.0034

6.最后,转换回球面坐标,再换回角度值

δ=arcsin(z/r)

α=arcsin(y/(rcosδ))=arccos(x/(rcosδ))

[incy(1),incy(2),~]=cart2sph(inc(1),inc(2),inc(3));
incyd=rad2deg(incy)%赤经小于0°,加上360°
incyd = -119.8619  -27.9405
I_a=incyd(1)+360
I_a = 240.1381
I_d=incyd(2)
I_d = -27.9405

7.另一个交叉点在哪?很显然,在我们现在求得的坐标的对面。通过观察也可以发现另一个交叉点更远。如果另一个更近,就将赤纬取相反数,赤经加12h。

评论

Quan787讨论) 2019年8月5日 (一) 17:25 (CST)

这道题几乎是所有IOAA题目中计算量最大的一道题。仅a-e小问就涉及解一个平面三角形和至少三个球面三角形,而解球面三角形过程中也要求选手时刻注意反三角函数的多值性,一旦出错就无法算出正确答案。而后几问则应用了空间向量中更为复杂的数学工具,超出大部分选手的掌握范围。

这道题的平均得分明显低于本年度另一道长问题。而判分过程中也发现原始答案存在错误,暗示出题者也并不能轻松解决这道难题。这使得这道题的判分过程异常艰辛。

对于关于天球的问题,以往的资料几乎全部使用球面三角解法。而这种解法存在一些先天缺陷,一是计算极为繁琐,二是反三角函数的多值性难以解决,需要每一步都画图判定,增加犯错的可能性。而本页面提供的第二种解法,使用空间向量,可以轻松解决角距离和真实距离的问题。在之后的小问中,叉乘这一向量运算展示出了它特有的威力。空间向量是高中数学内容,唯一需要补充的只有叉乘。另外,这些运算几乎不存在多值性问题,唯最后一步需要进行简单判断。

Jingsong Guo

根据本人验证,向量解法在保留到小数点后五位(七位有效数字)时,计算精度大约为1%