| Author |
Comment/Response |
Sam
|
10/18/11 10:26pm
Hello
I'm trying to calculate the power of a scattered light beam as a function of the angle away from the normal from a sinusoidal surface according to the equations:
\[Theta][n] = N[ArcSin[(Sin[\[Theta]i] + n*f*\[Lambda])]]
P[n] = N[((2*\[Pi]*a)/\[Lambda])^2*Cos[\[Theta]i]*Cos[\[Theta][n]]]
where \[Theta][n] is the angle of the n'th scattered beam
\[Theta]i is the angle of the primary reflected beam
f is the frequency of light
\[Lambda] is the wavelength of the surface
a is the amplitude of the surface
My loop is:
\[Lambda] = 635*10^-9;
f = 10^4;
a = 10^-9;
\[Theta]i = \[Pi]/4;
\[Theta][0] = \[Theta]i;
\[Theta][0] = \[Theta]i;
For[
n = 1, \[Theta][n] < 20, n++,
\[Theta][n] = N[ArcSin[(Sin[\[Theta]i] + n*f*\[Lambda])]];
P[n] = N[((2*\[Pi]*a)/\[Lambda])^2*Cos[\[Theta]i]*Cos[\[Theta][n]]];
Print["\[Theta]", n, "= ", \[Theta][n], "\nP", n, "= ", P[n],
"\n"]
]
For[
n = -1, \[Theta][n] > -\[Pi]/2, n--,
\[Theta][n] = N[ArcSin[(Sin[\[Theta]i] + n*f*\[Lambda])]];
P[n] = N[((2*\[Pi]*a)/\[Lambda])^2*Cos[\[Theta]i]*Cos[\[Theta][n]]];
Print["\[Theta]", n, "= ", \[Theta][n], "\nP", n, "= ", P[n],
"\n"]
]
When I execute this, I get nothing printed. However, if I change the loop conditions to checking if n<10, 10 results show, each of which has a theta value less than [Pi]/2. I don't see why mathematica doesn't see this in my original loop.
URL: , |
|