用一张日落照片估算出地球的半径

你相信吗,仅仅利用一张日落的照片,你就能得出地球的半径大小! Princeton 大学的 Robert Vanderbei 在最近的一篇论文中对一张摄于密歇根湖的日落照片进行了分析,不但证实了地球是圆的,还依据照片上的内容对地球半径进行了估算。我把计算的大致过程向大家描述一下,供大家膜拜。

事情的起因就是上面这张很平常的日落照片,以及这样一个大家平时并没有太在意的问题:太阳露出水面的部分应该是一个标准的弓形,但为什么在 日出日落时,我们所看到的太阳是一个橄榄球一样的形状?大家或许会很快想到,发光体的下半部分其实是日光反射在水面上造成的。随之产生的是另一个问题:为 什么它的下半部分要比上半部分小一些呢?

这是因为——想到这个问题的答案并不容易——地球是圆的。上图就是人站在地球上看日出的一个比例夸张版示意图,其中 O 为地球的中心, A
为人眼的位置, AB 为视平线, B
点为水天交界处。由于太阳距离我们相当遥远,因此我们把太阳光看作是一束理想的平行光线。我们把直接射入人眼的太阳光与 AB 的夹角记为 α
,把经过水面上的一点 C 反射进入人眼的光线与 AB 的夹角记为 β 。从图上可见,视角 β 比 α
小,也就是说太阳在水面上的镜像比本身要小一些。

β 究竟比 α 小多少呢?对照片进行精确地测量,可知太阳的直径相当于照片中的 317 个像素,而露出水面的部分高 69
像素,水中的倒影则只有 29 像素。众所周知太阳的视直径(看太阳的视角)为 0.5 度,因此我们就得到 α = 0.5 * 69 / 317 ≈
0.1088 度, β = 0.5 * 29 / 317 ≈ 0.0457 度。
    如果再已知人眼(或者说相机)离水面的垂直距离 h 为 2 米,那么根据这些数据我们就足以估算出地球的半径了。不妨把 ∠AOB 记为 φ
,把 ∠AOC 记为 θ ,把人眼到水天相接处的距离 AB 记为 D ,把人眼到反射点的距离 AC 记为 d ,入射角和反射角记为 γ ,最后用
r 来表示地球半径,那么此时我们一共有 6 个未知量。为了求解出这 6 个未知数,我们需要寻找 6 个不同的方程。这 6 个方程可以由以下 6
组等量关系得到:

1. 四边形 OBAC 的内角和为 360° ,即 (φ – θ) + 90° + β + (180° – γ + 90°) = 360° , 化简得 方程(1) φ + β = θ + γ

2. 两条平行线的同旁内角相加为 180° ,即 (α + β) + (180° – 2γ) = 180° ,即 方程(2) α + β = 2γ

3. 由于 AO = h + r ,同时又有 AO = AD + DO = D·sinφ + r·cosφ ,因此有 方程(3) h + r = D·sinφ + r·cosφ

4. BD 既可以等于 D·cosφ ,又可以等于 r·sinφ ,于是有 方程(4) D·cosφ = r·sinφ

5. 由于 AO = h + r ,同时又有 AO = AE + EO = d·sin(γ+θ) + r·cosθ ,因此有 方程(5) h + r = d·sin(γ+θ) + r·cosθ

6. CE 既可以等于 d·cos(γ+θ) ,又可以等于 r·sinθ ,于是有 方程(6) d·cos(γ+θ) = r·sinθ

一系列复杂的代数运算(省略数百字)最终告诉我们:

r = h / (√1 – 2·cosβ·cosγ + cos2γ / sinβ – 1)

其中 γ = (α + β)/2 。代入已知的 α 、 β 和 h 可以得到,地球半径 r 大约为 7.29312 * 106 米,也即 7293 千米。

这个估算的误差有多大呢?事实上,地球的半径大约为 6300
多千米,可见误差不是一般的大。不过,考虑到我们估算的依据仅仅是一张照片,能把数量级估对就已经相当牛 B
了。除了测量的精度之外,还有很多潜在的因素会导致误差。目前看来,误差的最主要来源似乎是不完全平静的水面——一点小小的波浪就会给 α 、 β
的值带来巨大的影响。

2010?年?6?月?1?日 / 几何, 惊奇数学事实, 照片

时间: 2024-10-11 17:59:38

用一张日落照片估算出地球的半径的相关文章

python—networkx:在一张图中画出多个子图

通过plt.subplot能够在一张图中画出多个子图 #coding: utf-8 #!/usr/bin/env python """ Draw a graph with matplotlib. You must have matplotlib for this to work. """ __author__ = """Aric Hagberg ([email protected])"""

如何根据传感器实时采集的数据计算出前进后退侧移下蹲等动作,并且能够估算出速度,算法

