Quit

Un ejemplo con el Mathematica. 

Ecuaciones de Fresnel. 
Coeficientes de transmisión y reflexión. 
Reflexión total interna.

Algunas cosas muy básicas para el que nunca usó Mathematica [expandir esta celda haciendo doble click en las barra de la derecha que tiene la flecha.]

Importante en el Mathematica: la función "Deshacer" funciona un solo paso hacia el pasado y de manera impredecible. Es preferible editar sobre una copia de la expresión que quieren modificar [si es  muy larga, si no, no] que sobre la propia expresión.

Si usan Linux, puede ser necesario que desactiven el NumLock (no me acuerdo por qué).

Para incluir celdas con texto, como éstas, se usa  Alt+[número], número entre 1 y 7. Vean el menú Format, submenú Style.

Todas las funciones figuran en la Ayuda. No solo figuran sus definiciones, sino que hay muchísimos ejemplos. Pueden ejecutarlos en la misma ventana de la ayuda, y puden copiarlos para adaptarlos a lo que necesitan.

Se ejecuta cada celda apretando Shift + Enter o el Enter del teclado numérico.

Si una expresión termina con punto y coma, su resultado no se imprime. Eso es útil cuando las fórmulas son meras definiciones.

¿Cómo teclear letras y fórmulas más cercanas al aspecto escrito usual? 

Letras griegas: [Esc]e[Esc] -> ϵ,      [Esc]m[Esc] -> μ, [Esc]q[Esc] -> θ, [Esc]Q[Esc] -> Θ,  etc.    


Producto vectorial: Cross[V1, V2]. Se puede escribir simbólicamente usando [Esc]cross[Esc] -> ×

Raíz:  Ctrl+2,   (Sqrt[5])
 
Cociente: Ctrl+Shift 7,   (2/4)

Potencia: Ctrl+6,    (2^3)

Constantes como ℼ, i y  e  se teclean  [Esc]pp[Esc], [Esc]ii[Esc] y [Esc]ee[Esc]. Ej: (e^(i π))= -1. De otra forma se vería así: E^(I Pi) = -1.

Los símbolos I, E, N, C, D  tienen significado propio, no se pueden usar en las definiciones.

Los productos de expresiones quedan sobreentendidos: no es necesario escribir *. SI quieren, parar remarcar un producto pueden usar [Esc]*[Esc], y queda así, por ejemplo,

2×2

Las funciones más comunes tienen nombres evidentes. Todos los nombres empiezan con mayúscula. Puede haber otras letras mayúsculas en el medio:

Cos, Sin, Exp, Tan, ArcTan, Log, ArcSinh

Coeficientes de Fresnel

[se pueden copiar figuras directamente sobre el notebook del Mathematica, ésta fue hecha con Inkscape + textext]

Ejecutar esta celda al comienzo [marcar la pequeña barra del costado que tiene una flecha y apretar shift+enter o el enter del teclado numérico]

modTM[n1_, n2_, θ_] := Abs[(((n2^2)  Cos[θ]-n1  (Sqrt[(n2^2)-(n1^2) ((Sin[θ])^2)]))/((n2^2)  Cos[θ]+n1  (Sqrt[(n2^2)-(n1^2) ((Sin[θ])^2)])))];
modTE[n1_, n2_, θ_]:=Abs[((n1  Cos[θ]- (Sqrt[(n2^2)-(n1^2) ((Sin[θ])^2)]))/(n1 Cos[θ]+ (Sqrt[(n2^2)-(n1^2) ((Sin[θ])^2)])))];

argTM[n1_, n2_, θ_]:= Arg[(((n2^2)  Cos[θ]-n1  (Sqrt[(n2^2)-(n1^2) ((Sin[θ])^2)]))/((n2^2)  Cos[θ]+n1  (Sqrt[(n2^2)-(n1^2) ((Sin[θ])^2)])))];
argTE[n1_, n2_, θ_]:=Arg[((n1  Cos[θ]- (Sqrt[(n2^2)-(n1^2) ((Sin[θ])^2)]))/(n1  Cos[θ]+ (Sqrt[(n2^2)-(n1^2) ((Sin[θ])^2)])))];

