2017-12-31 39 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 <:

iは、次のeqautionを使用しました。

答えて

0

theta > theta_criticalに有効な全内反射(TIR)の式を使用しています。入力角度をこの範囲に制限する必要があります。さらに、これらの方程式は、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)) 
関連する問題