当前位置: 首页 > article >正文

韦伯望远镜的拉格朗日点计算推导过程,包含MATLAB和python运动轨迹仿真代码

研究过程

  1. 起源与提出:1687 年牛顿提出 “三体问题”,旨在研究三个可视为质点的天体在相互之间万有引力作用下的运动规律,但因运动方程过于复杂,难以得到完全解。
  2. 欧拉的贡献1:1767 年,瑞士数学家莱昂哈德・欧拉根据旋转的二体引力场推算出了其中的三个特解,即 L1、L2 和 L3。
  3. 拉格朗日的突破1:1772 年,法国数学家约瑟夫・路易・拉格朗日推算出了剩下的两个特解 L4 和 L5。至此,平面圆型限制性三体问题的五个特解全部被找到,后来人们将这五个点统称为拉格朗日点。
  4. 观测证实1:1906 年,天文学家马克斯・沃尔夫发现一颗位于火星和木星间主带以外的小行星,它与木星、太阳构成等边三角形,位于木星前方的 L4 点。同年还发现 617 号小行星在木星后方的 L5 点。20 世纪 80 年代,在土星和它的大卫星构成的运动系统中也发现类似等边三角形。截至 2009 年,天文学家在木星的 L4 和 L5 周围各发现超过 1000 颗小行星,进一步证实了拉格朗日点的存在。

重要意义

  1. 在天文学领域
    • 解释天体分布:有助于解释为何某些小行星和卫星能稳定存在于行星或太阳的特定轨道上,如木星的特洛伊小行星群位于木星的 L4 和 L5 点。
    • 观测优势1:日地系统的 L1 点能提供不间断的太阳视野,是观测太阳的绝佳位置;L2 点有稳定的热力学环境以及与地球相对固定的构型,利于开展天文观测任务,如詹姆斯・韦伯空间望远镜就位于日地系统的 L2 点。
  2. 在航天领域
    • 节省能源:航天器位于拉格朗日点时,受两个大天体引力作用,可保持相对稳定的轨道,能以最小的能量消耗维持轨道,节省大量燃料,降低航天任务成本。
    • 作为星际探测中转站1:可作为星际探测的理想中转站,如月球 - 地球系统的 L1 点可作为地月转移的中继点,为航天器的轨道转移和姿态调整等提供便利,有助于更深入地开展深空探测任务。
  3. 在天体力学理论方面
    • 推动三体问题研究:是限制性三体问题的重要特解,为三体问题的研究提供了特殊情况和突破口,帮助科学家更好地理解和处理复杂的天体力学问题,推动了天体力学理论的发展。
    • 验证引力理论:对拉格朗日点的研究和观测,是对牛顿万有引力定律等引力理论的有效验证,进一步巩固了引力理论在天体力学中的地位,也为广义相对论等更深入的引力理论研究提供了实践基础。
  4. 在未来太空开发方面
    • 潜在太空殖民地选址:拉格朗日点尤其是 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()

效果如下

代码解释

  1. 常量定义:定义了万有引力常数、太阳质量、地球质量、地球到太阳的平均距离、地球绕太阳的公转周期和公转角速度等常量。
  2. 求解 L2​ 点:定义了求解 L2​ 点的方程 f(x),并使用 scipy.optimize.newton 函数求解该方程。
  3. 运动轨迹仿真:计算太阳、地球和 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); % 暂停一段时间以观察动画效果

效果如下

代码解释:

  1. 常量定义:定义了仿真所需的各种物理常量,如万有引力常数、太阳和地球的质量、日地距离、公转周期等。
  2. 求解 L2 点:定义了一个匿名函数 f 来表示求解 L2 点的方程,然后使用 fzero 函数求解该方程得到 L2 点的位置。
  3. 位置计算:计算太阳、地球和 L2 点在不同时间点的三维位置,存储在对应的 xyz 数组中。这里假设所有天体都在同一平面(z 坐标为 0)上运动。
  4. 3D 图形初始化:创建一个 3D 图形窗口,设置坐标轴范围、标签和标题,并初始化表示太阳、地球和 L2 点的图形元素。
  5. 动画循环:使用 for 循环遍历所有时间点,在每一帧中更新物体的位置,并使用 drawnow limitrate 函数刷新图形,从而实现动画效果。

