# 11: Fibre Optics¶

## Example number 11.1, Page number 11.16¶

In [21]:
#importing modules
import math
from __future__ import division

#Variable declaration
n1=1.48;      #refractive index of core

#Calculation
NA=math.sqrt((n1**2)-(n2**2));     #numerical aperture
theta0=theta0*180/math.pi;    #acceptance angle(degrees)
theta0_m=60*(theta0-int(theta0));
thetac=thetac*180/math.pi;    #critical angle(degrees)
thetac_m=60*(thetac-int(thetac));
delta=(n1-n2)/n1;      #fractional refractive indices change

#Result
print "numerical aperture is",round(NA,4)
print "acceptance angle is",int(theta0),"degrees",round(theta0_m),"minutes"
print "critical angle is",int(thetac),"degrees",int(thetac_m),"minutes"
print "fractional refractive indices change is",round(delta,2)

numerical aperture is 0.2965
acceptance angle is 17 degrees 15.0 minutes
critical angle is 78 degrees 26 minutes
fractional refractive indices change is 0.02


## Example number 11.2, Page number 11.17¶

In [23]:
#importing modules
import math
from __future__ import division

#Variable declaration
n1=1.563;      #refractive index of core

#Calculation
NA=math.sqrt((n1**2)-(n2**2));     #numerical aperture
theta0=theta0*180/math.pi;    #acceptance angle(degrees)
theta0_m=60*(theta0-int(theta0));

#Result
print "numerical aperture is",round(NA,3)
print "acceptance angle is",int(theta0),"degrees",round(theta0_m,1),"minutes"
print "answer varies due to rounding off errors"

numerical aperture is 0.446
acceptance angle is 26 degrees 29.5 minutes
answer varies due to rounding off errors


## Example number 11.3, Page number 11.17¶

In [24]:
#importing modules
import math
from __future__ import division

#Variable declaration
n1=1.563;      #refractive index of core

#Calculation
delta=(n1-n2)/n1;      #fractional refractive indices change

#Result
print "fractional refractive indices change is",round(delta,4)

fractional refractive indices change is 0.0416


## Example number 11.4, Page number 11.17¶

In [25]:
#importing modules
import math
from __future__ import division

#Variable declaration
n1=1.55;      #refractive index of core

#Calculation
NA=math.sqrt((n1**2)-(n2**2));     #numerical aperture

#Result
print "numerical aperture is",round(NA,4)

numerical aperture is 0.3905


## Example number 11.5, Page number 11.18¶

In [26]:
#importing modules
import math
from __future__ import division

#Variable declaration
NA=0.39;     #numerical aperture
n1_n2=0.05;    #difference in refractive indices

#Calculation
x=NA**2/n1_n2;
n1=n2+n1_n2;      #refractive index of core

#Result
print "refractive index of core is",n1
print "refractive index of cladding is",n2

refractive index of core is 1.546
refractive index of cladding is 1.496


## Example number 11.6, Page number 11.18¶

In [27]:
#importing modules
import math
from __future__ import division

#Variable declaration
n1=1.55;      #refractive index of core

#Calculation
NA=math.sqrt((n1**2)-(n2**2));     #numerical aperture

#Result
print "numerical aperture is",round(NA,4)

numerical aperture is 0.3905


## Example number 11.7, Page number 11.18¶

In [28]:
#importing modules
import math
from __future__ import division

#Variable declaration
n1=1.48;      #refractive index of core

#Calculation
NA=math.sqrt((n1**2)-(n2**2));     #numerical aperture
theta0=theta0*180/math.pi;    #acceptance angle(degrees)
theta0_m=60*(theta0-int(theta0));

#Result
print "numerical aperture is",round(NA,4)
print "acceptance angle is",int(theta0),"degrees",round(theta0_m),"minutes"

numerical aperture is 0.2965
acceptance angle is 17 degrees 15.0 minutes


## Example number 11.8, Page number 11.19¶

In [29]:
#importing modules
import math
from __future__ import division

#Variable declaration
NA=0.33;     #numerical aperture
delta=0.02;     #fractional refractive indices change

#Calculation
x=1-delta
y=math.sqrt(1-x**2);
n1=NA/y;       #refractive index of core

#Result
print "refractive index of core is",round(n1,4)
print "refractive index of cladding is",round(n2,3)

refractive index of core is 1.6583
refractive index of cladding is 1.625


## Example number 11.9, Page number 11.19¶

In [31]:
#importing modules
import math
from __future__ import division

#Variable declaration
NA=0.20;     #numerical aperture
n0=1.33;     #refractive index of water

#Calculation
n1=math.sqrt(NA**2+n2**2);      #refractive index of core
theta0=theta0*180/math.pi;    #acceptance angle(degrees)
theta0_m=60*(theta0-int(theta0));
theta0_s=60*(theta0_m-int(theta0_m));

#Result
print "acceptance angle is",int(theta0),"degrees",int(theta0_m),"minutes",round(theta0_s,1),"seconds"
print "answer varies due to rounding off errors"

acceptance angle is 8 degrees 38 minutes 55.4 seconds
answer varies due to rounding off errors


## Example number 11.10, Page number 11.20¶

In [32]:
#importing modules
import math
from __future__ import division

#Variable declaration
n1=1.45;      #refractive index of core

#Calculation
delta=(n1-n2)/n1;      #fractional refractive indices change

#Result
print "fractional refractive indices change is",round(delta*10**3,4),"*10**-3"

fractional refractive indices change is 6.8966 *10**-3


## Example number 11.11, Page number 11.20¶

In [33]:
#importing modules
import math
from __future__ import division

#Variable declaration
n1=1.50;      #refractive index of core
delta=4/100;    #fractional refractive indices change

#Calculation
NA=math.sqrt((n1**2)-(n2**2));     #numerical aperture
theta0=theta0*180/math.pi;    #acceptance angle(degrees)
theta0_m=60*(theta0-int(theta0));
thetac=thetac*180/math.pi;    #critical angle(degrees)
thetac_m=60*(thetac-int(thetac));

#Result
print "refractive index of cladding is",n2
print "numerical aperture is",round(NA,2)
print "acceptance angle is",int(theta0),"degrees",int(theta0_m),"minutes"
print "critical angle is",int(thetac),"degrees",int(thetac_m),"minutes"

refractive index of cladding is 1.44
numerical aperture is 0.42
acceptance angle is 24 degrees 50 minutes
critical angle is 73 degrees 44 minutes


## Example number 11.12, Page number 11.21¶

In [37]:
#importing modules
import math
from __future__ import division

#Variable declaration
n1=1.563;      #refractive index of core

#Calculation
NA=math.sqrt((n1**2)-(n2**2));     #numerical aperture

numerical aperture is 0.446