nagua = 4/3;
nvacio = 1;

gmod = Plot[{modTM[nagua, nvacio, θ], modTE[nagua, nvacio, θ]} , {θ, 0, π/2}, PlotStyle->{{Thickness[0.01], RGBColor[1,0,0]}, {Thickness[0.01], RGBColor[0,0,1]}}];
garg = Plot[{argTM[nagua, nvacio, θ] , argTE[nagua, nvacio, θ]}, {θ, 0, π/2}, PlotStyle->{{Thickness[0.01], RGBColor[1,0,0]}, {Thickness[0.006], RGBColor[0,0,1]}}];
disco= Graphics[{RGBColor[1,0,0],Disk[{0,0}, 1/100]}];
plano = ParametricPlot3D[{x, y, 0}, {x, -1, 1}, {y, -1, 1}, Mesh-> False, ViewPoint-> {1, -1, 1}, Boxed-> False, Axes-> False];
elipse[origen_, eje1_, eje2_, a_, b_, ϕ_, α1_, α2_]:= origen + a Cos[ϕ+α1] eje1 +b Sin[ϕ+α2] eje2;

Caso TE

Las definiciones de la normal, los k, los campos E y B.  

Para el primer ejemplo aquí abajo, explícitamente elijo campo E en la dirección TE, es decir, según la figura, en {0, -1, 0}.

n = {0,0,1};


k1=((ω (Sqrt[ϵ μ]) {Sin[θ],0,Cos[θ]})/c);
E1=Ei {0,-1,0};
B1=((c k1\[Cross]E1)/ω);

k2=((ω (Sqrt[ϵ μ]) {Sin[θ],0,-Cos[θ]})/c);
E2=Er {0,-1,0};
B2=((c k2\[Cross]E2)/ω);

k3=((ω (Sqrt[ϵp μp]) {Sin[θp],0,Cos[θp]})/c);
E3=Et {0,-1,0};
B3=((c k3\[Cross]E3)/ω);

(*Se ejecuta la celda apretando Shift + Enter o el Enter del teclado numérico*)

El único dato particular a este problema es la forma de E. Todas las otras relaciones son válidas independientemente de esa elección. Podrían usarse para resolver TM solo cambiando el dato sobre E.

Para escribir las ecuaciones, la igualdad se nota con un doble igual "==". (El igual simple "=" sirve para asignar un contenido a un símbolo.) 

En este caso tan simple voy a ayudar un poco al Mathematica, y en las ecuaciones que serían de carácter vectorial (como ser conservaciones de la componente tangencial de algún campo) voy a elegir a mano la única componente de la ecuación que no sea trivial.

Por ejemplo, en la conservación de la componente tangencial del campo eléctrico, lo que debería escribir en general es

n × (((Subscript[(OverVector[E]), 1])+(Subscript[(OverVector[E]), 2])) × n) - n × ((Subscript[(OverVector[E]), 3]) × n)  == 0  

Si lo escribimos, van a ver que solo la componente "y"  da alguna información (eso es obvio del dibujo)

n\[Cross]((E1 + E2 - E3) \[Cross] n) 

(*De ahora en más ejecuten las celdas para ver el resultado*)

Entonces la única ecuación que resulta por este lado es

ecuacion1 = (-Ei-Er+Et== 0)

Ahí se ve el distinto uso de los símbolos "=" y "==".  Primero estoy diciendo que "ecuacion" va a tener el significado de la relación lógica que está al lado, que se expresa como "A == B". El paréntesis no es necesario, podría haber escrito

ecuacion1 =-Ei-Er+Et== 0;

La conservación de H tangencial también da una sola ecuación, aunque se trata de una ecuación vectorial. Tenemos

n \[Cross](((B1/μ)+ (B2/μ)-  (B3/(μp)) )\[Cross] n)

Aquí la única ecuación no trivial será

