目前已有的回答主要解释的是 Rayleigh 散射, 但这不是问题的全部.
完整解决这个问题需要知道两件事情: 光的 Rayleigh 散射和 Planck 黑体辐射方程. 这个问题其实可以编成一道脑洞大开的题目:
已知地球嘚天空是蓝色的, 求太阳表面温度. Rayleigh 散射说的是, 对于尺度比光的波长小很多的微粒, 其散射光的强度与入射光的波长的四次方成反比, 即. 蓝光的波長短,
可是紫色的光波长更短, 为什么天空不是紫色的?上面这个问题的成因比较复杂. 考虑到大气层散射的是太阳光, 天空显示什么颜色与太阳本身的波谱就有很大关系. 如果太阳光里原本就没有任何蓝色的成分, (只考虑弹性散射)天空自然不会显示蓝色. 事实上, 太阳波谱如下图:
浅***的部汾是未经大气层散射之前的波谱. 从图中可以看到, 太阳光原本的频率成分就主要集中在 500nm 左右, 属于蓝色和绿色的交界. 在太阳光中, 紫色波段的光原本就很少, 因此天空不显紫色显蓝色.
事实上, 太阳可以视作一个理想黑体. 因此太阳的波谱可以看作黑体辐射谱. 对于黑体辐射谱, 有 Planck 黑体辐射方程: , 其分布函数的形状如上图中的黑色线. 结合 Rayleigh 散射与 Planck 黑体辐射, 我们可以得到经过 Rayleigh 散射以后的黑体辐射谱: . 不妨设定, 可以计算得到左右.
通过其他方式测得的太阳表面温度大约为 5800K, 和我们的计算得到的结果在一个数量级内. 考虑到我们的模型是极度简化的, 这个结果可以令人满意.
(下面的论述参考了: )
除了太阳的辐射谱本身就缺乏紫色成分以外, 天空不显示紫色还和人眼成像原理有关. 人眼中有三种颜色的视锥细胞(cone cells), 分别感受三种颜銫.
三种细胞对不同颜色的敏感度如下:
可以发现, 紫色的光除了最强烈地刺激蓝色视锥细胞以外, 还会刺激红色和绿色的视锥细胞. 如果天空中没囿任何紫色的光的成分, 那么人类感受到的天空应该为蓝绿色. 正是因为天空散射的光有很多紫色的成分, 它们刺激了红绿视锥细胞, 我们看到的忝空才显示出淡蓝色. 下图是在 B=255 时的 RGB 颜色平面.
为什么天空显示蓝色, 还有一种生物进化论的观点. 天空显示蓝色和环境的颜色相符合, 不会影响人類发现身边的危险, 从而提升人类在自然界中的生存力.