研究過程
- 起源與提出:1687 年牛頓提出 “三體問題”,旨在研究三個可視為質點的天體在相互之間萬有引力作用下的運動規律,但因運動方程過于復雜,難以得到完全解。
- 歐拉的貢獻1:1767 年,瑞士數學家萊昂哈德?歐拉根據旋轉的二體引力場推算出了其中的三個特解,即 L1、L2 和 L3。
- 拉格朗日的突破1:1772 年,法國數學家約瑟夫?路易?拉格朗日推算出了剩下的兩個特解 L4 和 L5。至此,平面圓型限制性三體問題的五個特解全部被找到,后來人們將這五個點統稱為拉格朗日點。
- 觀測證實1:1906 年,天文學家馬克斯?沃爾夫發現一顆位于火星和木星間主帶以外的小行星,它與木星、太陽構成等邊三角形,位于木星前方的 L4 點。同年還發現 617 號小行星在木星后方的 L5 點。20 世紀 80 年代,在土星和它的大衛星構成的運動系統中也發現類似等邊三角形。截至 2009 年,天文學家在木星的 L4 和 L5 周圍各發現超過 1000 顆小行星,進一步證實了拉格朗日點的存在。
重要意義
- 在天文學領域
- 解釋天體分布:有助于解釋為何某些小行星和衛星能穩定存在于行星或太陽的特定軌道上,如木星的特洛伊小行星群位于木星的 L4 和 L5 點。
- 觀測優勢1:日地系統的 L1 點能提供不間斷的太陽視野,是觀測太陽的絕佳位置;L2 點有穩定的熱力學環境以及與地球相對固定的構型,利于開展天文觀測任務,如詹姆斯?韋伯空間望遠鏡就位于日地系統的 L2 點。
- 在航天領域
- 節省能源:航天器位于拉格朗日點時,受兩個大天體引力作用,可保持相對穩定的軌道,能以最小的能量消耗維持軌道,節省大量燃料,降低航天任務成本。
- 作為星際探測中轉站1:可作為星際探測的理想中轉站,如月球 - 地球系統的 L1 點可作為地月轉移的中繼點,為航天器的軌道轉移和姿態調整等提供便利,有助于更深入地開展深空探測任務。
- 在天體力學理論方面
- 推動三體問題研究:是限制性三體問題的重要特解,為三體問題的研究提供了特殊情況和突破口,幫助科學家更好地理解和處理復雜的天體力學問題,推動了天體力學理論的發展。
- 驗證引力理論:對拉格朗日點的研究和觀測,是對牛頓萬有引力定律等引力理論的有效驗證,進一步鞏固了引力理論在天體力學中的地位,也為廣義相對論等更深入的引力理論研究提供了實踐基礎。
- 在未來太空開發方面
- 潛在太空殖民地選址:拉格朗日點尤其是 L5 點相對穩定,可作為未來太空殖民地的潛在位置,為人類在太空中長期居住和建設提供可能,為解決地球資源、人口等問題提供新的思路和方向。
- 資源開發的戰略點:未來若對小行星等天體資源進行開發,拉格朗日點可作為資源運輸、存儲和加工的戰略節點,便于對資源進行集中處理和利用,為太空資源開發產業的發展提供支撐。
1、推導過程?
?3. Python 代碼實現拉格朗日點計算和運動軌跡仿真
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import newton# 定義常量
G = 6.67430e-11 # 萬有引力常數 (m^3 kg^-1 s^-2)
M_sun = 1.989e30 # 太陽質量 (kg)
M_earth = 5.972e24 # 地球質量 (kg)
a = 1.496e11 # 地球到太陽的平均距離 (m)
T = 365.25 * 24 * 3600 # 地球繞太陽的公轉周期 (s)
omega = 2 * np.pi / T # 地球繞太陽的公轉角速度 (rad/s)
mu = M_earth / (M_sun + M_earth)# 定義求解 L2 點的方程
def f(x):return -omega**2 * x + G * M_sun / (x + mu * a)**2 + G * M_earth / (x - (1 - mu) * a)**2# 使用牛頓 - 拉夫遜方法求解 L2 點
L2 = newton(f, a + 1e9)print(f"L2 點到太陽的距離: {L2:.2e} m")# 運動軌跡仿真
t = np.linspace(0, T, 1000)
x_sun = -mu * a * np.cos(omega * t)
y_sun = -mu * a * np.sin(omega * t)
x_earth = (1 - mu) * a * np.cos(omega * t)
y_earth = (1 - mu) * a * np.sin(omega * t)
x_L2 = L2 * np.cos(omega * t)
y_L2 = L2 * np.sin(omega * t)# 繪制運動軌跡
plt.figure(figsize=(10, 10))
plt.plot(x_sun, y_sun, label='Sun')
plt.plot(x_earth, y_earth, label='Earth')
plt.plot(x_L2, y_L2, label='L2 Point')
plt.scatter(0, 0, color='black', label='Barycenter')
plt.xlabel('x (m)')
plt.ylabel('y (m)')
plt.title('Sun - Earth - L2 Point Orbits')
plt.legend()
plt.axis('equal')
plt.grid(True)
plt.show()
效果如下
代碼解釋
- 常量定義:定義了萬有引力常數、太陽質量、地球質量、地球到太陽的平均距離、地球繞太陽的公轉周期和公轉角速度等常量。
- 求解?L2??點:定義了求解?L2??點的方程?f(x),并使用?
scipy.optimize.newton
?函數求解該方程。 - 運動軌跡仿真:計算太陽、地球和?L2??點在一段時間內的位置,并使用?
matplotlib
?庫繪制它們的運動軌跡。
注意事項
- 上述代碼假設韋伯望遠鏡精確位于?L2??點,實際情況中,望遠鏡會圍繞?L2??點進行小幅度的軌道保持操作。
- 代碼中的數值計算是基于簡化的二體問題模型,實際的太陽系是一個多體系統,需要考慮更多的因素。
4. MATLAB 代碼實現拉格朗日點計算和運動軌跡仿真
?代碼如下
G = 6.67430e-11; % 萬有引力常數 (m^3 kg^-1 s^-2)
M_sun = 1.989e30; % 太陽質量 (kg)
M_earth = 5.972e24; % 地球質量 (kg)
a = 1.496e11; % 地球到太陽的平均距離 (m)
T = 365.25 * 24 * 3600; % 地球繞太陽的公轉周期 (s)
omega = 2 * pi / T; % 地球繞太陽的公轉角速度 (rad/s)
mu = M_earth / (M_sun + M_earth);% 定義求解 L2 點的函數
f = @(x) -omega^2 * x + G * M_sun / (x + mu * a)^2 + G * M_earth / (x - (1 - mu) * a)^2;% 使用牛頓 - 拉夫遜方法求解 L2 點
x0 = a + 1e9; % 初始猜測值
L2 = fzero(f, x0);
% 創建 3D 圖形窗口
figure('Position', [100, 100, 800, 600]);
ax = gca;
ax.XLim = [-3, 3];
ax.YLim = [-3, 3];
ax.ZLim = [-1, 1];
xlabel('X');
ylabel('Y');
zlabel('Z');
title('3D Celestial Bodies Animation');
grid on;% 初始化點
x = 0; y = 0; z = 0;
h = plot3(x, y, z, 'ro'); % 'ro' 表示紅色圓點
hold on
x2 = 0; y2 = 0; z2 = 0;
m = plot3(x2, y2, z2, 'bo');
hold on
x3 = 0; y3 = 0; z3 = 0;
n = plot3(x3, y3, z3, 'yo');
hold on
legend('h', 'm', 'n');
grid on% 動畫循環% 計算不同時間點的位置
t = linspace(0, T, 1000);
x_sun = -mu * a * cos(omega * t);
y_sun = -mu * a * sin(omega * t);
z_sun = zeros(size(t));x_earth = (1 - mu) * a * cos(omega * t);
y_earth = (1 - mu) * a * sin(omega * t);
z_earth = zeros(size(t));x_L2 = L2 * cos(omega * t);
y_L2 = L2 * sin(omega * t);
z_L2 = zeros(size(t));set(h, 'XData', x_sun, 'YData', y_sun, 'ZData', z_sun); % 更新點的位置
set(m, 'XData', x_earth, 'YData', y_earth, 'ZData', z_earth); % 更新點的位置
set(n, 'XData', x_L2, 'YData', y_L2, 'ZData', z_L2); % 更新點的位置drawnow; % 更新圖形
pause(0.1); % 暫停一段時間以觀察動畫效果
效果如下
代碼解釋:
- 常量定義:定義了仿真所需的各種物理常量,如萬有引力常數、太陽和地球的質量、日地距離、公轉周期等。
- 求解 L2 點:定義了一個匿名函數?
f
?來表示求解 L2 點的方程,然后使用?fzero
?函數求解該方程得到 L2 點的位置。 - 位置計算:計算太陽、地球和 L2 點在不同時間點的三維位置,存儲在對應的?
x
、y
、z
?數組中。這里假設所有天體都在同一平面(z
?坐標為 0)上運動。 - 3D 圖形初始化:創建一個 3D 圖形窗口,設置坐標軸范圍、標簽和標題,并初始化表示太陽、地球和 L2 點的圖形元素。
- 動畫循環:使用?
for
?循環遍歷所有時間點,在每一幀中更新物體的位置,并使用?drawnow limitrate
?函數刷新圖形,從而實現動畫效果。
運行此代碼后,你將看到一個動態的 3D 畫面,展示太陽、地球和位于 L2 點的韋伯望遠鏡的運動過程。
5. 結論
從以上推導和畫圖結果可以知道L2點的運動軌跡如何,供大家參考分析,文畢。