HW1
HW1
{"name":"EE17BTECH1006_HW1.ipynb","provenance":[]},"kernelspec":
{"name":"python3","display_name":"Python 3"}},"cells":
[{"cell_type":"code","metadata":{"id":"lAicTmX9w9Wg","executionInfo":
{"status":"ok","timestamp":1604727616471,"user_tz":-330,"elapsed":4286
,"user":{"displayName":"JAMAKAYALA ANIRUDH
KUMAR","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgjnJ-xv-
BeufX8XaUiQd-
ckEffTGfELeAEg4MaQQ=s64","userId":"16554915110032739967"}},"outputId":
"b2549e54-0ea2-485c-a701-8ce37edbaa3f","colab":
{"base_uri":"https://localhost:8080/"}},"source":["import numpy as
np\n","import matplotlib.pyplot as plt\n","k=int(input(\"Enter your
value:
\"))\n","l=100\n","mean=np.array([1,0])\n","cov=np.array([[3,1],
[1,2]])\n","X=np.zeros((k*l,2))\n","for i in range(k):\n","
X[i*l:i*l+l,0], X[i*l:i*l+l,1] = np.random.multivariate_normal(mean,
cov, l).T\n"," mean=mean+np.array([10,10])\n","
cov=cov+np.array([[0.3,0.1],
[0.1,0.1]])\n","per=np.random.permutation(X.shape[0])\n","X=X[per]\n",
"sam_K=[]\n","N=k*l\n","for i in
range(k):\n","\ta=X[int(i*N/k):int((i+1)*N/k)];\n","\tsam_K.append(a)\
n","u=[]\n","for i in
range(k):\n","\ta=np.mean(sam_K[i],axis=0)\n","\tu.append(a) # np
array\n","\n","s=[]\n","for i in
range(k):\n","\ta=np.var(sam_K[i],axis=0)\n","\ta=np.diagflat(a)\n","\
ts.append(a) \n","P=[]\n","for i in range(k):\n","
P.append(1/k)\n","\n","\n","def rr(k,X):\n","
r11=np.zeros((k*l,k))\n"," for i in range(k):\n"," for j in
range(k*l):\n"," z=X[j]-u[i]\n","
z=z.reshape(1,2)\n"," r11[j,i]=P[i]*((2*np.pi)**(-2/2))*
(abs(np.linalg.det(s[i]))**(-1/2))*np.exp(-
(1/2)*np.matmul(np.matmul(z,np.linalg.inv(s[i])),np.transpose(z)))\n",
" # print(i,j)\n"," return r11\n","#
o=1\n","e=0.00000000000001\n","Perror=10\n","Seeror=np.array([10,0,0,0
])\n","Uerror=np.array([10,0,0,0])\n","while(Perror>=e and
np.max(Seeror)>=e and np.max(Uerror)>=e):\n"," a=rr(k,X)\n","
r1=np.zeros((l*k,k))\n"," for i in range(l*k):\n"," for j in
range(k):\n"," r1[i,j]=a[i,j]/np.sum(a[i])\n","\n","
utemp=[]\n"," Ptemp=[]\n"," stemp=[]\n"," for i in
range(k):\n"," utemp.append(u[i])\n","
Ptemp.append(P[i])\n"," stemp.append(s[i])\n"," \n","
\n"," n=[]\n"," P=[]\n"," for i in range(k):\n","
n.append(np.sum(r1[:,i]))\n","
P.append(np.sum(r1[:,i])/(l*k))\n"," u=[]\n"," for i in
range(k):\n"," # a1=r1[:,i]\n"," q=0\n"," for j
in range(l*k):\n"," q=q+r1[j,i]*X[i]\n","
u.append(q/(n[i]))\n"," s=[]\n"," for i in range(k):\n","
a1=r1[:,i]\n"," q1=np.zeros((2,2))\n"," for j in
range(l*k):\n"," z=(X[j]-u[i]).reshape(2,1)\n","
q1=q1+r1[j,i]*np.matmul(z,z.T)\n"," s.append(q1/(n[i]))\n","
print(\" u\",u)\n"," print(\" s\",s) \n"," print(\" p\",P)
\n"," Uerror=[]\n"," Perror=np.linalg.norm(np.array(P)-
np.array(Ptemp))\n"," for i in range(k):\n","
Uerror.append(np.linalg.norm(np.array(u[i])-np.array(utemp[i])))\n","
Serror=[]\n"," for i in range(k):\n","
Serror.append(np.linalg.norm(np.array(s[i])-np.array(stemp[i])))
\n","# # color=[] \n"," \n","
\n","\n"],"execution_count":3,"outputs":
[{"output_type":"stream","text":["Enter your value: 3\n"," u
[array([22.20885806, 20.92167173]), array([ 0.90688601, -0.49749135]),
array([2.21025307, 0.80035816])]\n"," s [array([[206.01307302,
198.31556912],\n"," [198.31556912, 193.77536108]]),
array([[154.28066032, 156.35615667],\n"," [156.35615667,
161.67649854]]), array([[156.27727673, 158.7430779 ],\n","
[158.7430779 , 164.45260577]])]\n"," p [0.3329590284719039,
0.3344668520343526, 0.3325741194937435]\n"," u [array([22.20885806,
20.92167173]), array([ 0.90688601, -0.49749135]), array([2.21025307,
0.80035816])]\n"," s [array([[105.31719457, 98.89166359],\n","
[ 98.89166359, 95.55567326]]), array([[114.62721935,
116.62516806],\n"," [116.62516806, 121.91542259]]),
array([[106.18980104, 107.86001106],\n"," [107.86001106,
112.81082336]])]\n"," p [0.3482123165017146, 0.3181343169511087,
0.33365336654717664]\n"," u [array([22.20885806, 20.92167173]),
array([ 0.90688601, -0.49749135]), array([2.21025307,
0.80035816])]\n"," s [array([[67.4181741 , 62.29008966],\n","
[62.29008966, 60.20154597]]), array([[89.59420681, 91.13096197],\n","
[91.13096197, 96.00340061]]), array([[79.56391557, 80.26189159],\n","
[80.26189159, 84.2729318 ]])]\n"," p [0.3775704050293867,
0.2927171283722672, 0.3297124665983461]\n"," u [array([22.20885806,
20.92167173]), array([ 0.90688601, -0.49749135]), array([2.21025307,
0.80035816])]\n"," s [array([[45.91685561, 41.84972044],\n","
[41.84972044, 40.85137721]]), array([[70.27709226, 71.18612715],\n","
[71.18612715, 75.42139083]]), array([[60.3308325 , 59.90409467],\n","
[59.90409467, 62.77525265]])]\n"," p [0.3991327420381856,
0.270226556656898, 0.3306407013049165]\n"," u [array([22.20885806,
20.92167173]), array([ 0.90688601, -0.49749135]), array([2.21025307,
0.80035816])]\n"," s [array([[34.15739604, 30.57254643],\n","
[30.57254643, 30.17800443]]), array([[57.38393246, 57.76190406],\n","
[57.76190406, 61.36688996]]), array([[47.83592555, 46.42185595],\n","
[46.42185595, 48.23108137]])]\n"," p [0.40866555928638754,
0.25171455661850617, 0.3396198840951063]\n"," u [array([22.20885806,
20.92167173]), array([ 0.90688601, -0.49749135]), array([2.21025307,
0.80035816])]\n"," s [array([[28.21538483, 24.63988885],\n","
[24.63988885, 24.38113823]]), array([[51.4663673 , 51.66459144],\n","
[51.66459144, 54.95158667]]), array([[42.2385463 , 40.21690284],\n","
[40.21690284, 41.35785087]])]\n"," p [0.40659845069712847,
0.2366240782849807, 0.3567774710178908]\n"],"name":"stdout"}]},
{"cell_type":"code","metadata":{"id":"RuHL6ArqM8zo"},"source":
[""],"execution_count":null,"outputs":[]}]}