遇到一个好问题.现在做穿戴式设备的多.我没去写过相应的程序.但原理是了解一些的. 问: 1.在大腿上绑定一个9轴姿态传感器 2.根据传感器实时采集的数据计算出前进后退侧移下蹲等动作,并且能够估算出速度,可以有误差 答: 有这么多轴的吗?只知道三轴的,相反方向是运动方向.多轴的相反方向.组合计算相位角度和力度,就是方向和速度了. 要是想考虑人体角度 和动作,就要考虑人体解剖学了 在论坛中回答总是有些不方便. 接着写点,其实三轴就够,但更复杂的人体动作判断就不一定了. 把人腿的形状,通过膝的角度来判

拿字段数据直接查询别张表并转出对应

摘要:拿字段数据直接查询别张表并转出对应 SELECT TimesId ,ParliamentName ,ParliamentSequence , ? ParliamentType =? ( ?select CodeValue? ?from SystemCode? ?where Code = ParliamentType and CodeIndex= 'PType' )? ,StartDate ,EndDate ,UseStatus, AssignDate ,CreatedUserId ,Cre

【猜牌问题】甲乙都知道桌子的抽屉里有16张扑克牌: 红桃A、Q、4 黑桃J、8、4、2、7、3 草色K、Q、5、4、6 方块A、5 教授从这16张牌中挑出一张牌来,并把这张牌的点数告诉甲,把这张牌的花色告诉乙。教授问:你们能推理出是什么牌吗? 甲:我不知道这张牌。 乙:我知道你不知道这张牌。 甲:现在我知道这张牌了。 乙:我也知道了。 请问:这张牌是什么牌?

甲乙都知道桌子的抽屉里有16张扑克牌: 红桃A.Q.4 黑桃J.8.4.2.7.3 草色K.Q.5.4.6 方块A.5 教授从这16张牌中挑出一张牌来,并把这张牌的点数告诉甲,把这张牌的花色告诉乙.教授问:你们能推理出是什么牌吗? 甲:我不知道这张牌.乙:我知道你不知道这张牌.甲:现在我知道这张牌了.乙:我也知道了. 请问:这张牌是什么牌? 解: 教授告知甲点数,告知乙花色 人物 已知 未知 甲 A 红桃.方块 Q 红桃.草色 4 红桃.黑桃.草色 J 黑桃 8 黑桃 2 黑桃 7 黑桃 3 黑

[转]19张记录人类正在毁灭地球的照片

全球变暖.人口过剩.过渡开发.环境污染...这些问题正在时刻威胁我们赖以生存的地球,并造成毁灭性打击.为了发人深省,深层生态和人口研究中心发布了一系列发人深省的图片,展示了我们被广泛破坏的土地.天空和海洋,张张震撼人心. 印尼: 冲浪者 Dede Surinaya 冲浪时的一幕,很多海洋垃圾 英国: 一家燃煤电厂正在排放废气 美国: 俄勒冈威拉米特国家森林公园,为了修建水渠,大批原始林木被砍伐 挪威斯瓦尔巴特群岛: 西方峡湾因冬天不结冰,熊没有寻找到合适的海冰狩猎,最终被饿死 中国内蒙古: 一个

MATLAB在一张图上画出多条曲线

在matlab中,经常遇到画图问题,甚至,有时候需要把其他软件中的数据,导出来,用matlab处理. 此处给出,用matlab处理数据的一些简单方法. 参考资料: MATLAB多条曲画到一张图上 MATLAB plot画出多条不同颜色的曲线 原文地址:https://www.cnblogs.com/Aaron12/p/9938695.html

Android:仿QQ 发表说说/上传照片 弹出框

代码很简单,主要就是几个动画而已,图标什么的就随便找了几个,效果图:      动画说明: 1.点击右上角按钮,菜单从顶部下拉弹出,同时背景变暗; 2.再次点击右上角按钮,点击返回键,或者点击空白区域(也就是变暗的部分),菜单向上收回; 3.点击菜单上的按钮响应事件,同时菜单收回(效果同2) 主体代码: public class MainActivity extends Activity { //添加数据按钮 private ImageView addDataIv; //下拉功能菜单 priva

3、一张手机照片的诞生过程——手机拍摄(郭卫老师)

1.拍摄环境 (1)高铁列车车么处 拍摄器材,一部手机 问题: *画面倾斜 *无关元素太多,杂乱 *杂光.黑点 2.如何让一张照片看起来陌生 目标:做到画面简洁而不简单,一切与想表达无关的东西都不要在画面中 3.手机修图软件:Snapseed (1)照片分析,处理哪些地方? (2)处理警示牌,工具-调整图片-暗部减(高光-亮部.阴影-暗部) (3)处理小黑点.杂光(加光减光),工具-修复-放大图片使用画笔局部操作 (4)处理窗子上其他元素,工具-裁剪 (5)处理倾斜,工具-旋转 (6)暖色调,工

弹出层罩子html(上传照片弹出请等待后面的代码不能修改)

一,效果 二,素材 三,代码 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0 ,user-scalable=no"> 6 <title>自适应居中加载点击遮罩效果