ecuacion2 = ((Ei (Sqrt[ϵ μ]) Cos[θ])/μ)-((Er (Sqrt[ϵ μ]) Cos[θ])/μ)-((Et (Sqrt[ϵp μp]) Cos[θp])/(μp)) == 0;

La última conservación que tiene sentido plantear es la de B normal.  

Pero usando la ley de Snell se ve que la conservación del B normal es equivalente a la del E tangencial

La ecuación es:

(B1 + B2) . n -  B3 . n

Notar el "." para el producto escalar con la normal.

Para usar la ley de Snell se puede usar el símbolo "/.", que significa "evaluar la expresión haciendo el siguiente reemplazo".  

Aquí abajo el reemplazo es la ley de Snell.

Simplify[(B1 + B2) . n -  B3 . n /.  Sin[θp] ->  ((Sqrt[μ ϵ])/(Sqrt[μp ϵp]))Sin[θ]]

Ven que uso también la función "Simplify".  La flechita que indica el reemplazo se teclea simplemente como "->", sin espacios. Igualar la expresión anterior  a cero vuelve a dar ecuación.

Ahora uso la función "Solve" para resolver las dos ecuaciones que quedaron. 

Resuelvo para Er y Et. Le pueden dar un nombre al resultado. Aquí lo llamo "sol".

sol = Solve[{ecuacion1, ecuacion2}, {Er, Et}]

Ven que la solución queda proporcional a Ei, el campo incidente. 

Podemos poner Ei = 1, definir los índices n1 y n2  y usar la ley de Snell para eliminar los cosenos de θp. Son tres reemplazos que hago en la expresión de "sol".

sol /. {(Sqrt[ϵ μ])-> n1, (Sqrt[ϵp μp])-> n2} /.  {Ei -> 1,  Cos[θp] -> (Sqrt[(n2^2)-(n1^2)((Sin[θ])^2)])/n2}

Para agrupar la primera expresión en una sola fracción uso "Together", y de paso simplifico

Simplify[Together[sol /. {(Sqrt[ϵ μ])-> n1, (Sqrt[ϵp μp])-> n2} /.  {Ei -> 1,  Cos[θp] -> (Sqrt[(n2^2)-(n1^2)((Sin[θ])^2)])/n2}]]

Aquí abajo figuran las soluciones del Jackson

Caso general. Una onda incidente en la dirección de k1, pero con un campo eléctrico que puede tener las dos componentes, TM y TE.

Ahora hay que escribir las 4 ecuaciones. Las dos de conservación de la componente tangencial son vectoriales.

