註:本文轉載自知乎,原文作者 andrew shen,文中部分圖片來自網際網路,感謝原作者
完整解決這個問題需要知道兩件事情::光的Rayleigh(瑞利波)散射和Planck(普朗克)黑體輻射方程。
這個問題其實可以編成一道腦洞大開的題目:已知地球的天空是藍色的, 求太陽表面溫度。
Rayleigh 散射說的是,對於尺度比光的波長小很多的微粒,,其散射光的強度與入射光的波長的四次方成反比:
藍光的波長短,因此散射光強度大。
可是紫色的光波長更短,為什麼天空不是紫色的?
上面這個問題的成因比較複雜。考慮到大氣層散射的是太陽光,天空顯示什麼顏色與太陽本身的波譜就有很大關係。如果太陽光裡原本就沒有任何藍色的成分,(只考慮彈性散射)天空自然不會顯示藍色。事實上,太陽波譜如下圖:
淺黃色的部分是未經大氣層散射之前的波譜。從圖中可以看到,太陽光原本的頻率成分就主要集中在500nm 左右,屬於藍色和綠色的交界。在太陽光中,紫色波段的光原本就很少,因此天空不顯紫色顯藍色。
事實上,太陽可以視作一個理想黑體。因此太陽的波譜可以看作黑體輻射譜。對於黑體輻射譜,有Planck 黑體輻射方程:
其分布函數的形狀如上圖中的黑色線。結合 Rayleigh散射與Planck黑體輻射,我們可以得到經過Rayleigh散射以後的黑體輻射譜:
通過其他方式測得的太陽表面溫度大約為 5800K,和我們的計算得到的結果在一個數量級內。考慮到我們的模型是極度簡化的, 這個結果可以令人滿意。
除了太陽的輻射譜本身就缺乏紫色成分以外,天空不顯示紫色還和人眼成像原理有關。人眼中有三種顏色的視錐細胞(cone cells),分別感受三種顏色:
三種細胞對不同顏色的敏感度如下:
可以發現,紫色的光除了最強烈地刺激藍色視錐細胞以外,還會刺激紅色和綠色的視錐細胞。如果天空中沒有任何紫色的光的成分,那麼人類感受到的天空應該為藍綠色。正是因為天空散射的光有很多紫色的成分,它們刺激了紅綠視錐細胞,我們看到的天空才顯示出淡藍色。
下圖是在B=255時的RGB顏色平面:
為什麼天空顯示藍色,還有一種生物進化論的觀點。天空顯示藍色和環境的顏色相符合,不會影響人類發現身邊的危險,從而提升人類在自然界中的生存力。