运行此代码后,你将看到一个动态的 3D 画面,展示太阳、地球和位于 L2 点的韦伯望远镜的运动过程。

5. 结论

从以上推导和画图结果可以知道L2点的运动轨迹如何,供大家参考分析,文毕。

相关文章:

韦伯望远镜的拉格朗日点计算推导过程,包含MATLAB和python运动轨迹仿真代码

研究过程 起源与提出:1687 年牛顿提出 “三体问题”,旨在研究三个可视为质点的天体在相互之间万有引力作用下的运动规律,但因运动方程过于复杂,难以得到完全解。欧拉的贡献1:1767 年,瑞士数学家莱昂哈德・…...

iOS OC匹配多个文字修改颜色和字号

1、传入字符串数组&#xff0c;通过NSMutableAttributedString修改匹配文字 可以根据需要搞成匹配单个字符串 - (NSAttributedString *)applyFontSizeToText:(NSString *)text matchStrings:(NSArray<NSString *> *)matchStrings {NSMutableAttributedString *attribut…...

编程助手学Python--Deepseek对OpenAI的Python库调用GPT-4模型生成对话回复理解

编程助手学Python--Deepseek对OpenAI的Python库调用GPT-4模型生成对话回复理解 1. 导入库2. 设置环境变量3. 打印环境变量4. 配置 OpenAI API5. 打印 API 配置6. 定义对话消息7. 调用 OpenAI API8. 打印 API 响应9. 提取并打印生成的回复10. 代码总结11. 注意事项12. 完整代码示…...

计算机的物理组成——微机的物理结构

对于用户和维修人员来说&#xff0c;最重要的是微机实际物理结构&#xff0c;即组成微机的各个部件&#xff0c;通俗来说&#xff0c;他由主机、键盘、鼠标、显示器等部分组成。&#xff08;在 计算机基础知识——微机系统 中已经介绍了微机的主机部分&#xff09; PC 系列微机…...

STM32 RS232通信开发全解析 | 零基础入门STM32第五十九步

主题内容教学目的/扩展视频RS232串口电路原理&#xff0c;跳线设置&#xff0c;驱动程序。与超级终端通信。了解电路原理和RS232协议。 师从洋桃电子&#xff0c;杜洋老师 &#x1f4d1;文章目录 一、RS232通信系统架构二、RS232核心原理与硬件设计2.1 电气特性对比2.2 典型电路…...

C# net deepseek RAG AI开发 全流程 介绍

deepseek本地部署教程及net开发对接 步骤详解&#xff1a;安装教程及net开发对接全流程介绍 DeepSeekRAG 中的 RAG&#xff0c;全称是 Retrieval-Augmented Generation&#xff08;检索增强生成&#xff09;&#xff0c;是一种结合外部知识库检索与大模型生成能力的技术架构。其…...

建筑管理(2): 施工承包模式,工程监理,质量监督

文章目录 一. 施工承包模式1. 施工总承包模式1.1 施工总承包的特点1.2 施工总承包模式中的承包方 2. 平行承包模式3. 联合体与合作体承包模式 二. 工程监理1. 强制实行监理的工程范围1.1 国家重点建设工程1.2 大中型公用事业工程(重点)1.3 成片开发建设的住宅小区工程1.4 必须实…...

最节省服务器,手搓电子证书查询系统

用户预算150元&#xff0c;想要一个最简单证书查询系统。前台能查询证书、后台管理员能登录能修改密码&#xff0c;证书能够手动输入修改删除、批量导入导出删除数据、查询搜索。能够兼容苹果、安卓、PC三端浏览器&#xff0c;最后帮忙部署到云服务器上。 用户预算不多&#xf…...

Go string 字符串底层逻辑

在 Go 语言中&#xff0c;string 类型的底层结构是一个结构体&#xff0c;包含两个字段&#xff1a;一个指向字节数组的指针和该字节数组的长度。以下是其在 Go 源码中的大致定义&#xff1a;type stringStruct struct {str unsafe.Pointerlen int } str&#xff1a;这是一个指…...

STM32F407 IIC通信

