import numpy as np
########Q1}
trns_mtrx = [[0.75,0.15,0.1],[0.45,0.45,0.1],[0.3,0.1,0.6]]
distribution = [1,0,0]
for i in range(0,60):
    distribution = [distribution[0]*trns_mtrx[0][0]+distribution[1]*trns_mtrx[1][0]+distribution[2]*trns_mtrx[2][0],distribution[0]*trns_mtrx[0][1]+distribution[1]*trns_mtrx[1][1]+distribution[2]*trns_mtrx[2][1],distribution[0]*trns_mtrx[0][2]+distribution[1]*trns_mtrx[1][2]+distribution[2]*trns_mtrx[2][2]]
distribution = [round(distribution[0],2),round(distribution[1],2),round(distribution[2],2)]
print("Q1 Ans)",'\n',"the stationary distribution for the Transition Probability Matrix is:",distribution)


##########Q3)
dA = [2.76,1.8,2.5,10.64,12.01]
dB = [7.4,4.81,6.69,28.52,32.18]
sumx = 0
sumy = 0
for i in dA:
    sumx = sumx + i
meanx = sumx/5
for j in dB:
    sumy = sumy + j
meany = sumy/5  
sqdevx = 0
for k in dA:
    sqdevx = sqdevx + ((k - meanx)**2)
sqdevy = 0
for l in dB:
    sqdevy = sqdevy + ((l - meany)**2)
sdx = ((sqdevx)/5)**0.5
sdy = ((sqdevy)/5)**0.5
semidevx = 0
semidevy = 0
for d in dB:
    if (d<meanx):
        semidevx = semidevx + ((d-meanx)**2)
for e in dA:
    if (e<meany):
        semidevy = semidevy + ((e-meany)**2)
semivarx = semidevx/5
semivary = semidevy/5
d3 = []
for x in range(0,5):
    d3.append(dB[x]/dA[x])
ss = 0
for s in d3:
    ss = ss + s
scale = ss/5
print("Q3 Ans)",'\n',"Standard deviation of X is:",round(sdx,3),'\n',"Standard deviation of Y is:",round(sdy,3),'\n',"Semi variance of X is:",round(semivarx,3),'\n',"Semi variance of y is:",round(semivary,3),'\n',"Scale factor for the given variables is:",round(scale,3),'\n',"sd is not independent of scale",'\n',"as var(nx) = var(x)**2, the semi variance of y is scale factor squared multiplied by semi variance of x")

#Q4) 
Xvalue = [2.29, 19.98, 0.06, 12.01, 7.04, 2.44]
L = 0
lamda = 0
for y in float_range(0.34,0.36,0.0001):
    q = 1
    for i in Xvalue:
        q = q*((float(y))*(np.exp(-(float(y))*i)))
    if (q>L):
        L = q
        lamda = y
print("Q4 Ans)",'\n',"the value which maximizes the likelihood function of an Exponential Distribution for the given range for lambda is:",lamda)

#OUTPUTS (Answers)     
#Q1 Ans) 
 #the stationary distribution for the Transition Probability Matrix is:
 #[0.75, 0.15, 0.1]
#Cant identify erro inQ3&4 getting 0 as ouyput
 
            
    

