#importing modules
import math
from __future__ import division
#Variable declaration
n1 = 1.43; #Refractive index of fibre core
n2 = 1.4; #Refractive index of fibre cladding
#Calculation
#As sin (alpha_c) = n2/n1, solving for alpha_c
alpha_c = math.asin(n2/n1); #Critical angle for optical fibre(rad)
alpha_c = alpha_c*57.2957795; #Critical angle for optical fibre(degrees)
alpha_c = math.ceil(alpha_c*10**3)/10**3; #rounding off the value of alpha_c to 3 decimals
#AS cos(theta_c) = n2/n1, solving for theta_c
theta_c = math.acos(n2/n1); #Critical propagation angle for optical fibre(rad)
theta_c = theta_c*57.2957795; #Critical propagation angle for optical fibre(degrees)
theta_c = math.ceil(theta_c*10**2)/10**2; #rounding off the value of theta_c to 2 decimals
NA = math.sqrt(n1**2 - n2**2); #Numerical aperture for optical fibre
NA = math.ceil(NA*10**3)/10**3; #rounding off the value of NA to 3 decimals
#Result
print "The critical angle for optical fibre is",alpha_c, "degrees"
print "The critical propagation angle for optical fibre is",theta_c, "degrees"
print "Numerical aperture for optical fibre is",NA
#importing modules
import math
from __future__ import division
#Variable declaration
n1 = 1.45; #Refractive index of fibre core
n2 = 1.4; #Refractive index of fibre cladding
#Calculation
NA = math.sqrt(n1**2 - n2**2); #Numerical aperture for optical fibre
NA = math.ceil(NA*10**4)/10**4; #rounding off the value of NA to 4 decimals
#As sin(theta_a) = sqrt(n1^2 - n2^2), solving for theta_a
theta_a = math.asin(math.sqrt(n1**2 - n2**2)); #Half of acceptance angle of optical fibre(rad)
theta_a = theta_a*57.2957795; #Half of acceptance angle of optical fibre(degrees)
theta_accp = 2*theta_a; #Acceptance angle of optical fibre(degrees)
theta_accp = math.ceil(theta_accp*10**2)/10**2; #rounding off the value of theta_accp to 2 decimals
Delta = (n1 - n2)/n1; #Relative refractive index difference
Delta = math.ceil(Delta*10**4)/10**4; #rounding off the value of Delta to 4 decimals
#Result
print "Numerical aperture for optical fibre is", NA
print "The acceptance angle of optical fibre is",theta_accp, "degrees"
print "Relative refractive index difference is", Delta
#importing modules
import math
from __future__ import division
#Variable declaration
n1 = 1.55; #Refractive index of fibre core
n2 = 1.53; #Refractive index of fibre cladding
n0 = 1.3; #Refractive index of medium
#Calculation
NA = math.sqrt(n1**2 - n2**2); #Numerical aperture for optical fibre
NA = math.ceil(NA*10**4)/10**4; #rounding off the value of NA to 4 decimals
#n0*sin(theta_a) = sqrt(n1^2 - n2^2) = NA, solving for theta_a
theta_a = math.asin(math.sqrt(n1**2 - n2**2)/n0); #Half of acceptance angle of optical fibre(rad)
theta_a = theta_a*57.2957795; #Half of acceptance angle of optical fibre(degrees)
theta_accp = 2*theta_a; #Acceptance angle of optical fibre(degrees)
#Result
print "Numerical aperture for step index fibre is",NA
print "The acceptance angle of step index fibre is",int(theta_accp), "degrees"
#importing modules
import math
from __future__ import division
#Variable declaration
alpha = 2; #Power loss through optical fibre(dB/km)
P_in = 500; #Poer input of optical fibre(micro-watt)
z = 10; #Length of the optical fibre(km)
#Calculation
#As alpha = 10/z*log10(P_in/P_out), solving for P_out
P_out = P_in/10**(alpha*z/10); #Output power in fibre optic communication(micro-Watt)
#Result
print "The output power in fibre optic communication is",P_out, "micro-Watt"