1、IIC 介绍 IIC(Inter-Integrated Circuit)总线是一种由数据线 SDA 和时钟线 SCL 构成的两线式串行总线,可发送和接收数据,常用于 MPU/MCU 与外部设备连接通信、数据传输。每个连接到总线的设备都有一个独立的地址,主机可以通过该地址来访问不同设备。因为 IIC 协议比较简单…...

【论文阅读方法】沐神课程:如何读论文

一篇论文的一般结构 titleabstractintroductionmethodexperienceconclusion 三明治论文阅读法 第一遍&#xff1a;海选 titleabstractconclusion——确定要不要读第二遍&#xff1a;精读 对整个文章过一遍&#xff0c;知道每一块在做什么 可以从标题开始读到最后&#xff0c;注…...

机器人基础知识

在机器人学中&#xff0c;“inverse dynamics”&#xff08;逆动力学&#xff09;和 “forward dynamics”&#xff08;正向动力学&#xff09;是两个核心概念&#xff0c;它们帮助我们理解和计算机器人如何移动以及需要应用什么样的力来实现这些移动。 Inverse Dynamics&#…...

jupyter无法转换为PDF,HTMLnbconvert failed: Pandoc wasn‘t found.

无法转为PDF 手动下载工具 https://github.com/jgm/pandoc/releases/tag/3.6.3 似乎跟我想的不大一样&#xff0c;还有新的报错 https://nbconvert.readthedocs.io/en/latest/install.html#installing-tex 不知道下的啥玩意儿 sudo apt-get install texlive-xetex texlive-fon…...

Python高级算法与数据结构优化实战

Python高级算法与数据结构优化实战 在算法竞赛中,掌握高级优化技巧和数据结构实现可以显著提升解题效率和代码性能。本文深入探讨Python中常见算法问题的高效实现方法,通过实际比赛案例展示如何优化时间复杂度和空间复杂度。 一、前缀和与差分数组 前缀和与差分数组是算法…...

使用 Excel 实现绩效看板的自动化

引言 在日常工作中&#xff0c;团队的绩效监控和管理是确保项目顺利进行的重要环节。然而&#xff0c;面临着以下问题&#xff1a; ​数据分散&#xff1a;系统中的数据难以汇总&#xff0c;缺乏一个宏观的团队执行情况视图。​看板缺失&#xff1a;系统本身可能无法提供合适…...

Tomcat新手登峰指南:从零到部署的原子化实践

开篇&#xff1a;为什么选择Tomcat&#xff1f; 2024年StackOverflow调查显示&#xff0c;Tomcat以68.9%占有率蝉联Java Web服务器榜首。但新手常陷入三大误区&#xff1a; 直接使用IDE内置Tomcat导致生产环境配置失准权限配置不当引发安全漏洞内存参数未优化造成性能瓶颈 本…...

vue3怎么和大模型交互?

引言 平时我们都是用的在线的AI工具&#xff0c;直接输入问题&#xff0c;然后AI回答我们&#xff0c;那么怎么把AI接入项目中呢&#xff1f; 这个问题问得好。 方案一&#xff1a;引入第三方已封装好的UI库方案二&#xff1a;自己写 对于方案一&#xff0c;市面上已有一些…...

【网络编程】HTTP网络编程

13.1 HTTP 简介 HTTP(Hyper Text Transfer Protocol,超文本传输协议)是用于从万维网(WWW:World Wide Web) 服务器(简称Web 服务器)传输超文本到本地浏览器的传送协议&#xff0c;基于TCP/IP 通信协 议来传递数据 (HTML 文件、图片文件、查询结果等)。 13.2 HTTP 的工作原理 …...

【Qt】QWidget属性介绍

&#x1f3e0;个人主页&#xff1a;Yui_ &#x1f351;操作环境&#xff1a;Qt Creator &#x1f680;所属专栏&#xff1a;Qt 文章目录 前言1. enabled属性2.geometry属性2.1 改变控件位置2.2 女神表白程序2.3 知识补充——window frame 3. windowsTitle属性4. windowIcon属性…...

『Rust』Rust运行环境搭建

文章目录 rust编译工具rustupVisual Studio VS Code测试编译手动编译VSCode编译配置 参考完 rust编译工具rustup https://www.rust-lang.org/zh-CN/tools/install 换源 RUSTUP_DIST_SERVER https://rsproxy.cn RUSTUP_UPDATE_ROOT https://rsproxy.cn修改rustup和cargo的安…...