Los campos. Descompongo cada campo en TE y TM. Por ejemplo, el campo incidente es E1 = E1E {0,1,0} + E1M {Cos[θ], 0, -Sin[θ]. 

Aquí E1E es la parte que corresponde a TE, y E1M la que corresponde a TM. Así para todos.  Es importante que ejecuten la primera celda aquí abajo. No se olviden de hacerlo porque ya antes definimos algunos símbolos con los mismos nombres.

n = {0, 0, 1};

k1=((ω (Sqrt[ϵ μ]) {Sin[θ],0,Cos[θ]})/c);
k2=((ω (Sqrt[ϵ μ]) {Sin[θ],0,-Cos[θ]})/c);
k3=((ω (Sqrt[ϵp μp]) {Sin[θp],0,Cos[θp]})/c);


E1 = E1E {0, -1, 0}  +  E1M {Cos[θ], 0, -Sin[θ]};
E2 = E2E {0, -1, 0} + E2M {-Cos[θ], 0, -Sin[θ]};
E3 = E3E{0,-1,0} + E3M {Cos[θp], 0, -Sin[θp]};

B1 = ((c k1 \[Cross] E1)/ω);
B2 = ((c k2 \[Cross] E2)/ω);
B3 = ((c k3 \[Cross] E3)/ω);

Escribo las ecuaciones del caso general.

ec1=(n \[Cross] ((E1 + E2 - E3) \[Cross] n))  == {0,0,0};

ec2 = (B1 + B2) . n -  B3 . n == 0;

ec3 =(n\[Cross]((((B1/μ)+ (B2/μ))-  (B3/(μp)))\[Cross] n)) =={0,0,0};

ec4 = (ϵ (E1 +  E2) - ϵp E3 ) . n == 0 ;

Notar que las ecuaciones vectoriales están igualadas a un vector de ceros. Aquí va a haber muchas más ecuaciones que incognitas. Mientras el sistema siga siendo compatible eso no importa.

Antes de resolver las ecuaciones en general, verifico el caso anterior que ya hicimos, y el caso TM. Directamente fijo el E de la onda incidente dentro del "Solve". 

En el primer caso hago el reemplazo  "/. {E1E -> 1, E1M -> 0}", y en el segundo, "/. {E1E -> 0, E1M -> 1}".

TE:

Together[Solve[Simplify[{ec1, ec2, ec3, ec4}/. {E1E-> 1, E1M-> 0}] /. {(Sqrt[ϵ μ])-> n1, (Sqrt[ϵp μp])-> n2} /.   {ϵ -> ((n1^2)/μ), ϵp-> ((n2^2)/(μp))} /.Sin[θp] ->  (n1/n2)Sin[θ], {E2E, E2M, E3E, E3M}] /. Cos[θp] -> (Sqrt[(n2^2)-(n1^2)((Sin[θ])^2)])/n2]

Es el resultado de antes.

TM: cambio cuál de los campos es cero y cuál 1.

Simplify[{ec1, ec2, ec3, ec4}/. {E1E-> 0, E1M-> Ei}]

Together[Solve[Simplify[{ec1, ec2, ec3, ec4}/. {E1E-> 0, E1M-> 1}] /. {(Sqrt[ϵ μ])-> n1, (Sqrt[ϵp μp])-> n2} /.  {ϵ -> ((n1^2)/μ), ϵp-> ((n2^2)/(μp))}/.  Sin[θp] ->  (n1/n2)Sin[θ], {E2E, E2M, E3E, E3M}] /. Cos[θp] -> (Sqrt[(n2^2)-(n1^2)((Sin[θ])^2)])/n2]

Las fórmulas del Jackson, para comparar.

Caso general

Simplify[Together[Solve[Simplify[{ec1, ec2, ec3, ec4} /.{(Sqrt[ϵ μ])-> n1, (Sqrt[ϵp μp])-> n2}/.  {ϵ -> ((n1^2)/μ), ϵp-> ((n2^2)/(μp))}]/.   Sin[θp] ->  (n1/n2)Sin[θ], {E2E, E2M, E3E, E3M}]  /. Cos[θp] -> (Sqrt[(n2^2)-(n1^2)((Sin[θ])^2)])/n2]]

Pasa lo que tenía que pasar: las soluciones no se mezclan.

Reflexión total

El módulo del campo reflejado. Se puede calcular con la función Abs. ComplexExpand simplifica las expresiones como si todas las variables fueran reales (es el caso aquí). Luego FullSimplify hace una simplificación final, asumiendo   (n1^2) ((Sin[θ])^2)-(n2^2) > 0. 

Por ejemplo, para la solución TM

FullSimplify[ComplexExpand[Abs[(((n2^2) μ Cos[θ]-n1 μp  (Sqrt[(n2^2)-(n1^2) ((Sin[θ])^2)]))/((n2^2) μ Cos[θ]+n1 μp (Sqrt[(n2^2)-(n1^2) ((Sin[θ])^2)])))]], Assumptions-> (n1^2) ((Sin[θ])^2)-(n2^2) > 0]

Pueden agregar más "Assumptions", usando llaves. En las versiones más nuevas del Mathematica no es necesario escribir "Assumptions". Se entiende igual; por ejemplo, la misma fórmula de antes para el módulo del campo TM reflejado:

FullSimplify[ComplexExpand[Abs[(((n2^2) μ Cos[θ]-n1 μp  (Sqrt[(n2^2)-(n1^2) ((Sin[θ])^2)]))/((n2^2) μ Cos[θ]+n1 μp (Sqrt[(n2^2)-(n1^2) ((Sin[θ])^2)])))]],  (n1^2) ((Sin[θ])^2)-(n2^2) > 0]

El ángulo de Brewster en términos de la tangente de θ. Uso las relaciones  Cos[θ] = 1/(Sqrt[1+ ((Tan[θ])^2)]) y Sin[θ] = Tan[θ]/(Sqrt[1+ ((Tan[θ])^2)]).

Solve[(n2^2) μ Cos[θ]-n1 μp  (Sqrt[(n2^2)-(n1^2) ((Sin[θ])^2)]) == 0  /. μ-> 1 /. μp -> 1/. Sin[θ]-> (x/(Sqrt[1+(x^2)])) /. Cos[θ]-> (1/(Sqrt[1+(x^2)])) ,x]

Aquí defino los módulos y las fases para los dos casos, TM y TE. Tomo μ y μp iguales a 1.

modTM[n1_, n2_, θ_] := Abs[(((n2^2)  Cos[θ]-n1  (Sqrt[(n2^2)-(n1^2) ((Sin[θ])^2)]))/((n2^2)  Cos[θ]+n1  (Sqrt[(n2^2)-(n1^2) ((Sin[θ])^2)])))];
modTE[n1_, n2_, θ_]:=Abs[((n1  Cos[θ]- (Sqrt[(n2^2)-(n1^2) ((Sin[θ])^2)]))/(n1 Cos[θ]+ (Sqrt[(n2^2)-(n1^2) ((Sin[θ])^2)])))];

argTM[n1_, n2_, θ_]:= Arg[(((n2^2)  Cos[θ]-n1  (Sqrt[(n2^2)-(n1^2) ((Sin[θ])^2)]))/((n2^2)  Cos[θ]+n1  (Sqrt[(n2^2)-(n1^2) ((Sin[θ])^2)])))];
argTE[n1_, n2_, θ_]:=Arg[((n1  Cos[θ]- (Sqrt[(n2^2)-(n1^2) ((Sin[θ])^2)]))/(n1  Cos[θ]+ (Sqrt[(n2^2)-(n1^2) ((Sin[θ])^2)])))];

Ahora grafico el módulo y la fase del campo reflejado. Vuelvo a usar Abs para el módulo, y  uso Arg para el argumento. Para graficar estas cosas uso n1 = 4/3, n2 = 1. Más o menos sería agua y vacío.  Una de las curvas es para TM y la otra para TE. 

Sin saberlo de antemano,  mirando la figura, ¿pueden decir cuál es cual?

El módulo

nagua = 4/3;
nvacio = 1;
gmod = Plot[{modTM[nagua, nvacio, θ], modTE[nagua, nvacio, θ]} , {θ, 0, π/2}, PlotStyle->{{Thickness[0.01], RGBColor[1,0,0]}, {Thickness[0.01], RGBColor[0,0,1]}}]

¿Pueden ver el ángulo de Brewster?

La fase

garg = Plot[{argTM[nagua, nvacio, θ] , argTE[nagua, nvacio, θ]}, {θ, 0, π/2}, PlotStyle->{{Thickness[0.01], RGBColor[1,0,0]}, {Thickness[0.006], RGBColor[0,0,1]}}]

Fíjense que a este par de gráficos les estoy asignando un nombre, para usarlos después. Son "gmod" y "garg".

El caso inverso: incidencia desde al vacío

{Plot[{modTM[nvacio, nagua, θ], modTE[nvacio, nagua, θ]} , {θ, 0, π/2}, PlotStyle->{{Thickness[0.01], RGBColor[1,0,0]}, {Thickness[0.01], RGBColor[0,0,1]}}, ImageSize-> 400], Plot[{argTM[nvacio, nagua, θ], argTE[nvacio, nagua, θ]}, {θ, 0, π/2},PlotStyle->{{Thickness[0.01], RGBColor[1,0,0]}, {Thickness[0.005], RGBColor[0,0,1]}},  ImageSize-> 400]}

Hay Brewster para una de las polarizaciones, pero no hay reflexión total.

Unos gráficos donde se ve la utilidad del comando "Manipulate", y de la combinación "Epilog -> Inlet" para meter gráficos dentro de otros.  En el gráfico con el recuadro pueden variar θ a voluntad. (Entre las opciones del Manipulate figura el paso:  1/100. Pueden cambiarlo.)

disco= Graphics[{RGBColor[1,0,0],Disk[{0,0}, 1/100]}];Manipulate[Show[gmod, Epilog-> {Inset[disco, {θ, modTE[4/3, 1, θ]}, {0, 0}, 0.05], Inset[disco, {θ, modTM[4/3, 1, θ]}, {0, 0}, 0.05]}], {θ, 0, π/2, 1/100}]

Lo mismo para las fases:

Manipulate[Show[garg, Epilog-> {Inset[disco, {θ, argTE[4/3, 1, θ]}, {0, 0}, 0.05], Inset[disco, {θ, argTM[4/3, 1, θ]}, {0, 0}, 0.05]}], {θ, 0, π/2, 1/100}]

Estos grafiquitos no tienen ahora ningún sentido. Pero más abajo los combino con otros, y ahí sí son más útliles.

Pueden variar más de una cosa a la vez. Aquí abajo  quedan en libertad n1 y n2. Fíjense que elijo para θ y  n2 valores iniciales (distintos del valor mínimo) explícitamente dentro de Manipulate.

disco= Graphics[{RGBColor[1,0,0],Disk[{0,0}, 1/100]}];Manipulate[{Show[Plot[{modTM[n1, n2, θ], modTE[n1, n2, θ]} , {θ, 0, π/2}, PlotStyle->{{Thickness[0.01], RGBColor[1,0,0]}, {Thickness[0.01], RGBColor[0,0,1]}}], Epilog-> {Inset[disco, {θ, modTE[n1, n2, θ]}, {0, 0}, 0.05], Inset[disco, {θ, modTM[n1,n2, θ]}, {0, 0}, 0.05]}, ImageSize-> 350], Show[Plot[{argTM[n1, n2, θ], argTE[n1, n2, θ]} , {θ, 0, π/2}, PlotStyle->{{Thickness[0.01], RGBColor[1,0,0]}, {Thickness[0.01], RGBColor[0,0,1]}}], Epilog-> {Inset[disco, {θ, argTE[n1, n2, θ]}, {0, 0}, 0.05], Inset[disco, {θ, argTM[n1,n2, θ]}, {0, 0}, 0.05]},ImageSize-> 350]}, {{θ, π/4}, 0, π/2, 1/100}, {{n1, 4/3}, 1, 3, 1/100}, {{n2, 1}, 1, 3}]

Una vez que uno empieza a hacer grafiquitos, no para. Aquí grafico primero la polarización resultante para incidencia de una onda circularmente polarizada. Vean lo que pasa para ángulos mayores que el crítico. (En los gráficos del costado están de nuevo los módulos y las fases.)

Para que vean por separado que cosas estoy graficando, las dibujo aquí abajo aparte [expandir]

Manipulate[ParametricPlot[{modTE[4/3, 1, θ] Cos[ϕ + argTE[4/3, 1, θ]], modTM[4/3, 1, θ] Sin[ϕ + argTM[4/3, 1, θ]]}, {ϕ, 0, 2π}, PlotRange-> {{-1, 1}, {-1, 1}}],  {θ, 0, π/2}]

Plot[{modTM[4/3, 1, θ], modTE[4/3, 1, θ]} , {θ, 0, π/2}, PlotStyle->{{Thickness[0.01], RGBColor[1,0,0]}, {Thickness[0.01], RGBColor[0,0,1]}}],

Plot[{argTM[4/3, 1, θ], argTE[4/3, 1, θ]} , {θ, 0, π/2}, PlotStyle->{{Thickness[0.01], RGBColor[1,0,0]}, {Thickness[0.01], RGBColor[0,0,1]}}]

Ahora sí, el gráfico completo. (Queda todo medio apiñado dentro de la función Manipulate, por eso en la celda de arriba esta cada cosa por separado para que vean bien de qué funciones se trata.) Noten que pueden variar los índices y el ángulo de incidencia.

Manipulate[Show[ParametricPlot[{modTE[n1, n2, θ] Cos[ϕ + argTE[n1, n2, θ]], modTM[n1, n2, θ] Cos[ϕ +π/2+ argTM[n1, n2, θ]]}, {ϕ, 0, 2π}, PlotRange-> {{-1, 1}, {-1, 1}}], ImageSize-> 400]
Show[Plot[{modTM[n1, n2, θ], modTE[n1, n2, θ]} , {θ, 0, π/2}, PlotStyle->{{Thickness[0.01], RGBColor[1,0,0]}, {Thickness[0.01], RGBColor[0,0,1]}}], Epilog-> {Inset[disco, {θ, modTE[n1, n2, θ]}, {0, 0}, 0.05], Inset[disco, {θ, modTM[n1, n2, θ]}, {0, 0}, 0.05]}, ImageSize-> 400]
Show[Plot[{argTM[n1, n2, θ], argTE[n1, n2, θ]} , {θ, 0, π/2}, PlotStyle->{{Thickness[0.01], RGBColor[1,0,0]}, {Thickness[0.01], RGBColor[0,0,1]}}], Epilog-> {Inset[disco, {θ, argTE[n1,n2, θ]}, {0, 0}, 0.05], Inset[disco, {θ, argTM[n1, n2, θ]}, {0, 0}, 0.05]}, ImageSize-> 400], {θ, 0, π/2}, {{n1, 4/3}, 1, 3}, {n2, 1, 3}]

The ultimate figure

Ahora libero la polarización inicial. Supongo que la componente TE tiene módulo ETE, la TM módulo ETM y fase relativa α. 

α antes era π/2. Ahora pueden variarlo entre 0, y π. En los valores extremos tienen polarización lineal. 

Pueden manipular todos esos valores dentro del Manipulate. Además dentro del primer gráfico incluyo  una representación de la polarización de la onda incidente, para comparar con la reflejada.

Manipulate[{ParametricPlot[{{ ETE Cos[ϕ],  ETM  Cos[ϕ + α]}, {ETE modTE[n1, n2, θ] Cos[ϕ + argTE[n1, n2, θ]],- ETM modTM[n1, n2, θ] Cos[ϕ + α+  argTM[n1, n2, θ]]}}, {ϕ, 0, 2π},PlotStyle->{Thickness[0.01], Thickness[0.015]}, ImageSize-> 400, PlotRange-> {{-1,1}, {-1,1}}],
Show[Plot[{modTM[n1, n2, θ], modTE[n1, n2, θ]} , {θ, 0, π/2}, PlotStyle->{{Thickness[0.01], RGBColor[1,0,0]}, {Thickness[0.01], RGBColor[0,0,1]}}], Epilog-> {Inset[disco, {θ, modTE[n1, n2, θ]}, {0, 0}, 0.05], Inset[disco, {θ, modTM[n1, n2, θ]}, {0, 0}, 0.05]}, ImageSize->250],
Show[Plot[{argTM[n1, n2, θ], argTE[n1, n2, θ]} , {θ, 0, π/2}, PlotStyle->{{Thickness[0.01], RGBColor[1,0,0]}, {Thickness[0.01], RGBColor[0,0,1]}}], Epilog-> {Inset[disco, {θ, argTE[n1,n2, θ]}, {0, 0}, 0.05], Inset[disco, {θ, argTM[n1, n2, θ]}, {0, 0}, 0.05]}, ImageSize-> 250]}, {θ, 0, π/2}, {{n1, 4/3}, 1, 3}, {{n2, 1},1, 3}, {{ETM, 1}, 0, 1}, {{ETE, 1}, 0, 1}, {{α, 0}, 0, π, π/100}]

Un gráfico más complicado para onda incidente circular desde agua a vacío.

Primero grafico un cuadrado. Como cierro con ";", el resultado no aparece graficado,  pero queda guardado en "plano". Usando la función "Show" lo pueden ver.

plano = ParametricPlot3D[{x, y, 0}, {x, -1, 1}, {y, -1, 1}, Mesh-> False, ViewPoint-> {1, -1, 1}, Boxed-> False, Axes-> False];

Show[plano]

Defino una función para parametrizar una elipse con centro en "origen", ejes según los vectores "eje1" y "eje2", con radios "a" y "b". El ángulo "ϕ" es el que recorre la elipse de 0 a 2π. Los ángulos "α1" y "α2" dan las fases en cada dirección.

elipse[origen_, eje1_, eje2_, a_, b_, ϕ_, α1_, α2_]:= origen + a Cos[ϕ+α1] eje1 +b Sin[ϕ+α2] eje2;

Y ahora grafico, para la onda incidente y la reflejada, las elipses asociadas. La incidente es siempre circular. La otra pasa de circular, a elíptica, a lineal [Brewster], a elíptica, y luego del ángulo crícito,  el ángulo de la elipse queda en 45 grados. 

Usen la barra dentro del gráfico para cambiar el ángulo de incidencia. Pueden girar el gráfico con el mouse, para cambiar el punto de vista.

Manipulate[Show[plano,ParametricPlot3D[{{-λ Sin[θ],0, λ Cos[θ]}, {λ Sin[θ],0, λ Cos[θ]}}, {λ, 0, 2}, PlotStyle-> {Thickness[0.007]}], ParametricPlot3D[{elipse[{-Sin[θ], 0, Cos[θ]}, {0,1,0}, {Cos[θ], 0, Sin[θ]}, 1/2, 1/2, ϕ, 0, 0], elipse[{Sin[θ], 0, Cos[θ]}, {0,1,0}, {-Cos[θ], 0, Sin[θ]}, 1/2,((modTM[nagua, nvacio, θ])/(modTE[nagua, nvacio, θ]))/2, ϕ, argTE[nagua, nvacio, θ], argTM[nagua, nvacio, θ]]}, {ϕ, 0, 2π}, Boxed-> False, Axes-> False, PlotStyle-> {RGBColor[1,0,0], Thickness[0.007]}], PlotRange-> {{-2,2},{-1,1},{-.25,1.25}}, ImageSize-> 600], {θ, 0, π/2}]

Varias vistas a la vez, pero calculando todo una sola vez.

Manipulate[

g1 = ParametricPlot3D[{{-λ Sin[θ],0, λ Cos[θ]}, {λ Sin[θ],0, λ Cos[θ]}}, {λ, 0, 2}, PlotStyle-> {Thickness[0.007]}];g2 = ParametricPlot3D[{elipse[{-Sin[θ], 0, Cos[θ]}, {0,1,0}, {Cos[θ], 0, Sin[θ]}, 1/2, 1/2, ϕ, 0, 0],elipse[{Sin[θ], 0, Cos[θ]}, {0,1,0}, {-Cos[θ], 0, Sin[θ]}, 1/2,((modTM[nagua, nvacio, θ])/(modTE[nagua, nvacio, θ]))/2, ϕ, argTE[nagua, nvacio, θ], argTM[nagua, nvacio, θ]]}, {ϕ, 0, 2π}, Boxed-> False, Axes-> False, PlotStyle-> {RGBColor[1,0,0], Thickness[0.007]}];

Show[plano, g1, g2, PlotRange-> {{-2,2},{-1,1},{-.25,1.25}}, ImageSize-> 300, ViewPoint-> {0, 0, 1}]
Show[plano, g1, g2, PlotRange-> {{-2,2},{-1,1},{-.25,1.25}}, ImageSize-> 300, ViewPoint-> {1, 0, 0}]
Show[plano, g1, g2, PlotRange-> {{-2,2},{-1,1},{-.25,1.25}}, ImageSize-> 300, ViewPoint-> {1, 1/2, 1/2}], {θ, 0, π/2}]