Here's a mathematical rainbow spectrum plot. Reasoning: - All colours in the rainbow spectrum should be shown with equal intensity. - In RGB, yellow(1,1,0) has greater intensity than red(1,0,0) or green(0,1,0). - So, we need a less intense yellow for our rainbow. I used cosines. - The rainbow is an octave of light, from 400THz-800Thz, or 750nm-375nm. - The refractive index varies with the wavelength of light. - The rainbow is a uniform plot over wavelength (not freq. or "note"). - Several "rainbow echoes" are seen, due to resonance with higher octaves. - Each "rainbow echo" is half the width of the previous, as expected. - And so, the colours in the visible rainbow are compressed at the blue end. Here is a picture of rainbow echoes, these are due I suppose to harmonic resonance: ![rainbow with echoes][1] Combining these ideas, here is a calculated rainbow. ![enter image description here][2] [1]: http://i.stack.imgur.com/P4Cwa.jpg [2]: http://i.stack.imgur.com/7Mbk6.png