vue/react/vite前端项目打包的时候加上时间最简单版本,防止后端扯皮

如果你是vite项目&#xff0c;直接写一个vite的插件&#xff0c;通过这个插件可以动态注入环境变量&#xff0c;然后当打包的时候&#xff0c;自动注入这个时间到环境变量中&#xff0c;然后在项目中App.vue中或者Main.tsx中打印出来&#xff0c;这就知道是什么时候编译的项目了…...

基于大模型的上睑下垂手术全流程预测与方案优化研究报告

目录 一、引言 1.1 研究背景与目的 1.2 研究意义 1.3 研究方法与创新点 二、上睑下垂相关理论基础 2.1 上睑下垂的定义与分类 2.2 发病机制与影响 2.3 传统治疗方法概述 三、大模型技术原理与应用 3.1 大模型概述 3.2 在医疗领域的应用现状 3.3 用于上睑下垂预测的…...

Cadence学习笔记3

设置 PCB 层叠 初始我们有一个两层板&#xff0c;如果需要添加层叠怎么办&#xff1f; 点击进入层叠设置 首先右击 TOP 层下面的空白&#xff0c;然后鼠标右键进行 add layer 然后选择 Plane(一般层就是这个&#xff09; 就好 然后 add就行 设置光标显示形式 在 setup ->…...

Linux系统下如何部署svmspro平台

上传svmspro服务 rz回车后选择svmspro.zip上传如果提示rz命令未找到&#xff0c;请先运行 yum install -y lrzsz 安装将svmspro.zip解压出来&#xff0c;并拷贝到/usr/目录下&#xff0c;命令如下&#xff1a; unzip svmspro.zip//解压程序包cp svmspro /usr/ -r//将svmspro文件…...

vue3:八、登录界面实现-忘记密码

一、页面效果 二、实现 1、视图层 <el-form-item class"flex flex-between"><el-checkbox label"记住密码" v-model"remember" /> </el-form-item> 参考 Checkbox 多选框 | Element Plus 2、逻辑层 首先设置记住密码的变…...

el-table树形表格合并相同的值

el-table树形表格合并相同的值 el-table树形表格合并相同的值让Ai进行优化后的代码 el-table树形表格合并相同的值 <style lang"scss" scoped> .tableBox {/deep/ &.el-table th:first-child,/deep/ &.el-table td:first-child {padding-left: 0;} } …...

Apache Tomcat漏洞,对其进行升级

我们付出一些成本&#xff0c;时间的或者其他&#xff0c;最终总能收获一些什么。 升级背景&#xff1a; 近日&#xff0c;新华三盾山实验室监测到 Apache 官方修复了一个远程代码执行漏洞 (CVE-2025-24813) &#xff0c;其CVSS3 漏洞评分为 7.5 。 影响范围 9.0.0.M1 ≤…...

工程实践:如何使用SU17无人机来实现室内巡检任务

阿木实验室最近发布了科研开发者版本的无人机SU17&#xff0c;该无人机上集成了四目视觉&#xff0c;三维激光雷达&#xff0c;云台吊舱&#xff0c;高算力的机载计算机&#xff0c;是一个非常合适的平台用于室内外巡检场景。同时阿木实验室维护了多个和无人机相关的开源项目。…...

时序优化学习笔记

0.代码对应的底层调用 if-else的判定条件需要LUT实现&#xff0c;累加器的进位需要靠CARRY实现。 1.逻辑级数的概念 简单来讲就是组合逻辑串联的个数 逻辑级数查询命令 report_design_analysis -logic_level_distribution -logic_level_dist_paths 5000 -name design_analy…...

OSPF-3 1类LSA Router LSA

前面两期我们介绍了OSPF的邻居与邻接建立的关系及失败因素和原因 这章我们来说说OSPF是如何通过不同的LSA去描述拓扑的信息以及路由信息 一、概述 OSPF通过不同的LSA来构成LSDB链路状态数据库,再通过SPF算法来计算出最优的最短路径 二、LSA的分类 类型名称描述传播范围1类…...