Skip to content

Instantly share code, notes, and snippets.

@restrepo
Last active July 10, 2020 00:28
Show Gist options
  • Save restrepo/5a2e1408cb62e2a5c688f64ec1f610d4 to your computer and use it in GitHub Desktop.
Save restrepo/5a2e1408cb62e2a5c688f64ec1f610d4 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "view-in-github"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/restrepo/5a2e1408cb62e2a5c688f64ec1f610d4\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "CRgwJ5SVdg0T"
},
"source": [
"## Minimization in higher dimensions\n",
"<div style=\"float: right;\" markdown=\"1\">\n",
" <img src=\"https://raw.githubusercontent.com/restrepo/ComputationalMethods/master/material/figures/mexicanhat.svg?sanitize=true\" width=\"300\">\n",
"</div>\n",
"\n",
"For a complex scalar field with potential\n",
"\\begin{equation}\n",
"V(\\phi)=\\mu^2\\phi^*\\phi + \\lambda (\\phi^*\\phi)^2\n",
"\\end{equation}\n",
"with \n",
"\\begin{equation}\n",
"\\phi=\\frac{\\phi_1+i\\phi_2 }{\\sqrt{2} }\n",
"\\end{equation}\n",
"and $\\mu^2<0$, and $\\lambda>0$, find some of the infinite number of minimum values of $\\phi$, as illustrated in the figure, with the plane, $\\phi_1-\\phi_2$, moved to the minimum to easy the visualization. Expanding in terms of the real and imaginary part of $\\phi$\n",
"\\begin{equation}\n",
"V(\\phi)=\\frac{\\mu^2}{2}\\left(\\phi_1^2+\\phi_2^2 \\right) + \\frac{\\lambda}{4}\\left( \\phi_1^2+\\phi_2^2\\right)^2\n",
"\\end{equation}\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/usr/local/lib/python3.5/dist-packages/IPython/core/magics/pylab.py:160: UserWarning: pylab import has clobbered these variables: ['fmin', 'f']\n",
"`%matplotlib` prevents importing * from pylab and numpy\n",
" \"\\n`%matplotlib` prevents importing * from pylab and numpy\"\n"
]
}
],
"source": [
"%pylab inline\n",
"from scipy import optimize\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"def f(ϕ,m_H=126,G_F=1.1663787E-5):\n",
" v=1/np.sqrt(np.sqrt(2.)*G_F) # GeV\n",
" μ=np.sqrt(m_H**2/2)*1j #imaginary mass\n",
" λ=m_H**2/(2.*v**2)\n",
" #print(μ,λ)\n",
" return ( 0.5*μ**2*(ϕ[0]**2+ϕ[1]**2)+0.25*λ*(ϕ[0]**2+ϕ[1]**2)**2 ).real"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Check a point of the function"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-396572.6550230127"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"f([0,10])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Check the minimim obtained when an inizialization point at $\\phi_0=(0,0)$"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 103
},
"colab_type": "code",
"id": "86f1ZqusDBPa",
"outputId": "e10517d1-0a89-4197-8bef-032878c034cc"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Optimization terminated successfully.\n",
" Current function value: -120308559.069597\n",
" Iterations: 3\n",
" Function evaluations: 111\n"
]
},
{
"data": {
"text/plain": [
"array([246.21914011, -0.50137284])"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fmin=optimize.fmin_powell(f,x0=[0,10],ftol=1E-16,full_output=True)\n",
"fmin[0]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Check the proyection of the minimum in the plane $\\phi_1-\\phi_2$"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"V(ϕ)=-120308559.1 GeV^4\n"
]
}
],
"source": [
"print('V(ϕ)={} GeV^4'.format(fmin[1].round(1)))"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"colab_type": "code",
"id": "k1oZmo7GFWDl",
"outputId": "fcd2d495-c0d6-4d0c-dbd3-425932c894a0"
},
"outputs": [
{
"data": {
"text/plain": [
"246.21965057683713"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.sqrt( fmin[0][0]**2+fmin[0][1]**2 )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For random initialization points, we can get several minima"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([133.09154144, 105.44691523])"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.random.uniform(-300,300,2)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"df=pd.DataFrame()\n",
"for i in range(1000):\n",
" ϕ0=np.random.uniform(-300,300,2)\n",
" ϕmin=optimize.fmin_powell(f,x0=ϕ0,ftol=1E-16,disp=False)\n",
" df=df.append({'ϕ1':ϕmin[0],'ϕ2':ϕmin[1]},ignore_index=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Projection of the minima in the plane, $\\phi_1,\\phi_2$"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>ϕ1</th>\n",
" <th>ϕ2</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>135.512763</td>\n",
" <td>-205.573362</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>97.286375</td>\n",
" <td>-226.184610</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>-178.923161</td>\n",
" <td>-169.146737</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" ϕ1 ϕ2\n",
"0 135.512763 -205.573362\n",
"1 97.286375 -226.184610\n",
"2 -178.923161 -169.146737"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[:3]"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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bdiwAZeF7ohqs9TUVPzlL3/Bli1b8N5772H69OnYsmVL5eNPPfUUunXrFvZ19957LwYPHoxPPvkEGzduDHtObd/XoJTC0KFD0a9fP3z22WdYv349FixYUOtssFtuuQULFiywlC1YsAC33HJLfU6foiV07Picc2x9OYZMQx09WvMxJaTt27fjmmuuwdSpU/Hoo49i6tSpMXvtdu3aVQZbixYt0K1bN+zduxcAsGfPHrz++uu44447LF9z5MgRFBUVYfTo0QCAtLQ0tDIvkljL9zV7++23kZaWhjvvvLOy7Ic//GFli66goAC9e/dGZmYmxowZg/LycgDATTfdhNdffx2lwXHMXbt2Yd++fejbt2+jfybUAKEXZM6fb+vSMgyZhtq1q+Zjcl4goBcxjdLufydPnsSvfvUr/PWvf8U555yD9957D3/84x+jMuW2b9++yMzMDLutXLky4vN37dqFDz/8EH369AEA3HfffZg8eTI8IfuFfP755zjnnHNw++23o2fPnrjjjjvw3XffVVuP0O9rtnnz5mpbb1u3bsULL7yA1atXo7i4GCkpKZgfnBp71llnoXfv3njzzTcB6FbMr371K84kc9KOHdbjSLNlo4Sj1Q2Vnl7zMTkrEAD699ezANPSgBUrGr0t9ltvvYUePXrg3HPPRcuWLdG2bVukp6dXfmKPZOnSpTjzzDNr/dT+zjvvRCw/duxYWFlJSQmGDRuGqVOnomXLlnjttdfwgx/8AL169UJhyKq6p06dwoYNGzBt2jT06dMH9957LyZNmoQ//elPtX7f2owbNw7vvvsu0tLSMGrUKKxfvx5XXHEFAOD777/HD37wg8rnGl1mQ4YMwYIFCzDbxjc1qoPQ2bGhx1HEkGmorl2BAwesx+QehYX6P055uf63sLDRIbNx40Zccskl+Oijj3DppZfiq6++QosWLfDiiy9i5cqVaNasGdq1a4eysjJ8/PHHWLhwIb755ht4PB4899xzWLVqFc4//3x4PB489NBDlu/dt2/fiIHyxz/+Eb/4xS8qj8vKyjBs2DCMGDECN954IwBg9erVWLp0Kd544w2cOHECR48exciRI1FQUIAOHTqgQ4cOlS2Tm266CZMiTFmN9H1Dde/eHYtMg8TTp0/HwYMHcfnll0MphVGjRuHJSNtfABgyZAj+93//Fxs2bMDx48fRq1evWn7a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\n",
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure( figsize=(6,6) )\n",
"plt.plot(df['ϕ1'],df['ϕ2'],'r.',label=r'$\\phi_{{\\rm min}}={}$ GeV'.format(\n",
" np.sqrt(df.loc[0,'ϕ1']**2+df.loc[0,'ϕ2']**2).round(1)))\n",
"plt.plot(df.loc[0,'ϕ1'],df.loc[0,'ϕ2'],'k*',label='Our Universe',markersize=10)\n",
"plt.xlabel('$\\phi_1$',size=15)\n",
"plt.ylabel('$\\phi_2$',size=15)\n",
"plt.legend(loc='best')\n",
"plt.grid()"
]
}
],
"metadata": {
"colab": {
"collapsed_sections": [],
"include_colab_link": true,
"name": "Minimization.ipynb",
"provenance": [],
"toc_visible": true
},
"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.5.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment