Path: blob/main/latex-templates/templates/cosmology/inflation.tex
51 views
unlisted
% Cosmic Inflation Analysis Template1% Topics: Slow-roll inflation, primordial perturbations, power spectra, observational constraints2% Style: Research report with computational cosmology analysis34\documentclass[a4paper, 11pt]{article}5\usepackage[utf8]{inputenc}6\usepackage[T1]{fontenc}7\usepackage{amsmath, amssymb}8\usepackage{graphicx}9\usepackage{siunitx}10\usepackage{booktabs}11\usepackage{subcaption}12\usepackage[makestderr]{pythontex}13\usepackage{geometry}14\geometry{margin=1in}1516% Theorem environments17\newtheorem{definition}{Definition}[section]18\newtheorem{theorem}{Theorem}[section]19\newtheorem{example}{Example}[section]20\newtheorem{remark}{Remark}[section]2122\title{Cosmic Inflation: Slow-Roll Dynamics and Primordial Perturbations}23\author{Cosmology Research Group}24\date{\today}2526\begin{document}27\maketitle2829\begin{abstract}30This report presents a comprehensive computational analysis of inflationary cosmology within31the slow-roll approximation. We examine the dynamics of a scalar field (the inflaton) driving32exponential expansion in the early universe, calculate slow-roll parameters ($\epsilon$, $\eta$)33that govern the duration and ending of inflation, and compute the primordial power spectra for34scalar and tensor perturbations. The analysis includes observational constraints from Planck 201835measurements, focusing on the scalar spectral index $n_s$ and tensor-to-scalar ratio $r$. We36demonstrate how different inflaton potentials predict distinct signatures in the cosmic microwave37background radiation.38\end{abstract}3940\section{Introduction}4142Cosmic inflation, proposed independently by Guth and Linde in the early 1980s, solves several43cosmological puzzles including the horizon problem, the flatness problem, and the magnetic monopole44problem. The inflationary paradigm posits that the universe underwent a brief period of exponential45expansion driven by a scalar field called the \textit{inflaton}, transitioning from quantum46fluctuations to classical density perturbations that seed structure formation.4748The appeal of inflation extends beyond problem-solving: it provides a causal mechanism for49generating the primordial perturbations observed in the cosmic microwave background (CMB). These50perturbations are nearly scale-invariant, Gaussian, and adiabatic—precisely matching observations51from COBE, WMAP, and Planck satellites.5253\begin{definition}[Slow-Roll Inflation]54Inflation occurs when the inflaton field $\phi$ slowly rolls down its potential $V(\phi)$,55satisfying the slow-roll conditions:56\begin{equation}57\epsilon \equiv \frac{M_P^2}{2}\left(\frac{V'}{V}\right)^2 \ll 1, \quad58\eta \equiv M_P^2 \frac{V''}{V} \ll 159\end{equation}60where $M_P = (8\pi G)^{-1/2} = 2.435 \times 10^{18}$ GeV is the reduced Planck mass.61\end{definition}6263\section{Theoretical Framework}6465\subsection{Friedmann Equations and Scalar Field Dynamics}6667The inflationary universe is described by the Friedmann-Lemaître-Robertson-Walker (FLRW) metric68with scale factor $a(t)$. The Hubble parameter $H \equiv \dot{a}/a$ governs the expansion rate,69and the inflaton obeys the Klein-Gordon equation in an expanding background:70\begin{equation}71\ddot{\phi} + 3H\dot{\phi} + V'(\phi) = 072\end{equation}7374During slow-roll, the friction term $3H\dot{\phi}$ dominates over $\ddot{\phi}$, yielding:75\begin{equation}763H\dot{\phi} \approx -V'(\phi), \quad H^2 \approx \frac{V(\phi)}{3M_P^2}77\end{equation}7879\begin{theorem}[e-Folding Number]80The total expansion during inflation is quantified by the number of e-foldings:81\begin{equation}82N = \int_{t_i}^{t_f} H \, dt = \int_{\phi_f}^{\phi_i} \frac{H}{\dot{\phi}} d\phi83\approx \frac{1}{M_P^2} \int_{\phi_f}^{\phi_i} \frac{V}{V'} d\phi84\end{equation}85where $N \approx 50$--$60$ is required to solve the horizon problem.86\end{theorem}8788\subsection{Primordial Power Spectra}8990Quantum fluctuations of the inflaton field during inflation are stretched to cosmological scales,91generating curvature perturbations $\mathcal{R}$ with power spectrum:92\begin{equation}93\mathcal{P}_s(k) = \frac{1}{8\pi^2 M_P^2} \frac{V}{\epsilon} \bigg|_{k=aH}94\end{equation}9596The scalar spectral index measures the scale-dependence:97\begin{equation}98n_s - 1 \equiv \frac{d \ln \mathcal{P}_s}{d \ln k} = -6\epsilon + 2\eta99\end{equation}100101Tensor perturbations (gravitational waves) have power spectrum:102\begin{equation}103\mathcal{P}_t(k) = \frac{2}{\pi^2 M_P^2} V \bigg|_{k=aH}104\end{equation}105106\begin{definition}[Tensor-to-Scalar Ratio]107The ratio of tensor to scalar power:108\begin{equation}109r \equiv \frac{\mathcal{P}_t}{\mathcal{P}_s} = 16\epsilon110\end{equation}111provides a direct probe of the energy scale of inflation.112\end{definition}113114\subsection{Inflaton Potentials}115116We consider three canonical potentials:117118\begin{example}[Quadratic Potential]119The simplest chaotic inflation model:120\begin{equation}121V(\phi) = \frac{1}{2}m^2\phi^2122\end{equation}123predicts $n_s = 1 - 2/N$ and $r = 8/N$.124\end{example}125126\begin{example}[Starobinsky Potential]127Derived from $R^2$ gravity:128\begin{equation}129V(\phi) = \Lambda^4 \left(1 - e^{-\sqrt{2/3}\phi/M_P}\right)^2130\end{equation}131predicts $n_s = 1 - 2/N$ and $r = 12/N^2$.132\end{example}133134\begin{example}[Hilltop Potential]135Small-field inflation near a maximum:136\begin{equation}137V(\phi) = V_0\left(1 - \frac{\phi^p}{\mu^p}\right)138\end{equation}139with $p = 4$ yields $n_s = 1 - (p+2)/(2N)$ and $r = 4p/N$.140\end{example}141142\section{Computational Analysis}143144We now implement numerical solutions to the slow-roll equations and compute observables for145comparison with Planck 2018 constraints: $n_s = 0.9649 \pm 0.0042$ and $r < 0.064$ (95\% CL).146147\begin{pycode}148import numpy as np149import matplotlib.pyplot as plt150from scipy.integrate import odeint, quad151from scipy.optimize import fsolve152153np.random.seed(42)154155# Physical constants156M_P = 1.0 # Reduced Planck mass in natural units (set to 1)157k_pivot = 0.05 # Pivot scale in Mpc^-1158159# Define inflaton potentials160def V_quadratic(phi, m=1e-5):161"""Quadratic potential: V = (1/2) m^2 phi^2"""162return 0.5 * m**2 * phi**2163164def V_starobinsky(phi, Lambda=5e-3):165"""Starobinsky R^2 potential"""166return Lambda**4 * (1 - np.exp(-np.sqrt(2/3) * phi / M_P))**2167168def V_hilltop(phi, V0=1e-10, mu=15.0, p=4):169"""Hilltop potential: V = V0(1 - (phi/mu)^p)"""170return V0 * (1 - (phi / mu)**p)171172def V_prime_quadratic(phi, m=1e-5):173"""Derivative of quadratic potential"""174return m**2 * phi175176def V_prime_starobinsky(phi, Lambda=5e-3):177"""Derivative of Starobinsky potential"""178factor = np.exp(-np.sqrt(2/3) * phi / M_P)179return 2 * Lambda**4 * (1 - factor) * (np.sqrt(2/3) / M_P) * factor180181def V_prime_hilltop(phi, V0=1e-10, mu=15.0, p=4):182"""Derivative of hilltop potential"""183return -V0 * p * phi**(p-1) / mu**p184185def V_doubleprime_quadratic(phi, m=1e-5):186"""Second derivative of quadratic potential"""187return m**2188189def V_doubleprime_starobinsky(phi, Lambda=5e-3):190"""Second derivative of Starobinsky potential"""191factor = np.exp(-np.sqrt(2/3) * phi / M_P)192sqrt_term = np.sqrt(2/3) / M_P193return 2 * Lambda**4 * sqrt_term**2 * factor * (2*factor - 1)194195def V_doubleprime_hilltop(phi, V0=1e-10, mu=15.0, p=4):196"""Second derivative of hilltop potential"""197if abs(phi) < 1e-10:198return 0.0199return -V0 * p * (p-1) * phi**(p-2) / mu**p200201# Slow-roll parameters202def epsilon(phi, V_func, V_prime_func):203"""First slow-roll parameter: epsilon = (M_P^2/2)(V'/V)^2"""204V_val = V_func(phi)205V_prime_val = V_prime_func(phi)206if V_val == 0:207return 0.0208return 0.5 * M_P**2 * (V_prime_val / V_val)**2209210def eta_param(phi, V_func, V_doubleprime_func):211"""Second slow-roll parameter: eta = M_P^2 V''/V"""212V_val = V_func(phi)213V_doubleprime_val = V_doubleprime_func(phi)214if V_val == 0:215return 0.0216return M_P**2 * V_doubleprime_val / V_val217218# Calculate number of e-foldings219def integrand_N(phi, V_func, V_prime_func):220"""Integrand for e-folding calculation: V/(M_P^2 V')"""221V_val = V_func(phi)222V_prime_val = V_prime_func(phi)223if abs(V_prime_val) < 1e-30:224return 0.0225return V_val / (M_P**2 * V_prime_val)226227def calculate_N_efolds(phi_start, phi_end, V_func, V_prime_func):228"""Calculate number of e-foldings from phi_start to phi_end"""229result, _ = quad(integrand_N, phi_end, phi_start, args=(V_func, V_prime_func))230return result231232# Observables233def scalar_spectral_index(eps, et):234"""Scalar spectral index: n_s = 1 - 6*epsilon + 2*eta"""235return 1 - 6*eps + 2*et236237def tensor_to_scalar_ratio(eps):238"""Tensor-to-scalar ratio: r = 16*epsilon"""239return 16 * eps240241def scalar_power_spectrum(phi, V_func, V_prime_func):242"""Scalar power spectrum: P_s = V/(24*pi^2*M_P^4*epsilon)"""243V_val = V_func(phi)244eps = epsilon(phi, V_func, V_prime_func)245if eps == 0:246return 0.0247return V_val / (24 * np.pi**2 * M_P**4 * eps)248249# Analysis for quadratic potential250print("="*60)251print("QUADRATIC POTENTIAL ANALYSIS")252print("="*60)253254m_quad = 1.3e-5 # Mass parameter chosen to match amplitude255phi_values_quad = np.linspace(0.1, 20, 200)256N_target = 60 # Target e-foldings257258# Find initial field value for N=60 e-foldings259def find_phi_initial(phi_end, N_target, V_func, V_prime_func):260"""Find initial phi that gives N e-foldings"""261def equation(phi_i):262return calculate_N_efolds(phi_i, phi_end, V_func, V_prime_func) - N_target263phi_guess = phi_end + np.sqrt(2*N_target) * M_P264phi_init = fsolve(equation, phi_guess)[0]265return phi_init266267phi_end_quad = 0.1 * M_P # Inflation ends when epsilon ~ 1268phi_init_quad = find_phi_initial(phi_end_quad, N_target,269lambda p: V_quadratic(p, m_quad),270lambda p: V_prime_quadratic(p, m_quad))271272# Calculate observables at horizon exit (N=60 before end)273eps_quad = epsilon(phi_init_quad,274lambda p: V_quadratic(p, m_quad),275lambda p: V_prime_quadratic(p, m_quad))276eta_quad = eta_param(phi_init_quad,277lambda p: V_quadratic(p, m_quad),278lambda p: V_doubleprime_quadratic(p, m_quad))279n_s_quad = scalar_spectral_index(eps_quad, eta_quad)280r_quad = tensor_to_scalar_ratio(eps_quad)281282print(f"Initial field value (60 e-folds before end): phi_i = {phi_init_quad:.3f} M_P")283print(f"Slow-roll parameter epsilon: {eps_quad:.6f}")284print(f"Slow-roll parameter eta: {eta_quad:.6f}")285print(f"Scalar spectral index: n_s = {n_s_quad:.4f}")286print(f"Tensor-to-scalar ratio: r = {r_quad:.4f}")287288# Evolution of slow-roll parameters289phi_evolution_quad = np.linspace(phi_init_quad, phi_end_quad, 500)290eps_evolution_quad = [epsilon(p, lambda x: V_quadratic(x, m_quad),291lambda x: V_prime_quadratic(x, m_quad))292for p in phi_evolution_quad]293eta_evolution_quad = [eta_param(p, lambda x: V_quadratic(x, m_quad),294lambda x: V_doubleprime_quadratic(x, m_quad))295for p in phi_evolution_quad]296N_evolution_quad = [calculate_N_efolds(p, phi_end_quad,297lambda x: V_quadratic(x, m_quad),298lambda x: V_prime_quadratic(x, m_quad))299for p in phi_evolution_quad]300301# Starobinsky potential analysis302print("\n" + "="*60)303print("STAROBINSKY POTENTIAL ANALYSIS")304print("="*60)305306Lambda_star = 5.5e-3307phi_end_star = 0.1 * M_P308phi_init_star = find_phi_initial(phi_end_star, N_target,309lambda p: V_starobinsky(p, Lambda_star),310lambda p: V_prime_starobinsky(p, Lambda_star))311312eps_star = epsilon(phi_init_star,313lambda p: V_starobinsky(p, Lambda_star),314lambda p: V_prime_starobinsky(p, Lambda_star))315eta_star = eta_param(phi_init_star,316lambda p: V_starobinsky(p, Lambda_star),317lambda p: V_doubleprime_starobinsky(p, Lambda_star))318n_s_star = scalar_spectral_index(eps_star, eta_star)319r_star = tensor_to_scalar_ratio(eps_star)320321print(f"Initial field value: phi_i = {phi_init_star:.3f} M_P")322print(f"Slow-roll parameter epsilon: {eps_star:.6f}")323print(f"Slow-roll parameter eta: {eta_star:.6f}")324print(f"Scalar spectral index: n_s = {n_s_star:.4f}")325print(f"Tensor-to-scalar ratio: r = {r_star:.6f}")326327phi_evolution_star = np.linspace(phi_init_star, phi_end_star, 500)328eps_evolution_star = [epsilon(p, lambda x: V_starobinsky(x, Lambda_star),329lambda x: V_prime_starobinsky(x, Lambda_star))330for p in phi_evolution_star]331eta_evolution_star = [eta_param(p, lambda x: V_starobinsky(x, Lambda_star),332lambda x: V_doubleprime_starobinsky(x, Lambda_star))333for p in phi_evolution_star]334N_evolution_star = [calculate_N_efolds(p, phi_end_star,335lambda x: V_starobinsky(x, Lambda_star),336lambda x: V_prime_starobinsky(x, Lambda_star))337for p in phi_evolution_star]338339# Hilltop potential analysis340print("\n" + "="*60)341print("HILLTOP POTENTIAL ANALYSIS")342print("="*60)343344V0_hill = 2e-10345mu_hill = 15.0346p_hill = 4347phi_end_hill = 0.5 * M_P348phi_init_hill = find_phi_initial(phi_end_hill, N_target,349lambda p: V_hilltop(p, V0_hill, mu_hill, p_hill),350lambda p: V_prime_hilltop(p, V0_hill, mu_hill, p_hill))351352eps_hill = epsilon(phi_init_hill,353lambda p: V_hilltop(p, V0_hill, mu_hill, p_hill),354lambda p: V_prime_hilltop(p, V0_hill, mu_hill, p_hill))355eta_hill = eta_param(phi_init_hill,356lambda p: V_hilltop(p, V0_hill, mu_hill, p_hill),357lambda p: V_doubleprime_hilltop(p, V0_hill, mu_hill, p_hill))358n_s_hill = scalar_spectral_index(eps_hill, eta_hill)359r_hill = tensor_to_scalar_ratio(eps_hill)360361print(f"Initial field value: phi_i = {phi_init_hill:.3f} M_P")362print(f"Slow-roll parameter epsilon: {eps_hill:.6f}")363print(f"Slow-roll parameter eta: {eta_hill:.6f}")364print(f"Scalar spectral index: n_s = {n_s_hill:.4f}")365print(f"Tensor-to-scalar ratio: r = {r_hill:.4f}")366367phi_evolution_hill = np.linspace(phi_init_hill, phi_end_hill, 500)368eps_evolution_hill = [epsilon(p, lambda x: V_hilltop(x, V0_hill, mu_hill, p_hill),369lambda x: V_prime_hilltop(x, V0_hill, mu_hill, p_hill))370for p in phi_evolution_hill]371eta_evolution_hill = [eta_param(p, lambda x: V_hilltop(x, V0_hill, mu_hill, p_hill),372lambda x: V_doubleprime_hilltop(x, V0_hill, mu_hill, p_hill))373for p in phi_evolution_hill]374N_evolution_hill = [calculate_N_efolds(p, phi_end_hill,375lambda x: V_hilltop(x, V0_hill, mu_hill, p_hill),376lambda x: V_prime_hilltop(x, V0_hill, mu_hill, p_hill))377for p in phi_evolution_hill]378379# Create comprehensive visualization380fig = plt.figure(figsize=(16, 12))381382# Plot 1: Inflaton potentials383ax1 = fig.add_subplot(3, 3, 1)384phi_plot = np.linspace(0.1, 20, 300)385V_quad_plot = [V_quadratic(p, m_quad) / V_quadratic(phi_init_quad, m_quad) for p in phi_plot]386V_star_plot = [V_starobinsky(p, Lambda_star) / V_starobinsky(phi_init_star, Lambda_star)387for p in phi_plot]388V_hill_plot = [V_hilltop(p, V0_hill, mu_hill, p_hill) / V_hilltop(phi_init_hill, V0_hill, mu_hill, p_hill)389for p in phi_plot]390391ax1.plot(phi_plot, V_quad_plot, 'b-', linewidth=2, label='Quadratic')392ax1.plot(phi_plot, V_star_plot, 'r-', linewidth=2, label='Starobinsky')393ax1.plot(phi_plot, V_hill_plot, 'g-', linewidth=2, label='Hilltop')394ax1.axvline(phi_init_quad, color='b', linestyle='--', alpha=0.5)395ax1.axvline(phi_init_star, color='r', linestyle='--', alpha=0.5)396ax1.axvline(phi_init_hill, color='g', linestyle='--', alpha=0.5)397ax1.set_xlabel(r'$\phi/M_P$', fontsize=11)398ax1.set_ylabel(r'$V(\phi)/V(\phi_i)$', fontsize=11)399ax1.set_title('Inflaton Potentials (Normalized)', fontsize=12)400ax1.legend(fontsize=9)401ax1.grid(True, alpha=0.3)402ax1.set_xlim(0, 20)403404# Plot 2: Epsilon evolution405ax2 = fig.add_subplot(3, 3, 2)406ax2.semilogy(N_evolution_quad, eps_evolution_quad, 'b-', linewidth=2, label='Quadratic')407ax2.semilogy(N_evolution_star, eps_evolution_star, 'r-', linewidth=2, label='Starobinsky')408ax2.semilogy(N_evolution_hill, eps_evolution_hill, 'g-', linewidth=2, label='Hilltop')409ax2.axhline(1.0, color='k', linestyle='--', linewidth=1.5, label=r'$\epsilon=1$ (end)')410ax2.axvline(60, color='gray', linestyle=':', alpha=0.7)411ax2.set_xlabel(r'$N$ (e-foldings before end)', fontsize=11)412ax2.set_ylabel(r'$\epsilon$', fontsize=11)413ax2.set_title('First Slow-Roll Parameter', fontsize=12)414ax2.legend(fontsize=9)415ax2.grid(True, alpha=0.3)416ax2.set_xlim(0, 70)417418# Plot 3: Eta evolution419ax3 = fig.add_subplot(3, 3, 3)420ax3.plot(N_evolution_quad, eta_evolution_quad, 'b-', linewidth=2, label='Quadratic')421ax3.plot(N_evolution_star, eta_evolution_star, 'r-', linewidth=2, label='Starobinsky')422ax3.plot(N_evolution_hill, eta_evolution_hill, 'g-', linewidth=2, label='Hilltop')423ax3.axhline(0, color='k', linestyle='-', linewidth=0.5)424ax3.axvline(60, color='gray', linestyle=':', alpha=0.7)425ax3.set_xlabel(r'$N$ (e-foldings before end)', fontsize=11)426ax3.set_ylabel(r'$\eta$', fontsize=11)427ax3.set_title('Second Slow-Roll Parameter', fontsize=12)428ax3.legend(fontsize=9)429ax3.grid(True, alpha=0.3)430ax3.set_xlim(0, 70)431432# Plot 4: n_s vs r predictions433ax4 = fig.add_subplot(3, 3, 4)434435# Planck 2018 constraints (68% and 95% CL regions)436n_s_planck = 0.9649437r_planck_upper = 0.064438n_s_err = 0.0042439440ax4.axvspan(n_s_planck - 2*n_s_err, n_s_planck + 2*n_s_err,441alpha=0.2, color='gray', label='Planck 2018 (95% CL)')442ax4.axvspan(n_s_planck - n_s_err, n_s_planck + n_s_err,443alpha=0.3, color='gray', label='Planck 2018 (68% CL)')444ax4.axhline(r_planck_upper, color='gray', linestyle='--', linewidth=1.5,445label=r'Planck/BICEP $r<0.064$')446447# Model predictions448ax4.scatter(n_s_quad, r_quad, s=150, c='blue', marker='o',449edgecolor='black', linewidth=2, label='Quadratic', zorder=5)450ax4.scatter(n_s_star, r_star, s=150, c='red', marker='s',451edgecolor='black', linewidth=2, label='Starobinsky', zorder=5)452ax4.scatter(n_s_hill, r_hill, s=150, c='green', marker='^',453edgecolor='black', linewidth=2, label='Hilltop', zorder=5)454455ax4.set_xlabel(r'$n_s$ (scalar spectral index)', fontsize=11)456ax4.set_ylabel(r'$r$ (tensor-to-scalar ratio)', fontsize=11)457ax4.set_title(r'Observable Space: $n_s$-$r$ Plane', fontsize=12)458ax4.legend(fontsize=8, loc='upper right')459ax4.grid(True, alpha=0.3)460ax4.set_xlim(0.94, 0.98)461ax4.set_ylim(0, 0.15)462463# Plot 5: Field evolution vs e-foldings464ax5 = fig.add_subplot(3, 3, 5)465ax5.plot(N_evolution_quad, phi_evolution_quad, 'b-', linewidth=2, label='Quadratic')466ax5.plot(N_evolution_star, phi_evolution_star, 'r-', linewidth=2, label='Starobinsky')467ax5.plot(N_evolution_hill, phi_evolution_hill, 'g-', linewidth=2, label='Hilltop')468ax5.axvline(60, color='gray', linestyle=':', alpha=0.7, label='Horizon exit')469ax5.set_xlabel(r'$N$ (e-foldings before end)', fontsize=11)470ax5.set_ylabel(r'$\phi/M_P$', fontsize=11)471ax5.set_title('Inflaton Field Evolution', fontsize=12)472ax5.legend(fontsize=9)473ax5.grid(True, alpha=0.3)474ax5.set_xlim(0, 70)475476# Plot 6: Hubble parameter evolution477ax6 = fig.add_subplot(3, 3, 6)478H_evolution_quad = [np.sqrt(V_quadratic(p, m_quad) / (3 * M_P**2))479for p in phi_evolution_quad]480H_evolution_star = [np.sqrt(V_starobinsky(p, Lambda_star) / (3 * M_P**2))481for p in phi_evolution_star]482H_evolution_hill = [np.sqrt(V_hilltop(p, V0_hill, mu_hill, p_hill) / (3 * M_P**2))483for p in phi_evolution_hill]484485ax6.semilogy(N_evolution_quad, H_evolution_quad, 'b-', linewidth=2, label='Quadratic')486ax6.semilogy(N_evolution_star, H_evolution_star, 'r-', linewidth=2, label='Starobinsky')487ax6.semilogy(N_evolution_hill, H_evolution_hill, 'g-', linewidth=2, label='Hilltop')488ax6.axvline(60, color='gray', linestyle=':', alpha=0.7)489ax6.set_xlabel(r'$N$ (e-foldings before end)', fontsize=11)490ax6.set_ylabel(r'$H/M_P$', fontsize=11)491ax6.set_title('Hubble Parameter Evolution', fontsize=12)492ax6.legend(fontsize=9)493ax6.grid(True, alpha=0.3)494ax6.set_xlim(0, 70)495496# Plot 7: Scalar spectral index vs N497ax7 = fig.add_subplot(3, 3, 7)498N_range = np.linspace(40, 70, 100)499n_s_quad_N = 1 - 2/N_range500n_s_star_N = 1 - 2/N_range501r_quad_N = 8/N_range502r_star_N = 12/N_range**2503504ax7.plot(N_range, n_s_quad_N, 'b-', linewidth=2, label='Quadratic')505ax7.plot(N_range, n_s_star_N, 'r-', linewidth=2, label='Starobinsky')506ax7.axhline(n_s_planck, color='gray', linestyle='--', alpha=0.7)507ax7.axhspan(n_s_planck - n_s_err, n_s_planck + n_s_err,508alpha=0.2, color='gray')509ax7.axvline(60, color='gray', linestyle=':', alpha=0.7)510ax7.set_xlabel(r'$N$ (e-foldings)', fontsize=11)511ax7.set_ylabel(r'$n_s$', fontsize=11)512ax7.set_title(r'$n_s$ Dependence on e-folding Number', fontsize=12)513ax7.legend(fontsize=9)514ax7.grid(True, alpha=0.3)515516# Plot 8: Tensor-to-scalar ratio vs N517ax8 = fig.add_subplot(3, 3, 8)518ax8.semilogy(N_range, r_quad_N, 'b-', linewidth=2, label='Quadratic')519ax8.semilogy(N_range, r_star_N, 'r-', linewidth=2, label='Starobinsky')520ax8.axhline(r_planck_upper, color='gray', linestyle='--', linewidth=1.5,521label=r'Planck limit')522ax8.axvline(60, color='gray', linestyle=':', alpha=0.7)523ax8.set_xlabel(r'$N$ (e-foldings)', fontsize=11)524ax8.set_ylabel(r'$r$', fontsize=11)525ax8.set_title(r'$r$ Dependence on e-folding Number', fontsize=12)526ax8.legend(fontsize=9)527ax8.grid(True, alpha=0.3)528529# Plot 9: Phase space (epsilon-eta plane)530ax9 = fig.add_subplot(3, 3, 9)531ax9.scatter(eps_quad, eta_quad, s=150, c='blue', marker='o',532edgecolor='black', linewidth=2, label='Quadratic', zorder=5)533ax9.scatter(eps_star, eta_star, s=150, c='red', marker='s',534edgecolor='black', linewidth=2, label='Starobinsky', zorder=5)535ax9.scatter(eps_hill, eta_hill, s=150, c='green', marker='^',536edgecolor='black', linewidth=2, label='Hilltop', zorder=5)537538# Slow-roll validity region539eps_limit = np.linspace(0, 0.2, 100)540ax9.axhline(1.0, color='gray', linestyle='--', alpha=0.5)541ax9.axvline(1.0, color='gray', linestyle='--', alpha=0.5)542ax9.fill_between(eps_limit, -1, 1, alpha=0.1, color='green',543label='Slow-roll valid')544545ax9.set_xlabel(r'$\epsilon$', fontsize=11)546ax9.set_ylabel(r'$\eta$', fontsize=11)547ax9.set_title(r'Phase Space: $\epsilon$-$\eta$ Plane', fontsize=12)548ax9.legend(fontsize=9)549ax9.grid(True, alpha=0.3)550ax9.set_xlim(-0.01, 0.2)551ax9.set_ylim(-0.05, 0.05)552553plt.tight_layout()554plt.savefig('inflation_analysis.pdf', dpi=150, bbox_inches='tight')555plt.close()556557print("\n" + "="*60)558print("Figure saved: inflation_analysis.pdf")559print("="*60)560\end{pycode}561562\begin{figure}[htbp]563\centering564\includegraphics[width=\textwidth]{inflation_analysis.pdf}565\caption{Comprehensive inflationary cosmology analysis showing (a) normalized inflaton potentials566for quadratic, Starobinsky, and hilltop models with initial field values marked; (b) evolution of567the first slow-roll parameter $\epsilon$ versus e-folding number, demonstrating that inflation568ends when $\epsilon \approx 1$; (c) evolution of the second slow-roll parameter $\eta$ which569remains small throughout inflation; (d) predictions in observable $n_s$-$r$ space compared to570Planck 2018 constraints, showing Starobinsky model in excellent agreement while quadratic model571is marginally disfavored; (e) inflaton field evolution showing different field excursions for572each potential; (f) Hubble parameter evolution demonstrating approximate constancy during573slow-roll; (g-h) sensitivity of $n_s$ and $r$ to the number of e-foldings; (i) phase space574diagram in the $\epsilon$-$\eta$ plane showing all models satisfy slow-roll conditions575($\epsilon, |\eta| \ll 1$) at horizon exit ($N=60$).}576\label{fig:inflation}577\end{figure}578579\section{Results}580581\subsection{Slow-Roll Parameter Analysis}582583The computational analysis demonstrates distinct behaviors for each inflaton potential during584the slow-roll phase. For the quadratic potential $V(\phi) = \frac{1}{2}m^2\phi^2$ with mass585parameter $m = \py{f"{m_quad:.2e}"}$ in Planck units, the inflaton begins at field value586$\phi_i = \py{f"{phi_init_quad:.2f}"}$ $M_P$ to achieve 60 e-foldings. The slow-roll parameters587at horizon exit are $\epsilon = \py{f"{eps_quad:.6f}"}$ and $\eta = \py{f"{eta_quad:.6f}"}$,588both satisfying the slow-roll conditions $\epsilon, |\eta| \ll 1$.589590The Starobinsky potential, derived from $f(R) = R + R^2/(6M^2)$ gravity, predicts significantly591different dynamics. With $\Lambda = \py{f"{Lambda_star:.3e}"}$, the initial field value is592$\phi_i = \py{f"{phi_init_star:.2f}"}$ $M_P$ (sub-Planckian), yielding $\epsilon = \py{f"{eps_star:.6f}"}$593and $\eta = \py{f"{eta_star:.6f}"}$. The smaller value of $\epsilon$ results in a much lower594tensor-to-scalar ratio.595596\begin{pycode}597print(r"\begin{table}[htbp]")598print(r"\centering")599print(r"\caption{Slow-Roll Parameters and Observables at Horizon Exit ($N=60$)}")600print(r"\begin{tabular}{lccccc}")601print(r"\toprule")602print(r"Model & $\phi_i/M_P$ & $\epsilon$ & $\eta$ & $n_s$ & $r$ \\")603print(r"\midrule")604print(f"Quadratic & {phi_init_quad:.2f} & {eps_quad:.5f} & {eta_quad:.5f} & "605f"{n_s_quad:.4f} & {r_quad:.4f} \\\\")606print(f"Starobinsky & {phi_init_star:.2f} & {eps_star:.5f} & {eta_star:.5f} & "607f"{n_s_star:.4f} & {r_star:.5f} \\\\")608print(f"Hilltop ($p=4$) & {phi_init_hill:.2f} & {eps_hill:.5f} & {eta_hill:.5f} & "609f"{n_s_hill:.4f} & {r_hill:.4f} \\\\")610print(r"\midrule")611print(f"Planck 2018 & --- & --- & --- & $0.9649 \\pm 0.0042$ & $< 0.064$ \\\\")612print(r"\bottomrule")613print(r"\end{tabular}")614print(r"\label{tab:observables}")615print(r"\end{table}")616\end{pycode}617618\subsection{Observational Compatibility}619620Comparing model predictions with Planck 2018 measurements reveals striking differences in621observational viability. The scalar spectral index for all three models falls within the622range $n_s \in [0.96, 0.97]$, consistent with the measured value $n_s = 0.9649 \pm 0.0042$.623However, the tensor-to-scalar ratio provides strong discrimination.624625The quadratic potential predicts $r = \py{f"{r_quad:.4f}"}$, approaching the current upper626limit from Planck combined with BICEP/Keck data ($r < 0.064$ at 95\% CL). Future observations627from LiteBIRD and CMB-S4 experiments, targeting sensitivity $\Delta r \sim 0.001$, will628definitively test this model.629630In contrast, the Starobinsky model predicts $r = \py{f"{r_star:.6f}"}$, well below current631sensitivity but potentially detectable with next-generation gravitational wave observatories.632This model remains highly favored by current data due to its excellent agreement with both633$n_s$ and the non-detection of primordial tensor modes.634635\begin{remark}[Lyth Bound]636The tensor-to-scalar ratio directly constrains the field excursion during inflation via the637Lyth bound: $\Delta\phi/M_P \gtrsim (\frac{r}{0.01})^{1/2}$. The quadratic model requires638super-Planckian field values ($\Delta\phi \sim 10 M_P$), raising concerns about quantum639gravity corrections, while Starobinsky inflation operates entirely in the sub-Planckian regime.640\end{remark}641642\subsection{Number of e-Foldings Sensitivity}643644The observable parameters exhibit systematic dependence on the total number of e-foldings.645For the quadratic potential, the analytic predictions $n_s = 1 - 2/N$ and $r = 8/N$ show that646a 10\% uncertainty in $N$ (from $N=50$ to $N=70$, depending on reheating history) translates647to approximately 3\% uncertainty in $n_s$ and 28\% uncertainty in $r$. This $N$-dependence648must be marginalized when comparing models to data.649650The Starobinsky model shows similar $n_s$ dependence but weaker $r$ dependence ($r = 12/N^2$),651making tensor mode predictions more robust to uncertainties in the reheating epoch. At $N=60$,652both models achieve scalar spectral indices compatible with observations, but the Starobinsky653model's prediction $n_s = \py{f"{n_s_star:.4f}"}$ provides slightly better agreement with the654central Planck value.655656\section{Discussion}657658\begin{theorem}[Slow-Roll Consistency Relations]659The slow-roll approximation enforces consistency relations among observables:660\begin{equation}661r = -8n_t, \quad n_t = \frac{d \ln \mathcal{P}_t}{d \ln k} = -2\epsilon662\end{equation}663where $n_t$ is the tensor spectral index. A detection of both $r$ and $n_t$ would provide664a crucial consistency check of single-field slow-roll inflation.665\end{theorem}666667\begin{example}[Detecting Deviations from Slow-Roll]668Non-Gaussianity provides an additional observable. The local-type non-Gaussianity parameter669$f_{NL}^{local}$ is predicted to be $\mathcal{O}(0.01)$ in single-field slow-roll models,670far below current limits $f_{NL}^{local} = -0.9 \pm 5.1$. A detection of $f_{NL}^{local} \gg 1$671would rule out single-field slow-roll and favor multi-field or non-attractor scenarios.672\end{example}673674\subsection{Limitations and Extensions}675676This analysis assumes single-field slow-roll inflation with canonical kinetic term. Extensions677include:678\begin{itemize}679\item \textbf{Non-canonical kinetics}: DBI inflation with $\mathcal{L} \propto \sqrt{1 - \dot{\phi}^2}$680\item \textbf{Multi-field dynamics}: Curved field space with isocurvature perturbations681\item \textbf{Non-attractor inflation}: Ultra-slow-roll violating $\eta \ll 1$ temporarily682\item \textbf{Warm inflation}: Radiation production during inflation, modifying friction term683\end{itemize}684685\section{Conclusions}686687This computational analysis of inflationary cosmology demonstrates the power of slow-roll688dynamics to connect early universe physics with precision CMB observations. The key findings are:689690\begin{enumerate}691\item The Starobinsky $R^2$ model achieves optimal agreement with Planck 2018 data, predicting692$n_s = \py{f"{n_s_star:.4f}"}$ and $r = \py{f"{r_star:.5f}"}$, well within observational constraints.693694\item The quadratic potential $V \propto \phi^2$ predicts $n_s = \py{f"{n_s_quad:.4f}"}$ and695$r = \py{f"{r_quad:.4f}"}$, making it testable with upcoming CMB polarization experiments696targeting $\Delta r \sim 0.001$ sensitivity.697698\item All models satisfy slow-roll conditions at horizon exit ($N=60$ before inflation ends),699with $\epsilon \sim 10^{-2}$ to $10^{-3}$ and $|\eta| \sim 10^{-2}$, validating the700approximation used for observable predictions.701702\item The tensor-to-scalar ratio $r = 16\epsilon$ provides the most discriminating observable,703spanning two orders of magnitude across models and directly probing the inflationary energy scale704$V^{1/4} \sim (rM_P^4)^{1/4}$.705706\item Future measurements of primordial gravitational waves will distinguish between large-field707models (quadratic, natural inflation) and small-field models (Starobinsky, hilltop), settling708fundamental questions about quantum gravity and trans-Planckian physics.709\end{enumerate}710711The slow-roll framework remains the standard paradigm for inflationary model-building, providing712a unified description of expansion dynamics, perturbation generation, and observational713predictions. Upcoming experiments will either confirm simple single-field models or reveal714new physics through detected deviations from slow-roll consistency relations.715716\section*{References}717718\begin{enumerate}719\item Guth, A. H. (1981). ``Inflationary universe: A possible solution to the horizon and720flatness problems,'' \textit{Physical Review D}, 23(2), 347.721722\item Linde, A. D. (1982). ``A new inflationary universe scenario: A possible solution of723the horizon, flatness, homogeneity, isotropy and primordial monopole problems,''724\textit{Physics Letters B}, 108(6), 389--393.725726\item Starobinsky, A. A. (1980). ``A new type of isotropic cosmological models without727singularity,'' \textit{Physics Letters B}, 91(1), 99--102.728729\item Mukhanov, V. F., \& Chibisov, G. V. (1981). ``Quantum fluctuations and a nonsingular730universe,'' \textit{JETP Letters}, 33, 532--535.731732\item Planck Collaboration (2020). ``Planck 2018 results. X. Constraints on inflation,''733\textit{Astronomy \& Astrophysics}, 641, A10.734735\item Ade, P. A. R., et al. (BICEP/Keck Collaboration) (2021). ``Improved constraints on736primordial gravitational waves using Planck, WMAP, and BICEP/Keck observations through737the 2018 observing season,'' \textit{Physical Review Letters}, 127(15), 151301.738739\item Lyth, D. H. (1997). ``What would we learn by detecting a gravitational wave signal740in the cosmic microwave background anisotropy?'' \textit{Physical Review Letters}, 78(10), 1861.741742\item Baumann, D. (2009). ``TASI lectures on inflation,'' arXiv:0907.5424 [hep-th].743744\item Linde, A. D. (1990). \textit{Particle Physics and Inflationary Cosmology},745Harwood Academic Publishers.746747\item Dodelson, S., \& Schmidt, F. (2020). \textit{Modern Cosmology}, 2nd ed.,748Academic Press.749750\item Weinberg, S. (2008). \textit{Cosmology}, Oxford University Press.751752\item Liddle, A. R., \& Lyth, D. H. (2000). \textit{Cosmological Inflation and Large-Scale753Structure}, Cambridge University Press.754755\item Mukhanov, V. (2005). \textit{Physical Foundations of Cosmology}, Cambridge University Press.756757\item Martin, J., Ringeval, C., \& Vennin, V. (2014). ``Encyclopædia inflationaris,''758\textit{Physics of the Dark Universe}, 5, 75--235.759760\item Bezrukov, F., \& Shaposhnikov, M. (2008). ``The Standard Model Higgs boson as the761inflaton,'' \textit{Physics Letters B}, 659(3), 703--706.762763\item Garcia-Bellido, J., Figueroa, D. G., \& Rubio, J. (2009). ``Preheating in the764Standard Model with the Higgs-inflaton coupled to gravity,'' \textit{Physical Review D},76579(6), 063531.766767\item Kinney, W. H. (2009). ``Horizon crossing and inflation with large $\eta$,''768\textit{Physical Review D}, 72(2), 023515.769770\item Chen, X. (2010). ``Primordial non-Gaussianities from inflation models,''771\textit{Advances in Astronomy}, 2010, 638979.772773\item Ade, P. A. R., et al. (LiteBIRD Collaboration) (2020). ``Probing cosmic inflation774with the LiteBIRD cosmic microwave background polarization survey,''775\textit{Progress of Theoretical and Experimental Physics}, 2023(4), 042F01.776777\item Abazajian, K., et al. (CMB-S4 Collaboration) (2016). ``CMB-S4 science book,778first edition,'' arXiv:1610.02743 [astro-ph.CO].779\end{enumerate}780781\end{document}782783784