正交的偏振光叠加表现为椭圆偏振光(圆偏振和线偏振是椭偏的特殊形式),例如沿着z轴传播的x方向偏振光与y方向偏振光的叠加,在x-y平面上的投影为一个椭圆,可以用如下的方程表示。
在这个方程中和的表达式都不容易显式给出,要对这样的方程作图,可以用到sympy库的plot_implicit来对隐函数作图。上面的方程作图,代码如下所示:
from sympy import plot_implicit as pt
from sympy import Eq
from sympy.abc import x, y
import numpy as np
δ = np.pi/4
x0, y0 = 1, 2
p1 = pt(Eq((x/x0)**2+(y/y0)**2-2*x*y*np.cos(δ)/(x0*y0),(np.sin(δ)**2)))
如下为输出图形:
输出结果
稍微加以改进,可以同时显示多个δ下偏振的状态,代码如下:
from sympy import plot_implicit as pt
from sympy import Eq
from sympy.abc import x, y
import numpy as np
δ = np.pi/4
x0, y0 = 1, 2
a = []
for δ in [np.pi/4, np.pi/2, 3*np.pi/4]:
p = pt(Eq((x/x0)**2+(y/y0)**2-2*x*y*np.cos(δ)/(x0*y0),(np.sin(δ)**2)), show=False)
a.append(p)
for i in [1,2]:
a[0].extend(a[i])
a[0].show()
不同δ时的椭偏状态
再来一个示例,绘制一个直径为1的圆和一条直线,方程为:
from sympy import plot_implicit as pt
from sympy import Eq
from sympy.abc import x, y
p1 = pt(Eq(x**2 + y**2, 1), show=False, line_color='red')
p2 = pt(Eq(x+y, 1), show=False)
p1.extend(p2)
p1.show()
直线和圆
这里从图上看的话,比例似乎不太协调,不知道是不是有解决的办法。
网友评论