commit 1f810ec1da14ce10b4f155eeac6be7124e63b3e9
Author: Remy Moll <remoll@ethz.ch>
Date:   Wed Oct 25 18:16:03 2023 +0200

    add assignments

diff --git a/problem-set-3/.ipynb_checkpoints/Cosmological_Probes___Problem_Sets___HS2023-checkpoint.pdf b/problem-set-3/.ipynb_checkpoints/Cosmological_Probes___Problem_Sets___HS2023-checkpoint.pdf
new file mode 100644
index 0000000..862e8d5
Binary files /dev/null and b/problem-set-3/.ipynb_checkpoints/Cosmological_Probes___Problem_Sets___HS2023-checkpoint.pdf differ
diff --git a/problem-set-3/.ipynb_checkpoints/Problem_Set_3_hints-checkpoint.ipynb b/problem-set-3/.ipynb_checkpoints/Problem_Set_3_hints-checkpoint.ipynb
new file mode 100644
index 0000000..90ecea4
--- /dev/null
+++ b/problem-set-3/.ipynb_checkpoints/Problem_Set_3_hints-checkpoint.ipynb
@@ -0,0 +1,154 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%matplotlib inline\n",
+    "\n",
+    "from scipy.integrate import quad\n",
+    "\n",
+    "import numpy as np\n",
+    "\n",
+    "import PyCosmo"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'0.4.3'"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "PyCosmo.__version__"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 1. Age of the Universe\n",
+    "\n",
+    "We recall the Friedmann equation, which describes the evolution of the scale factor $a(t)$:\n",
+    "\\begin{equation}\n",
+    "H^2(t) = \\frac{8\\pi G}{3}\\left[ \\rho(t) + \\frac{\\rho_\\mathrm{crit} - \\rho_0}{a^2(t)} \\right],\n",
+    "\\end{equation}\n",
+    "where $H(t)\\equiv\\dot{a}/a$ is the Hubble rate, $G$ is Newton's constant, $\\rho(t)$ is the energy density in the unverse as a function of time with $\\rho_0$ being its value today. The critical density $\\rho_\\mathrm{crit}\\equiv\\frac{3H_0^2}{8\\pi G}$.\n",
+    "1. Assume that the Universe is flat with matter and a cosmological constant, whose energy density remains constant with time. Re-write the Friedmann equation as\n",
+    "\t\\begin{equation}\n",
+    "\t\\mathrm{d}t = H_0^{-1}\\frac{\\mathrm{d}a}{a}\\left[ \\Omega_\\Lambda + \\frac{1 - \\Omega_\\Lambda}{a^3} \\right]^{-1/2},\n",
+    "\t\\end{equation}\n",
+    "\twhere $\\Omega_\\Lambda$ is the ratio of the energy density in the cosmological constant to the critical density.\n",
+    "2. We can integrate this equation from $a=0$ (when $t=0$) until today ($a=1$) to get the age of the universe today. Compute the integral for the following cases:\n",
+    "\t- a universe with only matter $\\Omega_\\Lambda = 0$ (analytically).\n",
+    "\t- a universe dominated by dark energy $\\Omega_\\Lambda = 0.7$ (numerically).\n",
+    "\t- For a fixed $H_0$, which universe is older?\n",
+    "\t"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Integral: 0.50000\n",
+      "Estimated Error: 0.00000\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Example on how to define functions and intergrate numerically\n",
+    "\n",
+    "# define a function\n",
+    "f = lambda x: x\n",
+    "\n",
+    "# integrate from 0 to 1\n",
+    "i, e = quad(f, 0, 1)\n",
+    "\n",
+    "# i contains the numerically integrated value\n",
+    "# e contains the estimated error\n",
+    "print(\"Integral: %.5f\" %(i))\n",
+    "print(\"Estimated Error: %.5f\" %(e))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# TODO: calculate the age of the universe numerically\n",
+    "# by following the example above.\n",
+    "# Define the proper function and integrate it numerically"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 2. Angular diameter distance\n",
+    "\n",
+    "Consider a galaxy of physical (visible) size of 5 kpc (1 pc $\\approx$ 3.26 light-years). What angle would the galaxy subtend if situated at redshift 0.1? Redshift 1.0?\n",
+    "\n",
+    "1. Do the calculation analytically in a flat universe, that contains only matter $\\Omega_M = 1.0$.\n",
+    "\n",
+    "2. Use PyCosmo and do the calculation numercally for a universe with the following parameters $\\Omega_M = 0.25$, $\\Omega_\\Lambda=0.7$ and $\\Omega_b=0.05$."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Define the Cosmology\n",
+    "Cosmo = PyCosmo.build()\n",
+    "#TODO: Set the parameters accordingle\n",
+    "Cosmo.set(h=0.7, omega_b=, omega_m=, omega_l_in=\"flat\")\n",
+    "\n",
+    "# Function to calculate the angular diameter distance (returns result in Mpc)\n",
+    "# uses the scaling parameter as input\n",
+    "# dist_ang = Cosmo.background.dist_ang_a(a=...)\n",
+    "\n",
+    "# TODO: calculate the angle of the galaxy"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "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.10.8"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/problem-set-3/Cosmological_Probes___Problem_Sets___HS2023.pdf b/problem-set-3/Cosmological_Probes___Problem_Sets___HS2023.pdf
new file mode 100644
index 0000000..efe7c58
Binary files /dev/null and b/problem-set-3/Cosmological_Probes___Problem_Sets___HS2023.pdf differ
diff --git a/problem-set-3/Problem_Set_3_hints.ipynb b/problem-set-3/Problem_Set_3_hints.ipynb
new file mode 100644
index 0000000..90ecea4
--- /dev/null
+++ b/problem-set-3/Problem_Set_3_hints.ipynb
@@ -0,0 +1,154 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%matplotlib inline\n",
+    "\n",
+    "from scipy.integrate import quad\n",
+    "\n",
+    "import numpy as np\n",
+    "\n",
+    "import PyCosmo"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'0.4.3'"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "PyCosmo.__version__"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 1. Age of the Universe\n",
+    "\n",
+    "We recall the Friedmann equation, which describes the evolution of the scale factor $a(t)$:\n",
+    "\\begin{equation}\n",
+    "H^2(t) = \\frac{8\\pi G}{3}\\left[ \\rho(t) + \\frac{\\rho_\\mathrm{crit} - \\rho_0}{a^2(t)} \\right],\n",
+    "\\end{equation}\n",
+    "where $H(t)\\equiv\\dot{a}/a$ is the Hubble rate, $G$ is Newton's constant, $\\rho(t)$ is the energy density in the unverse as a function of time with $\\rho_0$ being its value today. The critical density $\\rho_\\mathrm{crit}\\equiv\\frac{3H_0^2}{8\\pi G}$.\n",
+    "1. Assume that the Universe is flat with matter and a cosmological constant, whose energy density remains constant with time. Re-write the Friedmann equation as\n",
+    "\t\\begin{equation}\n",
+    "\t\\mathrm{d}t = H_0^{-1}\\frac{\\mathrm{d}a}{a}\\left[ \\Omega_\\Lambda + \\frac{1 - \\Omega_\\Lambda}{a^3} \\right]^{-1/2},\n",
+    "\t\\end{equation}\n",
+    "\twhere $\\Omega_\\Lambda$ is the ratio of the energy density in the cosmological constant to the critical density.\n",
+    "2. We can integrate this equation from $a=0$ (when $t=0$) until today ($a=1$) to get the age of the universe today. Compute the integral for the following cases:\n",
+    "\t- a universe with only matter $\\Omega_\\Lambda = 0$ (analytically).\n",
+    "\t- a universe dominated by dark energy $\\Omega_\\Lambda = 0.7$ (numerically).\n",
+    "\t- For a fixed $H_0$, which universe is older?\n",
+    "\t"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Integral: 0.50000\n",
+      "Estimated Error: 0.00000\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Example on how to define functions and intergrate numerically\n",
+    "\n",
+    "# define a function\n",
+    "f = lambda x: x\n",
+    "\n",
+    "# integrate from 0 to 1\n",
+    "i, e = quad(f, 0, 1)\n",
+    "\n",
+    "# i contains the numerically integrated value\n",
+    "# e contains the estimated error\n",
+    "print(\"Integral: %.5f\" %(i))\n",
+    "print(\"Estimated Error: %.5f\" %(e))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# TODO: calculate the age of the universe numerically\n",
+    "# by following the example above.\n",
+    "# Define the proper function and integrate it numerically"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 2. Angular diameter distance\n",
+    "\n",
+    "Consider a galaxy of physical (visible) size of 5 kpc (1 pc $\\approx$ 3.26 light-years). What angle would the galaxy subtend if situated at redshift 0.1? Redshift 1.0?\n",
+    "\n",
+    "1. Do the calculation analytically in a flat universe, that contains only matter $\\Omega_M = 1.0$.\n",
+    "\n",
+    "2. Use PyCosmo and do the calculation numercally for a universe with the following parameters $\\Omega_M = 0.25$, $\\Omega_\\Lambda=0.7$ and $\\Omega_b=0.05$."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Define the Cosmology\n",
+    "Cosmo = PyCosmo.build()\n",
+    "#TODO: Set the parameters accordingle\n",
+    "Cosmo.set(h=0.7, omega_b=, omega_m=, omega_l_in=\"flat\")\n",
+    "\n",
+    "# Function to calculate the angular diameter distance (returns result in Mpc)\n",
+    "# uses the scaling parameter as input\n",
+    "# dist_ang = Cosmo.background.dist_ang_a(a=...)\n",
+    "\n",
+    "# TODO: calculate the angle of the galaxy"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "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.10.8"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/problem-set-4/.ipynb_checkpoints/Problem_Set_4_hints-checkpoint.ipynb b/problem-set-4/.ipynb_checkpoints/Problem_Set_4_hints-checkpoint.ipynb
new file mode 100644
index 0000000..e290262
--- /dev/null
+++ b/problem-set-4/.ipynb_checkpoints/Problem_Set_4_hints-checkpoint.ipynb
@@ -0,0 +1,116 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "%matplotlib inline\n",
+    "\n",
+    "from scipy.integrate import quad\n",
+    "\n",
+    "import numpy as np\n",
+    "\n",
+    "import PyCosmo"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'2.1.1'"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "PyCosmo.__version__"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 1. Wavenumber at equality\n",
+    "1. Assume that around equality the dominant components are matter and radiation. Use the first Friedmann equation i.e.: \n",
+    "\n",
+    "\t\\begin{equation}\n",
+    "\tH^2 = H_0^2[\\sum_i \\Omega_i a^{-3(1+w)}],\n",
+    "\t\\end{equation}\n",
+    "    \n",
+    "    to calculate $a_{eq}$, $H(a_{eq})$ and therefore $k_{eq}$.\n",
+    "    \n",
+    "    How might you identify $k_{eq}$ in a cosmological observable? Can you make a plot which includes this scale using PyCosmo? Do yout think this has been observed in data?"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 2. Growth factor\n",
+    "\n",
+    "Here compute the growth factor for various cosmologies. The basic command in PyCosmo is shown below"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [
+    {
+     "ename": "SyntaxError",
+     "evalue": "invalid syntax (4003919975.py, line 4)",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;36m  Cell \u001b[0;32mIn[10], line 4\u001b[0;36m\u001b[0m\n\u001b[0;31m    Cosmo.set(h=0.7, omega_b=, omega_m=)\u001b[0m\n\u001b[0m                             ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Define the Cosmology\n",
+    "Cosmo = PyCosmo.build()\n",
+    "#TODO: Set the parameters accordingly\n",
+    "Cosmo.set(h=0.7, omega_b=, omega_m=)\n",
+    "\n",
+    "# Function to calculate the growth factor\n",
+    "# uses the scaling parameter as input\n",
+    "growth_factor = Cosmo.lin_pert.growth_a(a=...)"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "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.10.8"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/problem-set-4/Cosmological_Probes___Problem_Sets___HS2023.pdf b/problem-set-4/Cosmological_Probes___Problem_Sets___HS2023.pdf
new file mode 100644
index 0000000..22012dc
Binary files /dev/null and b/problem-set-4/Cosmological_Probes___Problem_Sets___HS2023.pdf differ
diff --git a/problem-set-4/Problem_Set_4_hints.ipynb b/problem-set-4/Problem_Set_4_hints.ipynb
new file mode 100644
index 0000000..e290262
--- /dev/null
+++ b/problem-set-4/Problem_Set_4_hints.ipynb
@@ -0,0 +1,116 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "%matplotlib inline\n",
+    "\n",
+    "from scipy.integrate import quad\n",
+    "\n",
+    "import numpy as np\n",
+    "\n",
+    "import PyCosmo"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'2.1.1'"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "PyCosmo.__version__"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 1. Wavenumber at equality\n",
+    "1. Assume that around equality the dominant components are matter and radiation. Use the first Friedmann equation i.e.: \n",
+    "\n",
+    "\t\\begin{equation}\n",
+    "\tH^2 = H_0^2[\\sum_i \\Omega_i a^{-3(1+w)}],\n",
+    "\t\\end{equation}\n",
+    "    \n",
+    "    to calculate $a_{eq}$, $H(a_{eq})$ and therefore $k_{eq}$.\n",
+    "    \n",
+    "    How might you identify $k_{eq}$ in a cosmological observable? Can you make a plot which includes this scale using PyCosmo? Do yout think this has been observed in data?"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 2. Growth factor\n",
+    "\n",
+    "Here compute the growth factor for various cosmologies. The basic command in PyCosmo is shown below"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [
+    {
+     "ename": "SyntaxError",
+     "evalue": "invalid syntax (4003919975.py, line 4)",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;36m  Cell \u001b[0;32mIn[10], line 4\u001b[0;36m\u001b[0m\n\u001b[0;31m    Cosmo.set(h=0.7, omega_b=, omega_m=)\u001b[0m\n\u001b[0m                             ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Define the Cosmology\n",
+    "Cosmo = PyCosmo.build()\n",
+    "#TODO: Set the parameters accordingly\n",
+    "Cosmo.set(h=0.7, omega_b=, omega_m=)\n",
+    "\n",
+    "# Function to calculate the growth factor\n",
+    "# uses the scaling parameter as input\n",
+    "growth_factor = Cosmo.lin_pert.growth_a(a=...)"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "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.10.8"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}