Most of us have been taught about mixing light, primary colors and what not. Green and red make yellow, green and blue make cyan, and red and blue make magenta. as show in this common diagram.

Now we look at the color spectrum, and looking at red~650nm and green~530nm, yellow~590nm is in the middle, for blue~470nm and green~530nm , cyan~500nm is between them. And then we get to blue~470nm and red~650nm, where this doesn't work or we would get about~560nm which is green . So what is going on here, why do blue and red make violet~420nm.

Is their a calculation with wavelength or frequency that you can use that will yield the correct color output from these mixings? I have searched the web but not found this calculation if one exists. The best I have found so far is color mixing based on percentage of each color, but this doesn't explain why blue and red make violet.
I have found some information in regards to what is going on, but nothing clear, and I would rather not post it so that I do not influence the answers. So please help clear this up for me.
Good Answers:
"Almost" Good Answers: