[Physics] Explanation for the spectrum of the sun


sun spectrum
My Question is, why exactely does the intensity vanish below 240 nm ?
If i look at the plank's law, obviously the intensity for $\lambda \rightarrow 0$ and $\lambda \rightarrow \infty$ will vanish, but why does it already vanish for $\lambda \approx 240 nm$ ?


Best Answer

It seems to me that the person drawing the graph was a bit sloppy - the ideal black body radiation ("idealer Schwarzer K├Ârper" - Temperatur 5900 K) does not cut off sharply at 240 nm as shown. Instead, it should look like this:

enter image description here

when calculated from Planck's Law. I suspect some bug in the method used to calculate the values in the plot you reproduced - note that at the extremes of the plot, there is the possibility of overflow if the calculation is done carelessly (or in single precision). I suspect that is what happened here.

If you want to make this graph yourself, you could use (or adapt) this Python code snippet:

import math
from scipy.constants import codata
import numpy as np
import matplotlib.pyplot as plt

D = codata.physical_constants

h = D['Planck constant'][0]
k = D['Boltzmann constant'][0]
c = D['speed of light in vacuum'][0]

pi = math.pi

def planck(T, l):
    p = c*h/(k*l*T)
    if (p > 700):
        return 1e-99
        return (h*c*c)/(math.pow(l, 5.0) * (math.exp(c*h/(k*l*T))-1))        

Lvec = np.logspace(-8, -5.3, 1000)

# create a semitransparent "rainbow plot" to show where visible range is:
plt.imshow(np.tile(np.linspace(0,1,100),(2,1)), extent=[400, 800, 0, 1], aspect='auto', cmap='rainbow', alpha = 0.4)

# compute Planck for a range of wavelengths
for T in Tvec:
    r = []
    for l in Lvec:
        r.append(planck(T, l))
    plt.plot(Lvec*1e9, r/np.max(r),label='T=%d'%T)
plt.xlabel('lambda (nm)')    
plt.title('wavelength distribution of black body (T=5900)')