{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "5849bced-137a-490e-909b-c700f1b87b2b",
   "metadata": {},
   "source": [
    "## Homework9"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "64011ac1-d69e-41e2-b3f4-c74431a0bbd4",
   "metadata": {},
   "source": [
    "银河系消光为$Rv=3.1$，且$E(B-V)=0.2 \\pm 0.05$  \n",
    "根据$R_v=\\frac{A_v}{E(B-V)}$  \n",
    "可以算得$A_v=0.62 \\pm 0.155$  \n",
    "  \n",
    "视星等为25等  \n",
    "$m_o-m_i=A_v$  \n",
    "$m_i=m_o-A_v=25-(0.62 \\pm 0.155)=24.38\\pm 0.155$  \n",
    "  \n",
    "计算距离  \n",
    "$m_i-M=5(lg d -1)$  \n",
    "$d=10^{(m_i-M)/5+1}$  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "bed74fe8-f38a-4538-b423-180344c678a8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2992264.636608189 pc\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "def compute(a):\n",
    "    d = 10**((a+3)/5+1)\n",
    "    return d\n",
    "d = compute(24.38)\n",
    "print(d,'pc')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b983a002",
   "metadata": {},
   "source": [
    "测量误差为0.1个星等，不确定性为0.05个星等  \n",
    "$\\sigma_d=d\\cdot \\ln(10)\\cdot \\sigma_m /5$ "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "c6b69dcf-4a14-4406-b1ae-afb7c72808ba",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Uncertain 254181.9758466611 pc\n"
     ]
    }
   ],
   "source": [
    "sigma_m = np.sqrt(0.1**2+(3.1*0.05)**2)\n",
    "sigma_d = d*np.log(10)*sigma_m/5\n",
    "print('Uncertain',sigma_d,'pc')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d5046cd2-f443-4867-b7fb-0638b1c1c474",
   "metadata": {},
   "source": [
    "## Homework10"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "954a6360-768e-44b2-ba02-1161d2656972",
   "metadata": {},
   "source": [
    "Ha波长在6562.8Å  \n",
    "$\\frac{6562.8}{7000}=\\frac{1}{1+z}$  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a94a0b6e-9bd3-4de1-becd-d264bd168404",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "redshift: 0.06661790699091852\n"
     ]
    }
   ],
   "source": [
    "z = 7000/6562.8-1\n",
    "print('redshift:',z)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "adc2f746-98a6-4485-bce6-f0fd6a71dcd5",
   "metadata": {},
   "source": [
    "$d=cz/H_0$(其取  h = 0.7 ，则  H_0 = 70 km/s/Mpc)  \n",
    "计算出d以后用公式\n",
    "$m-M=5(lg d -1)$  \n",
    "算出绝对星等  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "e57ab069",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "285.50531567536507 Mpd\n"
     ]
    }
   ],
   "source": [
    "d = 3*10**5*z/70\n",
    "print(d,'Mpd')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "67241691",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "12.721929007195964 mag\n"
     ]
    }
   ],
   "source": [
    "print(20-5*(np.log10(d)-1),'mag')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e729b1df-7e50-4206-809d-91bd65027097",
   "metadata": {},
   "source": [
    "## Homework11"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "74bd75db-0e47-46ec-8b2e-8edc3fde0440",
   "metadata": {},
   "source": [
    "\n",
    "$\\frac{1/2}{1/3}=1.5$  "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "20d7500e-9b67-4f26-b331-26fa24c350ee",
   "metadata": {},
   "source": [
    "根据哈勃定律，宇宙空间在均匀地膨胀。宇宙并非静态的，时间往前回溯，早期宇宙比现在更小。如果时间回到宇宙诞生之初，宇宙空间缩小为一个奇点，这就是宇宙的开端。\n",
    "\n",
    "假设宇宙空间膨胀的速率自宇宙诞生以来没有发生过变化，那么，星系的退行距离除以退行速度，得到的是星系的退行时间。因此，哈勃常数的倒数，也就是哈勃时间，代表的正是宇宙膨胀时间尺度，可以近似认为这是宇宙的年龄：\n",
    "\n",
    "tH=1/H0  \n",
    "$1 pc = 3.0857\\cdot 10^{16} m = 3.0857\\cdot 10^{13} km$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4a06f3ab-a286-4a19-9978-1f6fbd9fafd9",
   "metadata": {},
   "source": [
    "哈勃常数为73.4(km/s)/Mpc  （from 百度百科：https://baike.baidu.com/reference/826739/6f33_nh9r1QJAXlFfT26peXhfmcWbh2ar87OBmbkIdt-QJ84tyVi31Ej6M6s5jmFe0nn17NHhn3rIYISpRRR2LIzG0x2MhqMw_30Ueo_MLzQ2MFHNcQ5BZpdBpJZDCdsKGuurroG45rv4kYxjfGnCks_）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "5eb0450a-19a9-425e-8982-489da9cbe845",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "13321516698.603422 year\n"
     ]
    }
   ],
   "source": [
    "time = 1/73.4*3.0857*1e13*1e6/(365.25*24*60*60)\n",
    "print(time,'year')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "93badcce",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "133.21516698603423 亿年\n"
     ]
    }
   ],
   "source": [
    "print(time/1e8,'亿年')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2406dd46",
   "metadata": {},
   "source": [
    "# Homework12"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fbf6de5a",
   "metadata": {},
   "source": [
    "## Q1\n",
    "一团1000个太阳质量的中性气体云（全部为H原子）, 温度为30K，当云的密度大于多少时，气体云将发生塌缩？塌缩（自由下落）时标为多少？  \n",
    "云塌缩：势能 > 热能"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "02efe6ca",
   "metadata": {},
   "source": [
    "当作用收缩的运动势能高于向外扩散的热能时开始坍缩，求的就是临界状态。  \n",
    "$\\rho = \\frac{3K\\times T}{2\\pi \\times G\\times m_p\\times r^2}$  \n",
    "并且其中质量的计算方程为：  \n",
    "$M = \\rho \\times V = \\rho \\times \\frac{4}{3}\\pi \\times r^3$ "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "1470aedc",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "k = 1.38e-23   #j/k\n",
    "T = 30   #K\n",
    "G = 6.67e-11   #m3/kg/s2\n",
    "Msun = 1.99e30   # kg\n",
    "M = 1000*Msun\n",
    "m = 1.67e-27   #kg"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "9917dff5",
   "metadata": {},
   "outputs": [],
   "source": [
    "xishu = M*3/4/np.pi"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "a343d827",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "临界半径： 2.6771027777777782e+17 m\n"
     ]
    }
   ],
   "source": [
    "r = xishu*2*(np.pi*G*m/3/k/T)\n",
    "print('临界半径：',r,'m')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "4308c831",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "rho:2.4761065730838516e-20 kg/m3\n"
     ]
    }
   ],
   "source": [
    "rho = 3*k*T/(2*np.pi*G*m*r**2)\n",
    "print(\"rho:\"+str(rho)+' kg/m3')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7125cb48",
   "metadata": {},
   "source": [
    "$t_{\\text{ff}} = \\sqrt{\\frac{3 \\pi}{32 G \\rho}}$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "ecd2f5c1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "13381630.198711373 year\n"
     ]
    }
   ],
   "source": [
    "t = np.sqrt(3*np.pi/32/G/rho)\n",
    "print(t/(365.25*24*60*60),'year')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "49744603",
   "metadata": {},
   "source": [
    "## Q2\n",
    "这团气体中能形成的最大质量的恒星的质量是多少？  \n",
    "假设分子云中的恒星形成遵循Salpter初始质量函数（最小质量的恒星为0.08太阳质量)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dfc1debf",
   "metadata": {},
   "source": [
    "我觉得，这个应该是初始星系生成数量*质量的积分=1000太阳质量  \n",
    "$\\int_{0.08}^{0.5} m^{-1.3}\\times m dm+\\int_{0.5}^m m^{-2.3}\\times m dm = 1000$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "id": "f0a14d35",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(0.6355713234494272, 5.930029271308652e-10)\n"
     ]
    }
   ],
   "source": [
    "from scipy.integrate import quad\n",
    "def myfunction(x, n):\n",
    "    return x**(-n)\n",
    "\n",
    "m1 = quad(func=myfunction, a=0.08, b=0.5, args=(0.3,))\n",
    "print(m1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "058e3489",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "999.3644286765506\n"
     ]
    }
   ],
   "source": [
    "m2 = 1000 - m1[0]\n",
    "print(m2)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0c2e6cf1",
   "metadata": {},
   "source": [
    "没解出来。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "90d98230",
   "metadata": {},
   "source": [
    "## Q3\n",
    "太阳中的氢大概有10%在主序阶段被燃烧，请估算太阳处于主序阶段的时间？太阳表面的温度大概是\\~5500K，请由此估算地球表面的温度。\n",
    "地球的反射率~0.3"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "115796a3",
   "metadata": {},
   "source": [
    "太阳的总质量其中约 75% 是氢。我们可以根据这些数据估算太阳主序阶段的时间。\n",
    "\n",
    "核聚变过程中，氢转换为氦时，会释放能量。每次氢到氦的转化大约会使 0.7% 的质量转化为能量。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "id": "3b31176c",
   "metadata": {},
   "outputs": [],
   "source": [
    "M_xiaohao = Msun*0.1 #kg\n",
    "c = 3e8 #m/s\n",
    "Rsun = 6.955e8 #m\n",
    "sigma = 5.67e-8 #斯特藩-玻尔兹曼常数，值为  5.67 10^{-8} \\ \\text{W} \\cdot \\text{m}^{-2} \\cdot \\text{K}^{-4} \n",
    "Tsun = 5500\n",
    "\n",
    "E = M_xiaohao*c*c*0.75*0.007"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "93ea855a",
   "metadata": {},
   "source": [
    "$L= 4\\pi R^2 \\sigma T^4$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "id": "bdc77ff9",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "单位面积的能力发散：51884043.75 erg/s/m2\n",
      "3.15382760047482e+26\n"
     ]
    }
   ],
   "source": [
    "neng = sigma*Tsun**4\n",
    "print('单位面积的能力发散：'+str(neng)+\" erg/s/m2\")\n",
    "E_fasan = neng*4*np.pi*Rsun**2\n",
    "print(E_fasan)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "id": "fe3919f7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "主序时间：9447414552.669352years\n",
      "94.47414552669352亿年\n"
     ]
    }
   ],
   "source": [
    "time = E/E_fasan\n",
    "print('主序时间：'+str(time/(365.25*24*3600))+'years'+'\\n'+str(time/(365.25*24*3600)/1e8)+'亿年')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dba1c575",
   "metadata": {},
   "source": [
    "$L= 4\\pi R^2 \\sigma T^4$  \n",
    "$L= 4\\pi R_{AU}^2 \\sigma L_{Earth}$  \n",
    "$L_{Earth}\\cdot (1-0.3)= 4\\pi R_{Earth}^2 \\sigma T_{Earth}^4$  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "id": "f343dbae",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "温度：242.5520625776084K\n"
     ]
    }
   ],
   "source": [
    "d = 14960*10000*1000\n",
    "neng1 = E_fasan/(4*4*np.pi*d**2*sigma)\n",
    "T = (0.7*neng1)**0.25\n",
    "print('温度：'+str(T)+\"K\")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "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.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
