2017-12-31 15 views
0

가변 위상 각 0도에서 180도까지 수직 및 평행 파의 위상 변화를 플롯하려고합니다. 파는 1.33의 굴절률에서 1.5의 굴절률을 갖는 매체로 이동합니다.optics : TE en TM

def Phase(theta): 

    n=1.5/1.33 

    Shift=np.sqrt(np.sin(theta*np.pi/180)**2-n**2) 
    Shift=Shift/np.cos(theta*np.pi/180) 
    Shift=2*np.degrees(np.arctan(Shift)) 

    return Shift 

print(Phase(x)) 

x=np.linspace(0,180,30) 

문제는 내가 수익으로 [ nan nan nan nan nan nan nan nan nan nan]를 얻을 수 있습니다 : 18 페이지

내가 다음 코드를 사용 - Theory with equations < :

나는 다음과 같은 eqaution을 사용했다.

답변

0

theta > theta_critical에 유효한 TIR (total internal reflection)에 대한 방정식을 사용하고 있습니다. 입력 각도를이 범위로 제한해야합니다. 또한,이 방정식은 n < 1과 n을 입사 매체에 대한 전송 매체의 비율로 정의해야합니다. TIR의 경우 상위 색인에서 하위 색인으로 이동하므로 n = n_2/n_1 = 1.33/1.5입니다. 마지막으로, 입사각은 표면 법선을 기준으로 정의되므로 0 < = theta < = 90 °이어야합니다.

+0

내가 잘못 제목을 공식화 생각합니다. TIR을위한 플롯은 또한 내가 음모를 꾸미려고하는 것이지만 우선 굴절률 n = 1.33 인 매질에서 굴절률 n = 1.5 인 다른 매질로 들어오는 것을 계획하고 싶습니다. 1/4 pi를 입력으로 사용 – kevin

+0

이 수식은 낮은 지수에서 높은 지수의 경우에는 유효하지 않습니다. 이 경우의 위상 변화는 참조하는 슬라이드 데크의 16 페이지에 설명 된대로 0 ° 또는 180 °입니다. 조건문을 사용하여이를 처리 할 수 ​​있습니다. – Craig

+0

내 실수. 방금 슬라이드를 읽었습니다. 하하, 반사 계수가 양수 일 때 아래의 입사각에 대한 위상 변화는 0 °이고, 음의 반사 계수는 180 ° 위상 변화를 가져옵니다. 나는 같은 코드를 사용했고 40도까지의 입사각을 인쇄했지만 여전히 [nan nan nan nan nan nan nan nan nan] – kevin

1

코드가 표시된 경우 할당 전에 x를 사용하고 있습니다.

이 시도 :

def Phase(theta): 

    n=1.5/1.33 

    Shift=np.sqrt(np.sin(theta*np.pi/180)**2-n**2) 
    Shift=Shift/np.cos(theta*np.pi/180) 
    Shift=2*np.degrees(np.arctan(Shift)) 

    return Shift 

x=np.linspace(0,180,30) 
print(Phase(x))