Skip to content

Instantly share code, notes, and snippets.

@syomantak
Created February 21, 2022 00:59
Show Gist options
  • Save syomantak/c5d89cdcfb9220d8751fe7a1df0bafdc to your computer and use it in GitHub Desktop.
Save syomantak/c5d89cdcfb9220d8751fe7a1df0bafdc to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import cvxpy as cvx\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"A = np.zeros((5,10,10))\n",
"b = np.zeros((5,10))\n",
"\n",
"for k in range(5):\n",
" for i in range(10):\n",
" for j in range(10):\n",
" if i < j:\n",
" A[k,i,j] = np.exp((i+1)/(j+1))*np.cos((i+1)*(j+1))*np.sin(k+1)\n",
" elif j < i :\n",
" A[k,i,j] = np.exp((j+1)/(i+1))*np.cos((i+1)*(j+1))*np.sin(k+1)\n",
" else:\n",
" A[k,i,j] = 0 \n",
"\n",
"\n",
"for k in range(5):\n",
" for i in range(10):\n",
" b[k,i] = np.exp((i+1)/(k+1))*np.sin((i+1)*(k+1))\n",
" A[k,i,i] = ((i+1)/10)*np.abs(np.sin(k+1)) + np.sum(np.abs(A[k,i,:]))\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def f(x):\n",
" ct = -100000\n",
" arg = None\n",
" #mult = False\n",
"\n",
" for k in range(5):\n",
" if x.T@A[k]@x-x.T@b[k] == ct:\n",
" #mult = True\n",
" arg = k \n",
"\n",
" if x.T@A[k]@x-x.T@b[k] > ct :\n",
" #mult = False\n",
" arg = k\n",
" ct = x.T@A[k]@x-x.T@b[k]\n",
"\n",
" return ct, 2*(A[arg]@x)-b[arg]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## (a) f(x0)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"5337.066429311364"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x0 = np.ones(10)\n",
"f(x0)[0]"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-0.8414083346162645\n"
]
}
],
"source": [
"x = cvx.Variable(10)\n",
"z = cvx.Variable(1)\n",
"\n",
"\n",
"objective = cvx.Minimize(z)\n",
"constraints = []\n",
"for i in range(5):\n",
" constraints.append(cvx.quad_form(x,A[i]) - x.T@b[i] <= z)\n",
" \n",
"p = cvx.Problem(objective, constraints)\n",
"primal_result = p.solve()\n",
"print(primal_result)\n",
"\n",
"opt = primal_result"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Sub-gradient descent"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"C = 1e-3\n",
"steps = 1e5\n",
"t=1\n",
"x = x0\n",
"mins = f(x0)[0]\n",
"arr = []\n",
"\n",
"\n",
"while t < steps:\n",
" val,grad = f(x)\n",
"\n",
" x1 = x - (C/np.sqrt(t)) * grad\n",
" \n",
" if val < mins:\n",
" mins = val\n",
" \n",
" arr.append(np.log(mins-opt))\n",
" t += 1\n",
"\n",
" x = x1"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAD8CAYAAAB6paOMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAjD0lEQVR4nO3deXzU9Z3H8ddnJvdBQiCE+xRB7iMGUIvSeoC6IthFQa0WV0DRXu5Wrdtut25bbau1KKi49VzPWqlnveqJghCQUzkicoSACVdIyJ1894+MNMYEyTHzy2Tez8djHvP7fX/fmfl8mZB3frc55xARkcjl87oAERHxloJARCTCKQhERCKcgkBEJMIpCEREIpyCQEQkwkV5XUBzdO7c2fXt29frMkREwsqqVav2OefS67eHZRD07duX7Oxsr8sQEQkrZrajoXZtGhIRiXAKAhGRCKcgEBGJcAoCEZEIpyAQEYlwCgIRkQinIBARiXAKAhGRCKcgEBGJcAoCEZEIpyAQEYlwYXmtocLSSl5cm9es15pBtN9HtN+I9vuI8vmIiTKifL6vtvuNGL/v6HR0YNrvs1YejYiIt8IyCHYeKOH6Jz/25LN9BlF+HzF1A8JnREcFQsNnxETVPn8ZHjFRPuKifcRF+YmL8dc+R/uIj/YTF107HXd02h9or9vmO9oeH+3HpzASkVYUlkFwYkYyS34ysVmvrXFQWV1DZbWjqrqGiuoaqqrd0bba59q22mWB9poaKqscVTX1X/PP133tNdU1lFRUcai0hrLKGsoqqwOP2umqGtfk+s0gMSaKxFg/SbFRJMVGkRh4PjodF5iO8ZMUF01SrP9on9SEGFLjo+kQH621GxEBwjQIYqN8nNAl2esyWqyyuuYrwXB0uqp2urSimrKqfy4rrajmSEU1xWVVHCmvorii6uj0ziMlFJcH2surqKz+5pBJjosiNSGa1PgYUhOiSYmPbmA+hk5JMaQnxdI5KZb4GH8I/mVEJJTCMgjaiy83HSXHtf57l1dVc6S8NjSKy6s4UlFFUVklh0urOFRSwaHSSg6VVFJYWnl0fvfB0kB7BY2trCTFRtE5KYbOSbGkJ9eGQ+ekWDon14ZFenIs3VPjSU+K1SYskTAR1CAws0HA03Wa+gO/cM7dVafPGcDzwOeBpuecc78KZl2RIDbKT2yUn7TEmCa/tqbGUVxRRWFJJQeOVLD/SDn7iiooKC5nX3E5BUW1z1vzi1m2bT+HSiq/9h5RPqNrShzdU+LplhpHt5R4uqf+c75HajypCU2vTURaX1CDwDm3GRgFYGZ+YDewpIGu7zvnzg9mLXL8fD6jQ1w0HeKi6ZWW8I39K6pqjoZFflEZeYVl5B0qZc+hUvIKy1i98yB7C/d8bXNVSnw0fTol0KdTIn3rPXdOisFMaxQioRDKTUPfAT5zzjV4qzQJXzFRPrqlxNMtJR5IabBPTY1jX3E5eYVl7DlUyu5DpezYX8L2/UdYu+sQL6/L+8rmqMQYP307J3JiRjIDM5I4sUsyJ2Yk07NjvDY5ibSyUAbBJcCTjSybYGZrgTzg351zG+t3MLM5wByA3r17B61ICQ6fz+jSIY4uHeIY1Sv1a8srqmoC4XCEHftL+HzfEbbtO8LybftZ8vHuo/3io/2c0CWJgRlJDOnWgWE9UhjavQPJcdEhHI1I+2LONf0QxiZ/iFkMtb/khzrnvqi3rANQ45wrNrNzgT855wYe6/0yMzOdbl4fOQpLK8nJL2LLF8Vs+aKIrYHn/KJyoPaQ2n6dExneI+Wfj54pJMToWAiRusxslXMus357qP6nTAFW1w8BAOfc4TrTr5jZIjPr7JzbF6LapI1LiY9mbJ80xvZJ+0p7QVE5G3YXsn53IetyC/lo2wGeX1N7xrnfZwzr3oHMvmmc3DeNzL4d6ZwU60X5Im1eqIJgJo1sFjKzrsAXzjlnZlnUXv9of4jqkjCWnhzLpMFdmDS4y9G2/KIy1ucWsnrnQVZuP8hjy3fw56W1B6T1T09kXL80vjUwnVMHdCYlQZuTRCAEm4bMLAHYBfR3zhUG2uYBOOfuM7PrgGuAKqAU+Ilz7sNjvac2DcnxKq+qZsPuQlZuP8jKzw+w4vMDFJVX4TMY1SuViSemM/HEdEb2TNWZ1tLuNbZpKCT7CFqbgkCaq6q6hjW7DvHelgLe3bqPdbmHcA46J8Vw1pCuTB7WlVMGdCLarwvzSvujIBBpwMEjFbyfs4/XN+7l7U35HKmopkNcFGcOyeCCkd351sB0rSlIu6EgEPkGZZXVvL91H69u2Msbn+zlcFkVGR1imTa6J98d26NdXN9KIpuCQKQJyquqeevTfJ5dlcs7WwqornGM6Z3Klaf2Y8qwrtp0JGFJQSDSTPlFZTz/cR6Pf7SD7ftL6Nohjssn9GFmVu9mXctJxCsKApEWqqlxvL05n4c+2M7SnH0kxPj53oS+zJnYX4EgYUFBINKKNu8tYuHbOby4Lo/4aD9XnNKXeacPICVe5yZI26UgEAmCnPwiFvyjNhDSEmL493MGMSOzl440kjapsSDQHi+RFjihSzILZo7mxetOo396Ijc/t56pC5eyPrfQ69JEjpuCQKQVDOuRwjNzJ7Bg5mjyD5dz4aIPuPONLVRU1Xhdmsg3UhCItBIz44KR3Xnjx6dzwcjuLPjHVqbf+wE795d4XZrIMSkIRFpZSkI0f7x4FPddNpZdB0r5l3uW8vbmfK/LEmmUgkAkSCYP68qL151G99R4Zj+8kgeXfv7NLxLxgIJAJIh6d0rguWtO4ewhGfzqpU+48/XNhOORetK+KQhEgiw+xs/CWWO4OLMXC97K4bZXN3ldkshX6F5+IiEQ5fdx20XDiYnycf+720hLiGHu6QO8LksEUBCIhIyZ8d8XDOVgSQW//fsmenSM5/wR3b0uS0SbhkRCyecz7pwxirF9OnLjs+vIyS/yuiSR4AeBmW03s/VmtsbMvnZdCKu1wMxyzGydmY0Jdk0iXoqJ8rFw1hjiov1c+/hqyquqvS5JIlyo1ggmOedGNXSNC2AKMDDwmAPcG6KaRDzTNSWOP8wYyZYviln49mdelyMRri1sGpoKPOpqLQdSzayb10WJBNukQV2YNroHi97OYcsX2kQk3glFEDjgdTNbZWZzGljeA9hVZz430PYVZjbHzLLNLLugoCBIpYqE1s/PH0J8jJ/fvbrZ61IkgoUiCE51zo2hdhPQfDObWG95Q9fr/doZN865xc65TOdcZnp6ejDqFAm5tMQY5k7sz5uffsGqHQe9LkciVNCDwDmXF3jOB5YAWfW65AK96sz3BPKCXZdIWzH7tH50Sozh3ne0r0C8EdQgMLNEM0v+cho4G9hQr9sLwPcCRw+NBwqdc3uCWZdIW5IQE8Wscb35x6YvdKVS8USw1wgygKVmthZYAbzsnHvVzOaZ2bxAn1eAbUAO8ABwbZBrEmlzLh3XB78Zjy3f7nUpEoGCemaxc24bMLKB9vvqTDtgfjDrEGnruqbEcc7QrjyTncsNZw8iLtrvdUkSQdrC4aMiAlw+oQ+FpZU88dFOr0uRCKMgEGkjxvVLY0zvVH710idc+dAKNu/VuQUSGgoCkTbCzHji6vH87NzBrN5xkCl/eo8bn13H3sIyr0uTds7C8SYZmZmZLjv7a5ctEmk3DpVUcM9bOTy6bAc+H1z9rf7MPX0ASbG6YLA0n5mtauhSPwoCkTZs14ESfvfaZl5cm0enxBh+dOZAZmb1JsqvlXlpusaCQD9NIm1Yr7QE7p45mr/NP5UB6Un8/PmNXHDPB6zddcjr0qQdURCIhIFRvVJ5eu54Fs4aw77icqYt+oBfvrCR4vIqr0uTdkBBIBImzIzzRnTjzRtO59JxfXhk2XbOvONdXtu41+vSJMwpCETCTIe4aG69cBh/veYUUhOimfvYKq5+NJu8Q6VelyZhSkEgEqbG9O7Ii9efxs1TBvP+1gLOuvNdnvhoJ+F4AIh4S0EgEsai/T7mnj6AN358OqN7d+RnS9Zz9aPZ7Csu97o0CSMKApF2oFdaAo/OzuIX5w/hva37mHzXe7y16Quvy5IwoSAQaSd8PmP2af148brT6JwUy+yHs/nPv62ntKLa69KkjVMQiLQzg7om8/x1pzJnYn8e/2gn5y14n3W5h7wuS9owBYFIOxQb5edn557E4/82jtLKaqYv+pA/L/1cO5KlQQoCkXbslAGdefWHE/n24C7c+tIn/OCpNZRU6CQ0+SoFgUg7l5IQzX2XjeWnkwfx8ro8pi38kM/3HfG6LGlDgn3P4l5m9raZfWpmG83shw30OcPMCs1sTeDxi2DWJBKJfD7j2jNO4NHZ48gvKuOCu5fyus5IloBgrxFUATc4504CxgPzzWxIA/3ed86NCjx+FeSaRCLWaQM78+L1p9EvPZE5j63i969torpG+w0iXVCDwDm3xzm3OjBdBHwK9AjmZ4rIsfXsmMAzcydwycm9WPj2Z1z50AoKSyq9Lks8FLJ9BGbWFxgNfNTA4glmttbM/m5mQ0NVk0ikiov2c9tFI/jt9OEs37af7973IbkHS7wuSzwSkiAwsyTgr8CPnHOH6y1eDfRxzo0E7gb+1sh7zDGzbDPLLigoCGq9IpFiZlZvHpmdxd7DZUxf9CEbdhd6XZJ4IOhBYGbR1IbA48655+ovd84dds4VB6ZfAaLNrHMD/RY75zKdc5np6enBLlskYpwyoDPPzjuFKJ9x8f3LeGdzvtclSYgF+6ghA/4MfOqcu7ORPl0D/TCzrEBN+4NZl4h81aCuySyZfyp9OiVy1SPZPL1yp9clSQgF+07YpwKXA+vNbE2g7WdAbwDn3H3Ad4FrzKwKKAUucTr9USTkMjrE8cy8CVz7+Gpu/Ot6dh8s5cdnnUjg7zRpx3TzehH5isrqGm5Zsp5nsnOZPqYHt00fQUyUzj1tDxq7eX2w1whEJMxE+33cftEIenZM4M43tnC4tJJ7Zo0hLtrvdWkSJIp5EfkaM+MH3xnIrRcO481P87n60WxdzrodUxCISKMuH9+H3393BB/k7OOKh1ZQXK4L1rVHCgIROaZ/zezFXZeMZtWOg1z2vx9RWKqzkNsbBYGIfKMLRnZn0aVj+CTvMLMeWM6BIxVelyStSEEgIsflnKFdWfy9seTkF3Px/cvIP1zmdUnSShQEInLczhjUhYe+fzK7D5Vy8eLl5B0q9bokaQUKAhFpklMGdOaxq7LYV1TOjPuXsXO/LlYX7hQEItJkY/uk8cTV4ykur2LG/cv4rKDY65KkBRQEItIsw3um8NSc8VTV1HDx/ctYn6srl4YrBYGINNvgrh14eu4EYqP8zLh/GUu37vO6JGkGBYGItMiA9CSWzD+FPp0SmP3wSl7TvZDDjoJARFqsS3IcT80Zz0ndOzD/8dW8vG6P1yVJEygIRKRVpCbE8H9XZTGqVyrXP7mal9bleV2SHCcFgYi0muS4aB6ZncXYPh350VNreOOTL7wuSY6DgkBEWlVibBQPXnkyQwKbiZZv0w0H2zoFgYi0uuS4aB6dnUWvtHiufjSbzXuLvC5JjkFBICJBkZoQw8PfzyI+2s/3H1pBfpGuTdRWBT0IzGyymW02sxwzu6mB5WZmCwLL15nZmGDXJCKh0SstgQevPJkDJRVc/egqyip1c5u2KKhBYGZ+YCEwBRgCzDSzIfW6TQEGBh5zgHuDWZOIhNawHincdfFo1u46xPzHV1NYovsZtDXBXiPIAnKcc9uccxXAU8DUen2mAo+6WsuBVDPrFuS6RCSEJg/ryq1Th/LulgL+5Z6lbNity1G0JcEOgh7ArjrzuYG2pvbBzOaYWbaZZRcUFLR6oSISXJdP6MvTcydQWV3DRfd+yF+yd33ziyQkgh0E1kCba0YfnHOLnXOZzrnM9PT0VilOREJrbJ+OvHj9aYzt05H/eHYdv3xhIxVVNV6XFfGCHQS5QK868z2B+qcbHk8fEWknOifF8ujsLK46rR8Pf7id7z34EQd160tPBTsIVgIDzayfmcUAlwAv1OvzAvC9wNFD44FC55wuVCLSjkX5ffz8/CHcOWMkq3cc4sJFH5CTr3MNvBLUIHDOVQHXAa8BnwLPOOc2mtk8M5sX6PYKsA3IAR4Arg1mTSLSdkwf05Mn54znSHkV0xZ9yIc5uoy1F8y5r22Ob/MyMzNddna212WISCvJPVjC7IdXsq3gCLdfNIKLxvb0uqR2ycxWOecy67frzGIR8VzPjgn8Zd4pZPVL44a/rOWet7YSjn+khisFgYi0CSnx0Tz8/SwuHNWdP7y+hV88v5GaGoVBKER5XYCIyJdionz88eJRZHSI4/73tnGotJI7Z4wk2q+/WYNJQSAibYqZcdOUwaQmxHD7q5soLqvk3svGEhft97q0dksxKyJtjplxzRkD+M204byzpYArH1pBcXmV12W1WwoCEWmzZo3rzV0Xj2Ll9oNc8eAKisp0wbpgUBCISJs2dVQP7plZe/XSy/+8gsMKg1anIBCRNm/K8G4svHQMG3YXas0gCBQEIhIWzhnalXtmjWF9biFXPrSSkgrtM2gtCgIRCRuTh3Xl7pmj+XjnQa56OFt3PGslCgIRCStThnfjjhkjWbZtP9c+vprKal3GuqUUBCISdqaN7smvpw3jrU35/OSZtVTrDOQW0QllIhKWLh3Xh6KyKm77+yZS4qO4deowzBq6z5V8EwWBiISteacP4GBJBfe/u430pDh+eOZAr0sKSwoCEQlrN00eTEFROX98cwsZHWK5JKu31yWFHQWBiIQ1M+P2i0awr7iCW/62gYyUOCYN6uJ1WWFFO4tFJOxF+30snDWaQRnJzH98NRvzCr0uKawELQjM7PdmtsnM1pnZEjNLbaTfdjNbb2ZrzEy3HRORZkmOi+ah759Mh7horno4m72FZV6XFDaCuUbwBjDMOTcC2ALcfIy+k5xzoxq6hZqIyPHK6BDHg1eezOGySv7t0ZWUVuiEs+MRtCBwzr0euHk9wHJANyEVkaAb0r0Df7pkNBvzDnPDX9boLmfHIVT7CGYDf29kmQNeN7NVZjansTcwszlmlm1m2QUFBUEpUkTah7OGZHDT5MG8sn4vd7+V43U5bV6LjhoyszeBrg0susU593ygzy1AFfB4I29zqnMuz8y6AG+Y2Sbn3Hv1OznnFgOLATIzMxXxInJMcyb2Z/PeIv745hYGdU1m8rCGflUJtDAInHNnHmu5mV0BnA98xznX4C9v51xe4DnfzJYAWcDXgkBEpCnMjN9MH85nBcXc8MwaBqSfysCMZK/LapOCedTQZOBG4ALnXEkjfRLNLPnLaeBsYEOwahKRyBIX7ee+y8cSHxPF3MdWUViq+xg0JJj7CO4Bkqnd3LPGzO4DMLPuZvZKoE8GsNTM1gIrgJedc68GsSYRiTDdUuK5e+Zodhwo4ebn1tHIxomIFrQzi51zJzTSngecG5jeBowMVg0iIgATBnTi388exO2vbuLedz/j2jMa/PUUsXRmsYhEhHmn9+e8Ed34w2ubWfH5Aa/LaVMUBCISEb68JlGvtATmP7GafcXlXpfUZigIRCRiJMVGsejSMRSWVvKjp3Sy2ZcUBCISUYZ2T+Hn553E0px9LHpHJ5uBgkBEItBl4/tw7vCu3PXmVlbt0P4CBYGIRBwz47fTRpDRIY4fPrWGw2WRfX6BgkBEIlJKQjQLZo5mT2EZ/7lkQ0SfX6AgEJGINbZPR374nYG8sDaPF9bmeV2OZxQEIhLRrj1jAKN7p/Kz59az60CDV8Np9xQEIhLRovw+/jhjFJXVjuuf/DgiDylVEIhIxOvbOZFbzjuJNbsOsfDtyDukVEEgIgJcPr4PJ/ftyD1v55CTX+x1OSGlIBARAXw+484Zo4jyGT948mMqq2u8LilkFAQiIgG90hL4+flD+GTPYRa/t83rckJGQSAiUsclWb057YTO/P61zWzYXeh1OSGhIBARqeeOGbW3SfnZkvVUR8BRRAoCEZF6MjrE8Ztpw1mXWxgRRxEF857FvzSz3YHbVK4xs3Mb6TfZzDabWY6Z3RSsekREmmJmVi+6p8Rx37uftfsTzYK9RvBH59yowOOV+gvNzA8sBKYAQ4CZZjYkyDWJiHwjM+PpuROocY6fPrvO63KCyutNQ1lAjnNum3OuAngKmOpxTSIiQO1RRLNP7ceybfvb9bWIgh0E15nZOjN70Mw6NrC8B7CrznxuoE1EpE34yVknMrhrMj948mOK2unlqlsUBGb2ppltaOAxFbgXGACMAvYAdzT0Fg20NbiL3szmmFm2mWUXFBS0pGwRkeMW5fdx45TBAPzPS596XE1wRLXkxc65M4+nn5k9ALzUwKJcoFed+Z5Ag+tfzrnFwGKAzMzM9n88l4i0GZMGdeGy8b35v+U7mTysK5MGd/G6pFYVzKOGutWZnQZsaKDbSmCgmfUzsxjgEuCFYNUkItJcN5w1CICfP7+B8qpqj6tpXcHcR/A7M1tvZuuAScCPAcysu5m9AuCcqwKuA14DPgWecc5tDGJNIiLN0jExht9OH07uwVL+9OZWr8tpVRaOt2fLzMx02dnZXpchIhHovAXvs2lvER/c+G26psR5XU6TmNkq51xm/XavDx8VEQkr/33BUAy47onVXpfSahQEIiJNkNk3jfNHdCN7x0He3pzvdTmtQkEgItJEv542nIQYP7e9somqdnDfAgWBiEgTJcZG8Ztpw9n8RRGPLd/hdTktpiAQEWmGC0f3YGTPFO54fQuHSiq8LqdFFAQiIs30n+cPobi8iluWNHSaVPhQEIiINNPJfdP49uAuvLJhDyu3H/C6nGZTEIiItMAf/nUkiTFR/PjpNWF7NzMFgYhIC6QlxjB1VHdyD5by3Opcr8tpFgWBiEgL/de/DCUhxs9P/7qOyjA8nFRBICLSQjFRPuadPgDn4L9eCL/LpSkIRERawfxJJ5CeHMuzq3IpLAmvG9goCEREWoHfZ/zuohFUVNVww1/WeF1OkygIRERayaTBXRiUkcz7W/eRk1/sdTnHTUEgItKKFl02hqoaxw3PrPG6lOOmIBARaUUD0pMY2TOFtbmFLN+23+tyjouCQESkld118WgAZj6w3ONKjo+CQESklfXulMDUUd1xDv6+fo/X5XyjYN68/mkzWxN4bDezNY302x64t/EaM9P9J0WkXbj6W/0BuObx1WzMK/S4mmMLWhA45y52zo1yzo0C/go8d4zukwJ9v3YvTRGRcDSsRwpLrj0FgJfXte21gqhgf4CZGTAD+HawP0tEpC0Z1iMFgGVtfKdxKPYRfAv4wjm3tZHlDnjdzFaZ2ZzG3sTM5phZtpllFxQUBKVQEZHWFO33ccWEPny88xDTF33gdTmNalEQmNmbZrahgcfUOt1mAk8e421Odc6NAaYA881sYkOdnHOLnXOZzrnM9PT0lpQtIhIyN005if7piazeeYifPrvW63Ia1KIgcM6d6Zwb1sDjeQAziwKmA08f4z3yAs/5wBIgqyU1iYi0JfExfl7/0USG9ejAM9m5HDjS9m5rGexNQ2cCm5xzDV6k28wSzSz5y2ngbCC87/kmIlJPlN/HrKw+ANz9VmNbyb0T7CC4hHqbhcysu5m9EpjNAJaa2VpgBfCyc+7VINckIhJyZwyq3aT90AfbKaus9riarwpqEDjnrnTO3VevLc85d25geptzbmTgMdQ59+tg1iMi4pXuqfHcOHkwAP/2SNs6ZUpnFouIhMiscb3J6BDL0px9/Hnp516Xc5SCQEQkRFLio/m/q8YBcOtLn7C/uNzjimopCEREQmhgRjI3nHUiAJ/sOexxNbUUBCIiITZzXG8Alubs87iSWgoCEZEQ65wUC8DDH2ynqrrG42oUBCIinhjXL43yqhqG/fI1zw8nVRCIiHjgnlljOKlbB8oqazzfV6AgEBHxQHpyLL+7aAQA0xd9yNub8j2rRUEgIuKRYT068B/nDALgw8+823GsIBAR8YiZMX/SCaQlxvDA+5+zPtebO5kpCEREPDZnYu1tLS9ZvIyissqQf76CQETEY3Mn9md4jxSOVFTzSV7odxwrCEREPGZm3HrhMADueH0LpRWhPZxUQSAi0gb06hgPwIrtB7h48TKccyH7bAWBiEgb0Ckpli3/M4WEGD/rcgtZuf1gyD5bQSAi0kbERPl46MqTAVi14yAb8wpDsvNYQSAi0oYMzEjGDG5/dRPnLVjK3MdWBf0zWxQEZvavZrbRzGrMLLPespvNLMfMNpvZOY28Ps3M3jCzrYHnji2pR0Qk3KUlxvDsvFO4//KxjOuXxoef7aekoiqon9nSNYINwHTgvbqNZjaE2vsVDwUmA4vMzN/A628C/uGcGwj8IzAvIhLRxvbpyDlDu3Jy3zQAfvDkx0H9vBYFgXPuU+fc5gYWTQWecs6VO+c+B3KArEb6PRKYfgS4sCX1iIi0Jz8560R8Bm9+ms+437zJwrdzgvI5wdpH0APYVWc+N9BWX4Zzbg9A4LlLkOoREQk7Pp/x/PzTuGJCH/xm3PF6Q393t1zUN3UwszeBrg0susU593xjL2ugrUUHxZrZHGAOQO/evVvyViIiYWN4zxSG90xhT2EZeYVlrPj8AFn90lr1M74xCJxzZzbjfXOBXnXmewJ5DfT7wsy6Oef2mFk3oNHrsDrnFgOLATIzM0N3poWISBvwg+8M5LOCYmqCcKJZsDYNvQBcYmaxZtYPGAisaKTfFYHpK4DG1jBERCLasB4p/OOGMxjfv1Orv3dLDx+dZma5wATgZTN7DcA5txF4BvgEeBWY75yrDrzmf+scanobcJaZbQXOCsyLiEgIWSivZ9FaMjMzXXZ2ttdliIiEFTNb5ZzLrN+uM4tFRCKcgkBEJMIpCEREIpyCQEQkwikIREQinIJARCTCheXho2ZWAOwAUoDCOovqzjc23RnY1wpl1P/slvRtbHlD7ZE25qbMh+OYm/od159vy2NurZ/r+vMac/PH3Mc5l/61Vudc2D6AxY3NH2M6Oxif3ZK+jS1vqD3SxtyU+XAcc1O/43Aac2v9XGvMwRlz3Ue4bxp68RjzjU0H67Nb0rex5Q21R9qYmzIfjmNu6ndcf74tj7m1fq7rz2vMrSwsNw21hJlluwbOrGvPNObIoDFHhmCMOdzXCJpjsdcFeEBjjgwac2Ro9TFH3BqBiIh8VSSuEYiISB0KAhGRCKcgEBGJcBEfBGaWaGaPmNkDZnap1/WEgpn1N7M/m9mzXtcSKmZ2YeA7ft7Mzva6nmAzs5PM7D4ze9bMrvG6nlAJ/H9eZWbne11LKJjZGWb2fuC7PqO579Mug8DMHjSzfDPbUK99spltNrMcM7sp0DwdeNY5dzVwQciLbSVNGbNzbptz7ipvKm09TRzz3wLf8ZXAxR6U22JNHO+nzrl5wAwgbA+vbOL/ZYAbqb07Ythq4pgdUAzEUXuv+OZp7TPU2sIDmAiMATbUafMDnwH9gRhgLTAEuBkYFejzhNe1h2LMdZY/63XdHoz5DmCM17WHYrzU/mHzITDL69pDMWbgTOASasP+fK9rD9GYfYHlGcDjzf3MdrlG4Jx7DzhQrzkLyHG1fw1XAE8BU6lN0Z6BPmH779HEMbcLTRmz1bod+LtzbnWoa20NTf2OnXMvOOdOAcJ2k2cTxzwJGA/MAq42s7D8/9yUMTvnagLLDwKxzf3MqOa+MAz1AHbVmc8FxgELgHvM7DyCfBq3Bxocs5l1An4NjDazm51zv/WkuuBo7Hu+ntq/GFPM7ATn3H1eFBcEjX3HZ1C72TMWeCX0ZQVVg2N2zl0HYGZXAvvq/JJsDxr7nqcD5wCpwD3NffNICgJroM05544A3w91MSHS2Jj3A/NCXUyINDbmBdSGfnvT2HjfAd4JbSkh0+CYj04493DoSgmZxr7n54DnWvrmYbnq1Ey5QK868z2BPI9qCRWNuf2POdLGCxoztPKYIykIVgIDzayfmcVQu1PpBY9rCjaNuf2POdLGCxpzq4+5XQaBmT0JLAMGmVmumV3lnKsCrgNeAz4FnnHObfSyztakMbf/MUfaeEFjDtWYddE5EZEI1y7XCERE5PgpCEREIpyCQEQkwikIREQinIJARCTCKQhERCKcgkBEJMIpCEREIpyCQEQkwv0/4MJVgUprS8oAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.semilogx(arr)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Polyak Step size"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"steps = 1e5\n",
"t=1\n",
"x = x0\n",
"mins = f(x0)[0]\n",
"arr2 = []\n",
"\n",
"\n",
"while t < steps:\n",
" val,grad = f(x)\n",
"\n",
" x1 = x - ((val-opt)/(np.linalg.norm(grad)**2)) * grad\n",
" if val < mins:\n",
" mins = val\n",
" \n",
" arr2.append(np.log(mins-opt))\n",
" t += 1\n",
"\n",
" x = x1"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.semilogx(arr2)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Plotting on Same Graph"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.semilogx(arr)\n",
"plt.semilogx(arr2)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"interpreter": {
"hash": "40d3a090f54c6569ab1632332b64b2c03c39dcf918b08424e98f38b5ae0af88f"
},
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment