From 77fd1312ef505fb6d4433fc8ccd0f219aae8f6c9 Mon Sep 17 00:00:00 2001 From: Caleb Burke Date: Mon, 1 Jun 2026 23:51:56 -0700 Subject: [PATCH] done reading chapter 3 --- .../README.md | 3 +- .../ch3/example-problems.ipynb | 150 +++++++++++++++++- .../ch3/notes.ipynb | 110 ++++++++++++- 3 files changed, 260 insertions(+), 3 deletions(-) diff --git a/study/001_introduction-to-probability-statistics-and-random-processes/README.md b/study/001_introduction-to-probability-statistics-and-random-processes/README.md index 6ee61d5..d9878de 100644 --- a/study/001_introduction-to-probability-statistics-and-random-processes/README.md +++ b/study/001_introduction-to-probability-statistics-and-random-processes/README.md @@ -4,11 +4,12 @@ total pages=1007 -**Currently reading:** chapter 3, page 190 +**Currently reading:** chapter 3, page 222 TODO: - ch1 end of chapter problems - ch2 end of chapter problems - 3.1.6 problems +- 3.2.5 problems - ch3 end of chapter problems diff --git a/study/001_introduction-to-probability-statistics-and-random-processes/ch3/example-problems.ipynb b/study/001_introduction-to-probability-statistics-and-random-processes/ch3/example-problems.ipynb index 9c74bd9..68662aa 100644 --- a/study/001_introduction-to-probability-statistics-and-random-processes/ch3/example-problems.ipynb +++ b/study/001_introduction-to-probability-statistics-and-random-processes/ch3/example-problems.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "id": "206bf674", "metadata": {}, "outputs": [], @@ -154,6 +154,154 @@ "0 & \\text{otherwise} \n", "\\end{cases}$$" ] + }, + { + "cell_type": "markdown", + "id": "2e7c2c34", + "metadata": {}, + "source": [ + "## Example 3.10\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "eaf6e80f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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rFkzxcXFqU+fPrr11lvVv39/jxULAABwpatXeKuoqNBLL72kP/3pT8rPz5fdble3bt101113yW63y+12q6ioSEePHtVf//pXrV27Vu3atdOECRP005/+VCEhId7qAwAA4IpQr/D2wx/+UBUVFRoxYoSGDRumbt261Tp/3759yszM1PPPP6/Vq1frzTffbFSxAAAAV7p6hbfU1FTdc889dXp1gyR1795d3bt318MPP6xXXnmlQQUCAADgW/UKb8nJyQ06SGhoaIO3BQAAwLcadbdpenq6p+oAAABAHTQqvK1bt05paWlVd5peTH5+fmMOAQAAgAs0KrwtX75cH3zwgcaOHasTJ05U+15+fr4ef/xx3X777Y0qEAAAAN9qVHgbNGiQXnzxRRUXF2vUqFHKzs6uFtq2bt2qUaNGeapWAACAK16jX48VFxenjRs3KjU1VWPHjlVlZaWCg4N17733atKkSbrqqqs8UScAAADkgfD21VdfacWKFcrOzlZ5eblsNptmzZqlsWPHeqI+AAAAXKBR4e03v/mN/vrXv8pms2nMmDGaMGGCli1bpnnz5unMmTOaMmWKp+oEAACAGhnetm3bpjFjxmjKlCmKjo6WJM2dO1fXXHONnnnmGR0+fFhPPfUUr8UCAADwkEaFtx07dlSFtgtNmjRJMTEx+uUvf6kjR45o3bp1jTkMAAAA/qNRd5teLLidd+utt2rt2rX64osvGnMIAAAAXKBR4e1yunfvrk2bNnnzEAAAAFeUeoW3O+64Q1u2bFF5eXmdt2nZsqU2b96sO+64o97FAQAAoLp6XfN29913a8GCBfrtb3+rpKQkDRw4UN26dVOHDh0UFhYmSSopKdHRo0e1b98+ZWVl6a233lJISIgmTpzolQYAAACuJPUKb5MnT9a9996rTZs26S9/+Yu2bt0qm80mSQoODpYkOZ1OSZLb7dZ1112nhx56SKNGjVLz5s09XDoAAMCVp953mzZv3lzjx4/X+PHjdfToUX388cfKzc3V6dOnJUlRUVGKjY1V79691bFjR0/XCwAAcEVr1KNCOnTooA4dOlR9drlcCgry6j0QAAAAVzSPJq0HHnhADofDk7sEAADABTwa3jp16qSRI0fqs88+q/G9o0eP6re//a0nD4cA53S5tf9wofbmlWj/4UI5XW5/lwQAgPEa/WL6Cz3++ONKSEjQuHHj9NRTT+lHP/qRPvnkE61atUrvvPOORowY4cnDIYBl7Tmm5Vv26qSjTJK0OatQre37NWVEDw3q2c7P1QEAYC6PhjdJGjVqlOLi4jRhwgQtWbJEp06d0r333qs5c+aoZcuWnj4cAlDWnmNakPFBjfGTjjItyPhAs1L6EeAAAGggj542PXfunF544QXNnDlTHTp0UGhoqPr06aOJEycS3K4QTpdby7fsrXXOiq37OIUKAEADeTS8JSYm6o033tBjjz2mbdu26cUXX1RERISSk5P11VdfefJQCFAHck9WnSq9lK9Pl+pA7kkfVQQAgLV4NLxlZGRo1apVGjp0qCQpNDRU6enpuuuuuzR69Gh9+OGHnjwcAlBhUe3Brb7zAABAdR695q1Lly4XHZ84caKuu+46Pfzww8rKyvLkIRFgWkU28+g8AABQXb1X3kpKSvTEE09oyJAh6tOnj8aNG6f33nvvstslJiZq/fr1DSoS5uga21qt7bUHszZRYeoa29pHFQEAYC31Dm+LFi3SSy+9pNDQUHXq1En79u3TpEmT9Pbbb19222uvvbZBRcIcwUE2TRnRo9Y5k4d3V3CQzUcVAQBgLfUObzt27NDNN9+s119/XRs3btSOHTsUHx+vBQsWeKM+GGhQz3aaldJPrb9zarRNVBiPCQEAoJHqHd6OHz+uW2+9teodpm3atNGMGTN0+PBh5efne7xAmGlQz3Z67r+Sqj7PHNdHK39zG8ENAIBGqnd4c7lcatq0abWx6667Tm63m8eBoJoLT40mxLTkVCkAAB7QoEeFnD59utrnkJAQSVJFRUWjCwIAAMClNehRIfPnz9fvf/97xcfHq1u3burQoYNsNlZVAAAAvK3e4W3lypX69NNPdfDgQX366afasGGDKisrJUmTJ0/WNddco06dOlX7cd1113m8cAAAgCtRvcPbkCFDNGTIkKrPFRUVysnJqQp0Bw8e1Icffqj//d//lSTZbDZlZ2d7rmIAAIArWKPfsBASEqIuXbrUeLvC119/rezsbH322WeNPQQAAAD+w6Ovx7pQmzZtNHTo0Kr3nAIAAKDxPPpiegAAAHgX4Q0AAMAghDcAAACDEN4AAAAMQngDAAAwCOENAADAIIQ3AAAAgxDeAAAADEJ4AwAAMAjhDQAAwCCENwAAAIMQ3gAAAAxCeAMAADAI4Q0AAMAghDcAAACDEN4AAAAM0sTfBdQmJydH8+bN08cff6yIiAgNHz5cjzzyiEJDQy+5zb///W+tWbNGu3bt0pdffqkWLVqoX79+mjFjhtq3b+/D6gEAADwvYMObw+FQSkqKYmJitHjxYhUUFCg9PV1lZWWaPXv2Jbfbv3+/duzYoZEjR6pXr146deqUli1bptGjR+vVV19Vq1atfNgFAACAZwVseNuwYYPOnj2rJUuWKCoqSpLkdDo1Z84cpaamKjo6+qLbXX/99XrttdfUpMm3rfXt21c333yztmzZogkTJviifAAAAK8I2Gvedu7cqYEDB1YFN0kaNmyYXC6Xdu3adcntIiMjqwU3Sfre976nVq1a6d///re3ygUAAPCJgA1vubm5io2NrTYWGRmptm3bKjc3t177Onz4sE6ePKm4uDhPlggAAOBzAXvatKioSJGRkTXG7Xa7HA5Hnffjdrs1b948XXXVVfrxj3/c4HrcbrdKSkoavH1tysqd335dWqqS0GCvHMfXrNrXeaWlpdV+tgqr9iVZtzer9iVZtzer9iVZtzdf9OV2u2Wz2S47L2DDm6csXrxY7733nlauXKnw8PAG76eiokLZ2dkerOxb5ZWuqq+/+PILfdUkYBdE68WqfX1XXl6ev0vwCqv2JVm3N6v2JVm3N6v2JVm3N2/3VdsTNc4L2PAWGRmp4uLiGuMOh0N2u71O+3j55Zf13HPP6be//a0GDhzYqHpCQkLUqVOnRu3jUr5ZoTomSbrm6msUZW/uleP4mlX7Oq+0tFR5eXmKiYlRWFiYv8vxGKv2JVm3N6v2JVm3N6v2JVm3N1/0dejQoTrNC9jwFhsbW+PatuLiYp04caLGtXAXs2PHDj355JN6+OGHNWrUqEbXY7PZGrVyV5ug4Mqqr5uFhXntOL5m1b6+K8yivVm1L8m6vVm1L8m6vVm1L8m6vXmzr7qcMpUC+IaFxMREZWVlqaioqGosMzNTQUFBGjx4cK3bvv/++5oxY4ZGjx6ttLQ0b5cKAADgMwEb3pKTkxUREaG0tDS988472rx5sxYuXKjk5ORqz3hLSUnRbbfdVvU5JydHaWlpiomJ0fDhw/Wvf/2r6seXX37pj1YAAAA8JmBPm9rtdmVkZGju3LlKS0tTRESERo0apenTp1eb53K55HR+e1fjJ598ouLiYhUXF+vee++tNvfuu+9Wenq6T+oHAADwhoANb5IUFxenNWvW1Dpn7dq11T7fc889uueee7xYFQAAgP8E7GlTAAAA1ER4AwAAMAjhDQAAwCCENwAAAIMQ3gAAAAxCeAMAADAI4Q0AAMAghDcAAACDEN4AAAAMQngDAAAwCOENAADAIIQ3AAAAgxDeAAAADEJ4AwAAMAjhDQAAwCCENwAAAIMQ3gAAAAxCeAMAADAI4Q0AAMAghDcAAACDEN4AAAAMQngDAAAwCOENAADAIIQ3AAAAgxDeAAAADEJ4AwAAMAjhDQAAwCCENwAAAIMQ3gAAAAxCeAMAADAI4Q0AAMAghDcAAACDEN4AAAAMQngDAAAwCOENAADAIIQ3AAAAgxDeAAAADEJ4AwAAMAjhDQAAwCCENwAAAIMQ3gAAAAxCeAMawOlya//hQu3NK9H+w4Vyutz+LgkAcIVo4u8CANNk7Tmm5Vv26qSjTJK0OatQre37NWVEDw3q2c7P1QEArI6VN6AesvYc04KMD6qC23knHWVakPGBsvYc81NlAIArBeENqCOny63lW/bWOmfF1n2cQgUAeBXhDaijA7kna6y4fdfXp0t1IPekjyoCAFyJCG9AHRUW1R7c6jsPAICGILwBddQqsplH5wEA0BCEN6COusa2Vmt77cGsTVSYusa29lFFAIArEeENqKPgIJumjOhR65zJw7srOMjmo4oAAFciwhtQD4N6ttOslH5q/Z1To22iwjQrpR/PeQMAeB0P6QXqaVDPdup1XVslP7ZdkjRzXB8N6NmRFTcAgE+w8gY0wIVBLSGmJcENAOAzhDcAAACDEN4AAAAMQngDAAAwCOENAADAIAEd3nJycvTAAw+od+/eGjx4sBYuXKjy8vLLbrd+/XqlpqZqwIABio+PV2Zmpg+qBQAA8L6ADW8Oh0MpKSmqqKjQ4sWLNX36dL388stKT0+/7LZbt27VqVOndNNNN/mgUgAAAN8J2Oe8bdiwQWfPntWSJUsUFRUlSXI6nZozZ45SU1MVHR1d67ZBQUE6evSotmzZ4puCAQAAfCBgV9527typgQMHVgU3SRo2bJhcLpd27dpV67ZBQQHbFgAAQKMEbMrJzc1VbGxstbHIyEi1bdtWubm5fqoKAADAvwL2tGlRUZEiIyNrjNvtdjkcDp/X43a7VVJS4pV9l5U7v/26tFQlocFeOY6vWbUvydq9lZaWVvvZSqzam1X7kqzbm1X7kqzbmy/6crvdstku/8aegA1vgaaiokLZ2dle2Xd5pavq6y++/EJfNQnYBdF6sWpfkrV7Oy8vL8/fJXiNVXuzal+SdXuzal+SdXvzdl+hoaGXnROw4S0yMlLFxcU1xh0Oh+x2u8/rCQkJUadOnbyy729WcY5Jkq65+hpF2Zt75Ti+ZtW+JGv3Vlpaqry8PMXExCgsLMzf5XiUVXuzal+SdXuzal+SdXvzRV+HDh2q07yADW+xsbE1rm0rLi7WiRMnalwL5ws2m03h4eFe2XdQcGXV183Cwrx2HF+zal+StXs7L8yifUnW7c2qfUnW7c2qfUnW7c2bfdXllKkUwDcsJCYmKisrS0VFRVVjmZmZCgoK0uDBg/1YGQAAgP8E7MpbcnKy1q5dq7S0NKWmpqqgoEALFy5UcnJytWe8paSk6NixY9qxY0fV2N69e5Wfn6/CwkJJ0ieffCJJatWqlW688UbfNgIAAOBBARve7Ha7MjIyNHfuXKWlpSkiIkKjRo3S9OnTq81zuVxyOp3VxtavX6+//OUvVZ9Xr14tSbrxxhu1du1a7xcPAADgJQEb3iQpLi5Oa9asqXXOxcJYenp6nV6jBQAAYJqAveYNAAAANRHeAAAADEJ4AwAAMAjhDQAAwCCENwAAAIMQ3gAAAAxCeAMAADAI4Q0AAMAghDcAAACDEN4AAAAMQngDAAAwCOENAADAIIQ3AAAAgxDeAAAADEJ4A1DF6XJr/+FC7c0r0f7DhXK63P4uCQDwHU38XQCAwJC155iWb9mrk44ySdLmrEK1tu/XlBE9NKhnOz9XBwA4j5U3AMrac0wLMj6oCm7nnXSUaUHGB8rac8xPlQEAvovwBlzhnC63lm/ZW+ucFVv3cQoVAAIE4Q24wh3IPVljxe27vj5dqgO5J31UEQCgNoQ34ApXWFR7cKvvPACAdxHegCtcq8hmHp0HAPAuwhtwhesa21qt7bUHszZRYeoa29pHFQEAakN4A65wwUE2TRnRo9Y5k4d3V3CQzUcVAQBqQ3gDoEE922lWSj+1/s6p0TZRYZqV0o/nvAFAAOEhvQAkfRPgel3XVsmPbZckzRzXRwN6dmTFDQACDCtvAKpcGNQSYloS3AAgABHeAAAADEJ4AwAAMAjhDQAAwCCENwAAAIMQ3gAAAAxCeAMAADAI4Q0AAMAghDcAAACDEN4AAAAMQngDAAAwCOENwBXB6XJr/+FC7c0r0f7DhXK63P4uCQAahBfTA7C8rD3HtHzLXp10lEmSNmcVqrV9v6aM6KFBPdv5uToAqB9W3gBYWtaeY1qQ8UFVcDvvpKNMCzI+UNaeY36qDAAahvAGwLKcLreWb9lb65wVW/dxChWAUQhvACzrQO7JGitu3/X16VIdyD3po4oAoPEIbwAsq7Co9uBW33kAEAgIbwAsq1VkM4/OA4BAQHgDYFldY1urtb32YNYmKkxdY1v7qCIAaDzCGwDLCg6yacqIHrXOmTy8u4KDbD6qCAAaj/AGwNIG9WynWSn91Po7p0bbRIVpVko/nvMGwDg8pBeA5Q3q2U69rmur5Me2S5JmjuujAT07suIGwEisvAG4IlwY1BJiWlomuPHaL+DKw8obABiK134BVyZW3gDAQLz2C7hyEd4AwDC89gu4shHeAMAwvPYLuLIR3gDAMLz2C7iyEd4AwDBXymu/uJMWuDjuNgUAw5x/7Vdtp05Nf+0Xd9ICl8bKGwAYxuqv/eJOWqB2hDcAMJBVX/t1JdxJy+lgNFZAnzbNycnRvHnz9PHHHysiIkLDhw/XI488otDQ0Fq3c7vdWrFihV544QUVFhYqISFBs2bNUu/evX1TOAD4gBVf+1WfO2l7dGrjo6o8x+qng88H0/15JXI1K1TfhDCjfz8GqoANbw6HQykpKYqJidHixYtVUFCg9PR0lZWVafbs2bVuu2LFCj377LN69NFHFR8fr/Xr12vChAnaunWrOnbs6KMOAMD7rPbaLyvfSXv+dPB3nT8dbPKKqWTtYBpooTRgw9uGDRt09uxZLVmyRFFRUZIkp9OpOXPmKDU1VdHR0Rfd7ty5c/rjH/+oCRMmaPz48ZKk66+/XrfffrtWrVqlJ5980jcNAADqzap30tb1dHD/7t83MoBbOZgGYigN2Gvedu7cqYEDB1YFN0kaNmyYXC6Xdu3adcntdu/erTNnzmjYsGFVY6Ghobrtttu0c+dOb5YMAGik83fS1sbEO2mt/GBlK1+nGKg3zwTsyltubq5GjhxZbSwyMlJt27ZVbm5urdtJUmxsbLXxuLg4ZWRkqKysTM2aBeC/2Nxuhbgr5Tp3Ts6yEH9X4xHOc5UKcVVIkqX6kqzbm1X7kqzbmxX7mnxHZz29/qNLfn/SsJ5S+Tk5fVhTYxV+7aj6dbrcPGeH5j6oyHP255xU0ali1fY7z1FYof3Zx9QtzpzQ7XS5tXrz7mq/bhW2JpLt25VRf62W2txud0BG4W7dumnatGmaMmVKtfE777xTffr00dy5cy+63bJly7R06VLt3Vv9XwGZmZmaNm2adu7ceclTrpeye/duud1uhYR45w9Ft9ut0q8LFew26Y8iAACuLE5bsM4Eh0sXZLWoFk0V2sQzJzIrKipks9nUt2/fWucF7MpbILH9J2XbbN5J1jabTRFXmXfXFAB4W3mFSy63W0E2m0JDAvZKnzo5cbpUrlpOHQYF2dQ2KsyHFXlGeYVLp4ovfwNJyxbNjPo1LCt3ynHm3GXnud2eywc2m61O+wrY8BYZGani4uIa4w6HQ3a7vdbtysvLde7cOTVt2rRqvKioSDabrdZtL6VPnz713gYAAMAbAjYCx8bG1ri2rbi4WCdOnKhxPdt3t5Okw4cPVxvPzc1Vu3btAvN6NwAAgDoK2PCWmJiorKwsFRUVVY1lZmYqKChIgwcPvuR2ffv2VfPmzfXaa69VjVVUVOjvf/+7EhMTvVozAACAtwXsadPk5GStXbtWaWlpSk1NVUFBgRYuXKjk5ORqNxykpKTo2LFj2rFjhySpadOmSk1N1eLFi9WqVSt17txZL774ok6fPq2JEyf6qx0AAACPCNjwZrfblZGRoblz5yotLU0REREaNWqUpk+fXm2ey+WS01n9Ls3JkyfL7XZr9erVVa/HWrVqFW9XAAAAxgvYR4UAAACgpoC95g0AAAA1Ed4AAAAMQngDAAAwCOENAADAIIQ3AAAAgxDeAAAADEJ486MvvvhCs2fP1vDhw9W1a1fdeeed/i7JI1577TX9/Oc/V2Jionr37q3hw4dr06ZNssJTaf75z3/qZz/7mQYMGKDu3bvrlltu0YIFCy76Hl6TnT17VomJiYqPj9fevXv9XU6jvPLKK4qPj6/x43/+53/8XZrH/OUvf9GIESPUo0cP9e/fX5MmTVJZ2eVfFB6oxo0bd9Ffs/j4eP3tb3/zd3mN9sYbb2j06NHq06ePhgwZomnTpunIkSP+LqvR3nrrLd19993q3r27brrpJj377LM1nsNqgrr+3bxx40b96Ec/Uo8ePfSTn/xEb731ls9qDNiH9F4JPv/8c/3zn/9Ur1695HK5LBFuJGnNmjVq3769Zs6cqZYtWyorK0uPP/64jh8/rgcffNDf5TXK6dOn1bNnT40bN05RUVH6/PPPtXjxYn3++edavXq1v8vzmKVLlxr5h25tVq5cqRYtWlR9vvBNLSZbtmyZVqxYoalTp6p37946deqU3n33XaN//Z544gmdOXOm2lhGRob+/ve/a+DAgX6qyjPef/99PfjggxoxYoSmT5+u06dPa9GiRZowYYK2bdtm7Pu3//Wvf+n//b//px//+MeaMWOGDh06pD/84Q8qLS3Vr371K3+XVy91+bv5b3/7mx5//HFNnTpVAwYM0Pbt2/Xggw9q/fr16t27t/eLdMNvnE5n1de/+tWv3D/+8Y/9WI3nnDx5ssbYY4895u7bt2+1nq3ipZdecnfu3Nl9/Phxf5fiEYcOHXL37t3b/eKLL7o7d+7s3rNnj79LapTNmze7O3fufNHfl6bLyclxd+3a1f2Pf/zD36V4XVJSknvy5Mn+LqPRHn/8cXdSUpLb5XJVjb377rvuzp07uz/44AM/VtY4EyZMcN99993VxlatWuXu1q2b+8SJE36qqmHq8nfzD3/4Q/eMGTOqjf30pz91T5o0yev1ud1uN6dN/SgoyJr/+Vu1alVjLCEhQWfOnFFJSYkfKvKuqKgoSVJFRYV/C/GQefPmKTk5Wddee62/S8FlvPLKK+rQoYNuuukmf5fiVbt379bRo0d11113+buURqusrFRERIRsNlvV2PkVYbfBZ1+ys7M1ePDgamNDhgxRRUWF3nnnHT9V1TCX+7v5yJEjysvL07Bhw6qN33HHHXr33XdVXl7uzfIkcc0bfOSjjz5SdHS0mjdv7u9SPMLpdOrcuXPav3+/nnvuOSUlJalDhw7+LqvRMjMz9dlnnyktLc3fpXjcnXfeqYSEBN1yyy364x//aPRpxfM++eQTde7cWUuXLtXAgQPVvXt3JScn65NPPvF3aR716quvKjw8XLfccou/S2m0e+65Rzk5OVq/fr2Ki4t15MgRPfPMM+ratav69u3r7/Ia7Ny5cwoNDa02dv5zTk6OP0rymtzcXEmq8Q/cuLg4VVRU+OT6Ra55g9d9+OGH2r59u3HXPdTmBz/4gQoKCiRJQ4cO1dNPP+3nihqvtLRU6enpmj59umVCtiS1bdtWDz30kHr16iWbzaY333xTf/jDH1RQUKDZs2f7u7xGOXHihPbt26fPPvtMTzzxhMLCwvT8889rwoQJ+vvf/67WrVv7u8RGq6ys1GuvvaakpCSFh4f7u5xGu+GGG7RkyRL94he/0FNPPSXpmzMTK1euVHBwsJ+ra7hrrrlGe/bsqTb2r3/9S5LkcDj8UJH3nO8nMjKy2vj5z77ol/AGrzp+/LimT5+u/v376/777/d3OR6zfPlylZaW6tChQ1q2bJmmTp2qP/3pT0b/4bts2TK1bt1aI0eO9HcpHjV06FANHTq06vOQIUPUtGlTZWRkaOrUqbrqqqv8WF3juN1ulZSUaNGiRerSpYskqVevXkpKStK6des0bdo0P1fYeLt27VJhYaFl7sbfvXu3/uu//ktjxozRzTffrNOnT2vp0qWaMmWKXnjhBWNvWBg7dqx+85vfKCMjQ8OHD6+6YcHkPxMDGadN4TVFRUWaPHmyoqKitHjxYktd49elSxf16dNHo0eP1tKlS/X+++9rx44d/i6rwfLz87V69Wo9/PDDKi4uVlFRUdX1iSUlJTp79qyfK/SsYcOGyel0Kjs729+lNEpkZKSioqKqgpv0zTWYXbt21aFDh/xYmee8+uqrioqK0pAhQ/xdikfMmzdPAwYM0MyZMzVgwADdfvvtWr58uQ4cOKCtW7f6u7wGu+eee5SSkqKFCxeqf//+Gj9+vJKTk2W3243+B9LF2O12SarxiKiioqJq3/cmVt7gFWVlZUpNTVVxcbFeeumlao9osJr4+HiFhIToyy+/9HcpDXb06FFVVFRoypQpNb53//33q1evXnr55Zf9UBlq06lTp0v+vjt37pyPq/G8srIyvf766/rJT36ikJAQf5fjETk5OTWu3fve976nli1bGv1nSFBQkH7961/roYceUn5+vtq1a6fKykr9/ve/V69evfxdnkfFxsZK+ubat/Nfn/8cEhKijh07er0Gwhs8rrKyUo888ohyc3O1fv16yzxP61I++eQTVVRUGH3DQkJCgv785z9XG8vOztaCBQs0Z84c9ejRw0+Vecf27dsVHBysrl27+ruURvnBD36gV155RdnZ2UpISJAknTp1Svv379f48eP9W5wHvPnmmyopKbHEXabntWvXTgcOHKg2lp+fr1OnTql9+/Z+qspzWrRoUbUSvGjRInXo0EGDBg3yc1We1bFjR8XExCgzM1O33npr1fj27ds1cODAGjdueAPhzY9KS0v1z3/+U9I3//OeOXNGmZmZkqQbb7zxoo/cMMGcOXP01ltvaebMmTpz5kzVRauS1LVrV5/8xvaWBx98UN27d1d8fLyaNWumTz/9VKtWrVJ8fHy1/4lNExkZqf79+1/0e926dVO3bt18XJHnTJw4Uf3791d8fLykb55u//LLL+v+++9X27Zt/Vxd49x6663q0aOHHn74YU2fPl1NmzbV8uXLFRoaqrFjx/q7vEbbtm2b2rVrp+uvv97fpXhMcnKy5s+fr3nz5ikpKUmnT5+uut70u4+eMMmePXv0f//3f0pISFBZWZnefPNNbd26VStWrDDuure6/N380EMP6dFHH9XVV1+t/v37a/v27dqzZ4/WrVvnkxptbpMfLGO4o0ePXvLW9z//+c+X/Ms00CUlJSk/P/+i33vjjTeMXqFavny5tm/fri+//FJut1vt27fXbbfdpokTJ1rqDk3pmyfB33///dq0aZPRK2/z5s3T22+/rePHj8vlcikmJkajR4/WuHHjqj1ry1SFhYVasGCB3nrrLVVUVOiGG27QrFmz1KlTJ3+X1igOh0ODBw9WSkqKfvnLX/q7HI9xu93asGGDXnzxRR05ckQRERHq3bu3pk+frri4OH+X12DZ2dl64okn9Pnnn0v65saZadOmqU+fPn6urP7q+nfzxo0btWLFCh07dkzXXnutZsyYoR/84Ac+qZHwBgAAYBDr3P4HAABwBSC8AQAAGITwBgAAYBDCGwAAgEEIbwAAAAYhvAEAABiE8AYAAGAQwhsAAIBBCG8AAAAGIbwBAAAYhPAGAABgEMIbAACAQQhvAOAhBQUF6tGjh2bNmlVtPCsrS926ddP8+fP9VBkAKyG8AYCHREdHa/To0dq2bZvy8/MlSTk5OZo2bZqGDh2qmTNn+rlCAFZAeAMAD0pNTZXNZtOKFSt06tQpTZ06Ve3bt9czzzyjoCD+yAXQeE38XQAAWEl0dLTGjBmjl19+WQcOHFBZWZnWrVun8PBwf5cGwCJsbrfb7e8iAMBK8vPzlZSUpGbNmmn9+vXq3r27v0sCYCGs4QOAhz3//POSJKfTKbvd7udqAFgN4Q0APGjlypXauHGjZs+ereDg4KogBwCeQngDAA95/fXX9fTTT2vatGm67777NGbMGG3dulVHjhzxd2kALITwBgAesG/fPj366KO666679POf/1ySNGnSJNlsNlbfAHgU4Q0AGun48eOaOnWqEhISNG/evKrx6OhojRw5ktU3AB7F3aYAAAAGYeUNAADAIIQ3AAAAgxDeAAAADEJ4AwAAMAjhDQAAwCCENwAAAIMQ3gAAAAxCeAMAADAI4Q0AAMAghDcAAACDEN4AAAAMQngDAAAwCOENAADAIP8fNsdURpfHWqMAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def pmf(k):\n", + " return 1 / (2 ** k)\n", + "\n", + "x = np.arange(1, 11, 1) # geometric starts at 1\n", + "y = pmf(x)\n", + "\n", + "plt.stem(x, y)\n", + "plt.title(r\"$P_X(x)$\")\n", + "plt.xlabel(r\"$x$\")\n", + "plt.ylabel(r\"$P_X(x)$\")\n", + "plt.xticks(x)\n", + "plt.ylim(bottom=0)\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "182321b9", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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83brrbfqqaee0hNPPKGUlBQlJSWpY8eOatWqlSIiIiRJJSUl2rdvn7Zt26bNmzfr/fffV0hIiIYOHeqTBgAAAM4kdQpvw4cP1+23365XX31Vr732mtasWSOHwyFJCg4OliR5PB5JkmVZuvDCC/XAAw9owIABatq0qZdLBwAAOPPU+W7Tpk2basiQIRoyZIj27dunzz//XHl5eTp8+LAkKTo6WnFxcerSpYtat27t7XoBAADOaA16VEirVq3UqlUrb9UCAACA0/Dq3aaVlZXe3B0AAAB+wavh7Z577lFBQYE3dwkAAIDjeDW8tW3bVv3799eOHTtqvLZv3z498cQT3jwcAADAGcer4W38+PEaMWKE7rrrLv3v//6vJOnLL7/UyJEjddNNN1XdiQoAAID6adANCycyYMAAxcfHKz09XTNnztShQ4d0++23a+LEiTr77LO9fTjbsCxL5RWVKiv3KCi4wt/leEVZOWEdAABv82p4O3r0qFatWqVFixapVatWCg0NVdeuXTV06FCFh4d781C2YlmWJsz7TDu+LZB0wN/lAACAAObV06bJycl69913NW7cOK1du1bLli1TVFSUUlNT9a9//cubh7Idhxz+LsFnWjcPVViIT99GFwCAM4ZXV94WLVqk9u3bV30eGhqqKVOmaP78+Ro4cKCee+45XXbZZd48pC04HA5NHHaZtm77RgkJ7RX581uN2UFJaanycrKr3okDAAA0TJ3D25gxY5SRkaGEhIQarx0f3I43dOhQXXjhhRo5cqQ2b95c9yrPAA6HQ6FNghQeGqzwMK9fiug3lZ5gghsAAF5U53NZ69atq/YokIqKCuXm5p52XnJyspYuXVrXwwEAAOA4Db4QqaioSH379tUnn3xy2m0vuOCChh4OAADgjOaVq8gty/LGbgAAAHAa3AIIAABgkHqFt8LCQm/XAQAAgFqo122NkydP1rRp05SYmKi4uDg5HA7l5+ersrJSQUEs5gEAAPhKncPbvHnztH37dmVnZ2v79u365z//Kcuy9Mgjj2jcuHFq06aNLrzwQrVt21YXXnih4uPjFRcX54vaAQAAzjh1Dm89e/ZUz549qz53u93Kzc2tCnTZ2dn69NNPtW7dOkk/Pb8sKyvLexUDAACcwRr8NNiQkBC1b9++xgN6//3vfysrK6vaM+EAAADQMD57lP9//dd/qVevXurVq5evDgEAAHDG4e4CAAAAgxDeAAAADEJ4AwAAMAjhDQAAwCCENwAAAIMQ3gAAAAxCeAMAADAI4Q0AAMAghDcAAACDEN4AAAAMQngDAAAwCOENAADAIIQ3AAAAgxDeAAAADEJ4AwAAMAjhDQAAwCABHd5yc3N1zz33qEuXLurRo4emTp2q8vLyOu1j4cKFSkhIUEZGho+qBAAAaDxN/F3AyRQUFCgtLU2xsbGaMWOGDh48qClTpqisrEwTJkyo1T7y8/P1/PPP65xzzvFxtQAAAI0jYMPb8uXLdeTIEc2cOVPR0dGSJI/Ho4kTJyojI0MxMTGn3cfTTz+tlJQUHThwwMfVAgAANI6APW26ceNGJSUlVQU3SerTp48qKyu1adOm087/xz/+oXfeeUcPPfSQD6sEAABoXAEb3vLy8hQXF1dtzOl0qnnz5srLyzvlXI/Ho0mTJmnEiBE699xzfVkmAABAowrY06aFhYVyOp01xl0ulwoKCk45969//atKS0s1ZMgQr9VjWZZKSkq8tr9fKi0trfa7Xdi1L8m+vdm1L8m+vdm1L8m+vdm1L8m+vTVGX5ZlyeFwnHa7gA1v9fXDDz9o+vTp+tOf/qTQ0FCv7dftdisrK8tr+zuZ3bt3+/wY/mDXviT79mbXviT79mbXviT79mbXviT79ubrvmqTXQI2vDmdThUVFdUYLygokMvlOum8adOmKSEhQZdddpkKCwslSRUVFaqoqFBhYaEiIyPVpEnd2w4JCVHbtm3rPK+2SktLtXv3bsXGxioiIsJnx2lsdu1Lsm9vdu1Lsm9vdu1Lsm9vdu1Lsm9vjdFXTk5OrbYL2PAWFxdX49q2oqIi5efn17gW7ni7du3SZ599pssvv7zGa5dffrnmzp2r5OTkOtfjcDgUGRlZ53l1FRER0SjHaWx27Uuyb2927Uuyb2927Uuyb2927Uuyb2++7Ks2p0ylAA5vycnJmj17drVr39avX6+goCD16NHjpPN+//vfV624HfPkk08qPDxcY8aMUUJCgk/rBgAA8KWADW+pqalavHixMjMzlZGRoYMHD2rq1KlKTU2t9oy3tLQ0HThwQBs2bJAkJSYm1tiX0+lUZGSkunXr1mj1AwAA+ELAPirE5XJp0aJFCg4OVmZmpp555hkNGDBAY8eOrbZdZWWlPB6Pn6oEAABoXAG78iZJ8fHxWrhw4Sm3Wbx48Wn3U5ttAAAATBCwK28AAACoifAGAABgEMIbAACAQQhvAAAABiG8AQAAGITwBgAAYBDCGwAAgEEIbwAAAAYhvAEAABiE8AYAAGAQwhsAAIBBCG8AAAAGIbwBAAAYhPAGAABgEMIbAACAQQhvAAAABiG8AQAAGITwBgAAYBDCGwAAgEEIbwAAAAYhvAEAABiE8AYAAGAQwhsAAIBBCG8AAAAGIbwBAAAYhPAGAABgEMIbAACAQQhvAAAABiG8AQAAGITwBgAAYBDCGwAAgEEIbwAAAAYhvAEAABiE8AYAAGAQwhsAAIBBCG8AAAAGIbwBAAAYhPAGAABgEMIbAACAQQhvAAAABiG8AQAAGITwBgAAYBDCGwAAgEEIbwAAAAYhvAEAABiE8AYAAGAQwhsAAIBBCG8AAAAGIbwBAAAYhPAGAABgEMIbAACAQQhvAAAABiG8AQAAGITwBgAAYBDCGwAAgEEIbwAAAAYhvAEAABikib8LOJXc3FxNnjxZn3/+uaKionTzzTfrwQcfVGho6EnnfP/991q4cKE2bdqkb7/9VmeddZYuv/xyjRkzRi1btmzE6gEAALwvYMNbQUGB0tLSFBsbqxkzZujgwYOaMmWKysrKNGHChJPO+/rrr7Vhwwb1799fF198sQ4dOqQXXnhBAwcO1BtvvKFmzZo1YhcAAADeFbDhbfny5Tpy5Ihmzpyp6OhoSZLH49HEiROVkZGhmJiYE8679NJL9dZbb6lJk/+0dskll6h3797629/+pvT09MYoHwAAwCcC9pq3jRs3KikpqSq4SVKfPn1UWVmpTZs2nXSe0+msFtwk6bzzzlOzZs30/fff+6pcAACARhGw4S0vL09xcXHVxpxOp5o3b668vLw67WvXrl364YcfFB8f780SAQAAGl3AnjYtLCyU0+msMe5yuVRQUFDr/ViWpcmTJ+vcc8/VDTfcUO96LMtSSUlJveefTmlpabXf7cKufUn27c2ufUn27c2ufUn27c2ufUn27a0x+rIsSw6H47TbBWx485YZM2bo73//u+bNm6fIyMh678ftdisrK8uLlZ3Y7t27fX4Mf7BrX5J9e7NrX5J9e7NrX5J9e7NrX5J9e/N1X6d6osYxARvenE6nioqKaowXFBTI5XLVah8rVqzQ888/ryeeeEJJSUkNqickJERt27Zt0D5OpbS0VLt371ZsbKwiIiJ8dpzGZte+JPv2Zte+JPv2Zte+JPv2Zte+JPv21hh95eTk1Gq7gA1vcXFxNa5tKyoqUn5+fo1r4U5kw4YNevzxxzVy5EgNGDCgwfU4HI4GrdzVVkRERKMcp7HZtS/Jvr3ZtS/Jvr3ZtS/Jvr3ZtS/Jvr35sq/anDKVAviGheTkZG3evFmFhYVVY+vXr1dQUJB69OhxyrmffvqpxowZo4EDByozM9PXpQIAADSagA1vqampioqKUmZmpj7++GOtWrVKU6dOVWpqarVnvKWlpenaa6+t+jw3N1eZmZmKjY3VzTffrC+++KLq17fffuuPVgAAALwmYE+bulwuLVq0SJMmTVJmZqaioqI0YMAAjR49utp2lZWV8ng8VZ9/+eWXKioqUlFRkW6//fZq2956662aMmVKo9QPAADgCwEb3iQpPj5eCxcuPOU2ixcvrvZ5v3791K9fPx9WBQAA4D8Be9oUAAAANRHeAAAADEJ4AwAAMAjhDQAAwCCENwAAAIMQ3gAAAAxCeAMAADAI4Q0AAMAghDcAAACDEN4AAAAMQngDAAAwCOENAADAIIQ3AAAAgxDeAAAADEJ4AwAAMAjhDQAAwCCENwAAAIMQ3gAAAAxCeAMAADAI4Q0AAMAghDcAAACDEN4AAAAMQngDAAAwCOENAADAIIQ3AAAAgxDeAAAADEJ4AwAAMAjhDQAAwCCENwAAAIMQ3gAAAAxCeAMAADAI4Q0AAMAghDcAAACDEN4AAAAMQngDAAAwCOENAADAIIQ3AAAAgxDeAAAADEJ4AwAAMAjhDQAAwCCENwAAAIMQ3gAAAAxCeAMAADAI4Q0AAMAghDcAAACDEN4AAAAMQngDAAAwCOENAADAIIQ3AAAAgxDeAAAADEJ4AwAAMAjhDQAAwCCENwAAAIMQ3gAAAAxCeAMAADAI4Q0AAMAghDcAAACDBHR4y83N1T333KMuXbqoR48emjp1qsrLy087z7IszZkzR71799ZFF12k2267TV988YXvCwYAAPCxgA1vBQUFSktLk9vt1owZMzR69GitWLFCU6ZMOe3cuXPnavr06RoyZIhefPFFNW/eXOnp6dq7d28jVA4AAOA7TfxdwMksX75cR44c0cyZMxUdHS1J8ng8mjhxojIyMhQTE3PCeUePHtWLL76o9PR0DRkyRJJ06aWX6rrrrtP8+fP1+OOPN04DAAAAPhCwK28bN25UUlJSVXCTpD59+qiyslKbNm066bwtW7aouLhYffr0qRoLDQ3Vtddeq40bN/qyZAAAAJ8L2PCWl5enuLi4amNOp1PNmzdXXl7eKedJqjE3Pj5eBw4cUFlZmfeLBQAAaCQBe9q0sLBQTqezxrjL5VJBQcEp54WGhiosLKzauNPplGVZKigoUHh4eJ1qcbvdsixLW7durdO8urAsS5K0c+dOORwOnx2nsdm1L8m+vdm1L8m+vdm1L8m+vdm1L8m+vTVGX263u1b7DtjwFkiO/UH68i+hw+FQaGioz/bvL3btS7Jvb3btS7Jvb3btS7Jvb3btS7Jvb43Rl8PhMDu8OZ1OFRUV1RgvKCiQy+U65bzy8nIdPXq02upbYWGhHA7HKeeeTNeuXes8BwAAwBcC9pq3uLi4Gte2FRUVKT8/v8b1bL+cJ0m7du2qNp6Xl6cWLVrU+ZQpAABAIAnY8JacnKzNmzersLCwamz9+vUKCgpSjx49TjrvkksuUdOmTfXWW29Vjbndbr399ttKTk72ac0AAAC+FrCnTVNTU7V48WJlZmYqIyNDBw8e1NSpU5WamlrtGW9paWk6cOCANmzYIEkKCwtTRkaGZsyYoWbNmqldu3ZatmyZDh8+rKFDh/qrHQAAAK8I2PDmcrm0aNEiTZo0SZmZmYqKitKAAQM0evToattVVlbK4/FUGxs+fLgsy9KCBQv0448/KjExUfPnz1fr1q0bswUAAACvc1jH7n0FAABAwAvYa94AAABQE+ENAADAIIQ3AAAAgxDeAAAADEJ4AwAAMAjhDQAAwCCENz/as2ePJkyYoJtvvlkdOnRQ3759/V2SV7z11lu67777lJycrC5duujmm2/Wq6++Kjs8lebDDz/UnXfeqe7du6tTp066+uqr9dRTT53wfXhNduTIESUnJyshIUFfffWVv8tpkNWrVyshIaHGrz//+c/+Ls1rXnvtNd1yyy3q3LmzunXrpmHDhqmsrMzfZdXbXXfddcKvWUJCgt58801/l9dg7777rgYOHKiuXbuqZ8+eGjVqlPbu3evvshrs/fff16233qpOnTrpyiuv1PTp02s8h9UEtf3ZvHLlSv32t79V586dddNNN+n9999vtBoD9iG9Z4KdO3fqww8/1MUXX6zKykpbhBtJWrhwoVq2bKmxY8fq7LPP1ubNmzV+/Hh99913uv/++/1dXoMcPnxYF110ke666y5FR0dr586dmjFjhnbu3KkFCxb4uzyvmTVrlpHfdE9l3rx5Ouuss6o+P/6dWkz2wgsvaO7cuRoxYoS6dOmiQ4cO6ZNPPjH66/fYY4+puLi42tiiRYv09ttvKykpyU9Vecenn36q+++/X7fccotGjx6tw4cPa9q0aUpPT9fatWuNff/tL774Qv/93/+tG264QWPGjFFOTo6ee+45lZaW6pFHHvF3eXVSm5/Nb775psaPH68RI0aoe/fuWrdune6//34tXbpUXbp08X2RFvzG4/FUffzII49YN9xwgx+r8Z4ffvihxti4ceOsSy65pFrPdvHKK69Y7dq1s7777jt/l+IVOTk5VpcuXaxly5ZZ7dq1s7Zu3ervkhpk1apVVrt27U7499J0ubm5VocOHawPPvjA36X4XEpKijV8+HB/l9Fg48ePt1JSUqzKysqqsU8++cRq166d9dlnn/mxsoZJT0+3br311mpj8+fPtzp27Gjl5+f7qar6qc3P5t/85jfWmDFjqo3ddttt1rBhw3xen2VZFqdN/SgoyJ5//M2aNasxlpiYqOLiYpWUlPihIt+Kjo6WJLndbv8W4iWTJ09WamqqLrjgAn+XgtNYvXq1WrVqpSuvvNLfpfjUli1btG/fPt14443+LqXBKioqFBUVJYfDUTV2bEXYMvjsS1ZWlnr06FFtrGfPnnK73fr444/9VFX9nO5n8969e7V792716dOn2vj111+vTz75ROXl5b4sTxLXvKGR/POf/1RMTIyaNm3q71K8wuPx6OjRo/r666/1/PPPKyUlRa1atfJ3WQ22fv167dixQ5mZmf4uxev69u2rxMREXX311XrxxReNPq14zJdffql27dpp1qxZSkpKUqdOnZSamqovv/zS36V51RtvvKHIyEhdffXV/i6lwfr166fc3FwtXbpURUVF2rt3r5599ll16NBBl1xyib/Lq7ejR48qNDS02tixz3Nzc/1Rks/k5eVJUo3/4MbHx8vtdjfK9Ytc8waf+8c//qF169YZd93DqVx11VU6ePCgJKlXr1565pln/FxRw5WWlmrKlCkaPXq0bUK2JDVv3lwPPPCALr74YjkcDr333nt67rnndPDgQU2YMMHf5TVIfn6+tm3bph07duixxx5TRESEZs+erfT0dL399ts655xz/F1ig1VUVOitt95SSkqKIiMj/V1Og1122WWaOXOmHnroIf3xj3+U9NOZiXnz5ik4ONjP1dVfmzZttHXr1mpjX3zxhSSpoKDADxX5zrF+nE5ntfFjnzdGv4Q3+NR3332n0aNHq1u3brr77rv9XY7XzJkzR6WlpcrJydELL7ygESNG6KWXXjL6m+8LL7ygc845R/379/d3KV7Vq1cv9erVq+rznj17KiwsTIsWLdKIESN07rnn+rG6hrEsSyUlJZo2bZrat28vSbr44ouVkpKiJUuWaNSoUX6usOE2bdqkH3/80TZ342/ZskX/8z//o0GDBql37946fPiwZs2apXvvvVd//etfjb1hYfDgwfrDH/6gRYsW6eabb666YcHk74mBjNOm8JnCwkINHz5c0dHRmjFjhq2u8Wvfvr26du2qgQMHatasWfr000+1YcMGf5dVb/v379eCBQs0cuRIFRUVqbCwsOr6xJKSEh05csTPFXpXnz595PF4lJWV5e9SGsTpdCo6OroquEk/XYPZoUMH5eTk+LEy73njjTcUHR2tnj17+rsUr5g8ebK6d++usWPHqnv37rruuus0Z84cffPNN1qzZo2/y6u3fv36KS0tTVOnTlW3bt00ZMgQpaamyuVyGf0fpBNxuVySVOMRUYWFhdVe9yVW3uATZWVlysjIUFFRkV555ZVqj2iwm4SEBIWEhOjbb7/1dyn1tm/fPrndbt177701Xrv77rt18cUXa8WKFX6oDKfStm3bk/69O3r0aCNX431lZWV65513dNNNNykkJMTf5XhFbm5ujWv3zjvvPJ199tlGfw8JCgrS73//ez3wwAPav3+/WrRooYqKCv3lL3/RxRdf7O/yvCouLk7ST9e+Hfv42OchISFq3bq1z2sgvMHrKioq9OCDDyovL09Lly61zfO0TubLL7+U2+02+oaFxMREvfzyy9XGsrKy9NRTT2nixInq3LmznyrzjXXr1ik4OFgdOnTwdykNctVVV2n16tXKyspSYmKiJOnQoUP6+uuvNWTIEP8W5wXvvfeeSkpKbHGX6TEtWrTQN998U21s//79OnTokFq2bOmnqrznrLPOqloJnjZtmlq1aqUrrrjCz1V5V+vWrRUbG6v169frmmuuqRpft26dkpKSaty44QuENz8qLS3Vhx9+KOmnf7zFxcVav369JOnXv/71CR+5YYKJEyfq/fff19ixY1VcXFx10aokdejQoVH+YvvK/fffr06dOikhIUHh4eHavn275s+fr4SEhGr/iE3jdDrVrVu3E77WsWNHdezYsZEr8p6hQ4eqW7duSkhIkPTT0+1XrFihu+++W82bN/dzdQ1zzTXXqHPnzho5cqRGjx6tsLAwzZkzR6GhoRo8eLC/y2uwtWvXqkWLFrr00kv9XYrXpKam6sknn9TkyZOVkpKiw4cPV11v+stHT5hk69at+r//+z8lJiaqrKxM7733ntasWaO5c+cad91bbX42P/DAA3r44Yf1q1/9St26ddO6deu0detWLVmypFFqdFgmP1jGcPv27Tvpre8vv/zySX+YBrqUlBTt37//hK+9++67Rq9QzZkzR+vWrdO3334ry7LUsmVLXXvttRo6dKit7tCUfnoS/N13361XX33V6JW3yZMn66OPPtJ3332nyspKxcbGauDAgbrrrruqPWvLVD/++KOeeuopvf/++3K73brsssv06KOPqm3btv4urUEKCgrUo0cPpaWl6Xe/+52/y/Eay7K0fPlyLVu2THv37lVUVJS6dOmi0aNHKz4+3t/l1VtWVpYee+wx7dy5U9JPN86MGjVKXbt29XNldVfbn80rV67U3LlzdeDAAV1wwQUaM2aMrrrqqkapkfAGAABgEPvc/gcAAHAGILwBAAAYhPAGAABgEMIbAACAQQhvAAAABiG8AQAAGITwBgAAYBDCGwAAgEEIbwAAAAYhvAEAABiE8AYAAGAQwhsAAIBBCG8A4CUHDx5U586d9eijj1Yb37x5szp27Kgnn3zST5UBsBPCGwB4SUxMjAYOHKi1a9dq//79kqTc3FyNGjVKvXr10tixY/1cIQA7ILwBgBdlZGTI4XBo7ty5OnTokEaMGKGWLVvq2WefVVAQ33IBNFwTfxcAAHYSExOjQYMGacWKFfrmm29UVlamJUuWKDIy0t+lAbAJh2VZlr+LAAA72b9/v1JSUhQeHq6lS5eqU6dO/i4JgI2whg8AXjZ79mxJksfjkcvl8nM1AOyG8AYAXjRv3jytXLlSEyZMUHBwcFWQAwBvIbwBgJe88847euaZZzRq1CjdcccdGjRokNasWaO9e/f6uzQANkJ4AwAv2LZtmx5++GHdeOONuu+++yRJw4YNk8PhYPUNgFcR3gCggb777juNGDFCiYmJmjx5ctV4TEyM+vfvz+obAK/iblMAAACDsPIGAABgEMIbAACAQQhvAAAABiG8AQAAGITwBgAAYBDCGwAAgEEIbwAAAAYhvAEAABiE8AYAAGAQwhsAAIBBCG8AAAAGIbwBAAAYhPAGAABgkP8H/IpoUfNWid8AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def pmf(k):\n", + " return 1 / (2 ** k)\n", + "\n", + "x = np.arange(1, 11, 1) # geometric starts at 1\n", + "cdf = np.cumsum(y)\n", + "\n", + "plt.step(x, cdf, where='post')\n", + "plt.title(r\"$F_X(x)$\")\n", + "plt.xlabel(r\"$x$\")\n", + "plt.ylabel(r\"$F_X(x)$\")\n", + "plt.xticks(x)\n", + "plt.ylim(0, 1.05)\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "d5f8d31c", + "metadata": {}, + "source": [ + "3.12 Let $X \\sim Bernoulli(p)$. Find $E[X]$.\n", + "\n", + "Notice $R_X = \\{1, 0\\}$.\n", + "\n", + "$$E[X] = 1 \\cdot p + 0 \\cdot (1 - p) = p$$\n", + "\n", + "3.13 Let $X \\sim Geometric(p)$. Find $E[X]$.\n", + "\n", + "Notice $R_X = \\mathbb{N}$.\n", + "\n", + "\\begin{align*}\n", + "E[X] &= 1 \\cdot p(1 - p)^{1 - 1} + 2 \\cdot p(1 - p)^{2 - 1} + 3 \\cdot p(1 - p)^{3 - 1} + \\dots \\\\\n", + "&= 1p + 2p(1 - p) + 3p(1 - p)^{2} + 4p(1 - p)^{3} + \\dots \\\\\n", + "&= p \\cdot 1(1 - p)^0 + p \\cdot 2(1 - p)^1 + p \\cdot 3(1 - p)^{2} + p \\cdot 4(1 - p)^{3} + \\dots \\\\\n", + "&= \\frac{1}{p}\n", + "\\end{align*}\n", + "\n", + "3.13 Let $X \\sim Poisson(\\lambda)$. Find $E[X]$.\n", + "\n", + "\n", + "Notice $R_X = \\mathbb{N} \\cup \\{0\\}$.\n", + "\n", + "\\begin{align*}\n", + "E[X] &= 0 \\cdot \\frac{e^{-\\lambda}\\lambda^0}{0!} + 1 \\cdot \\frac{e^{-\\lambda}\\lambda^1}{1!} + 2 \\cdot \\frac{e^{-\\lambda}\\lambda^2}{2!} + 3 \\cdot \\frac{e^{-\\lambda}\\lambda^3}{3!} + \\cdots \\\\\n", + "&= \\sum_{x = 0}^\\infty x\\cdot \\frac{e^{-\\lambda}\\lambda^x}{x!} \\\\\n", + "&= e^{-\\lambda} \\cdot \\sum_{x = 0}^\\infty \\frac{\\lambda^x}{(x-1)!} \\\\\n", + "\\end{align*}\n", + "\n", + "Let $k = x - 1$\n", + "\n", + "\n", + "\\begin{align*}\n", + "E[X] &= e^{-\\lambda} \\cdot \\sum_{k = 0}^\\infty \\frac{\\lambda^{k+1}}{k!} \\\\\n", + "&= \\lambda e^{-\\lambda} \\cdot \\sum_{k = 0}^\\infty \\frac{\\lambda^k}{k!} \\\\\n", + "&= \\lambda e^{-\\lambda} \\cdot e^\\lambda = \\lambda\n", + "\\end{align*}" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "b1d97b95", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "V=2.916666666666666, SD=np.float64(1.707825127659933)\n" + ] + } + ], + "source": [ + "E = 3.5\n", + "E2 = E**2\n", + "\n", + "V = 0\n", + "\n", + "for x in range(1, 7):\n", + " V += (x**2) * (1/6)\n", + "\n", + "V = V - E2\n", + "SD = np.sqrt(V)\n", + "\n", + "print(f\"{V=}, {SD=}\")\n" + ] } ], "metadata": { diff --git a/study/001_introduction-to-probability-statistics-and-random-processes/ch3/notes.ipynb b/study/001_introduction-to-probability-statistics-and-random-processes/ch3/notes.ipynb index 5e577f6..484648f 100644 --- a/study/001_introduction-to-probability-statistics-and-random-processes/ch3/notes.ipynb +++ b/study/001_introduction-to-probability-statistics-and-random-processes/ch3/notes.ipynb @@ -464,8 +464,116 @@ "id": "9768e347", "metadata": {}, "source": [ + "NOTE: If we have the PMF, we can find the CDF from it. In particular, if $R_X = \\{ x_1, x_2, x_3, \\dots \\}$, we can write\n", + "\n", + "$$F_X(x) = \\sum_{x_k \\leq x}P_X(x_k)$$\n", + "\n", "NOTE: For all $a \\leq b$, we have\n", - "$$P(a \\lt X \\leq b) = F_X(b) - F_X(a)$$" + "$$P(a \\lt X \\leq b) = F_X(b) - F_X(a)$$\n", + "\n", + "NOTE: To find $P(X \\lt x)$, for a discrete random variable, we can simply write\n", + "\n", + "$$P(X \\lt x) = P(X \\leq x) - P(X = x) = F_X(x) - P_X(x)$$" + ] + }, + { + "cell_type": "markdown", + "id": "0fd28226", + "metadata": {}, + "source": [ + "## Expectation (3.2.2)" + ] + }, + { + "cell_type": "markdown", + "id": "d9ad903b", + "metadata": {}, + "source": [ + "***Definition*** Let $X$ be a discrete random variable with range $R_X = \\{ x_1, x_2, x_3, \\dots \\}$ (finite or countably infinte). The *expected* value of $X$, denoted by $E[X]$ is defined as\n", + "\n", + "$$E[X] = \\sum_{x_k \\in R_X}x_kP(X=x_k) = \\sum_{x_k \\in R_X}x_kP_X(x_k)$$" + ] + }, + { + "cell_type": "markdown", + "id": "e4c5500d", + "metadata": {}, + "source": [ + "***Theorem*** Expectation is linear. We have\n", + "- $E[aX +b] = aE[X] + b, \\forall a,b \\in \\mathbb{R}$\n", + "- $E[X_1 + X_2 + \\dots + X_n] = E[X_1] + E[X_2] + \\dots + E[X_n]$, for any set of random variables $X_1, X_2, \\dots, X_n$" + ] + }, + { + "cell_type": "markdown", + "id": "110d9ecf", + "metadata": {}, + "source": [ + "## Functions of Random Variables (3.2.3)" + ] + }, + { + "cell_type": "markdown", + "id": "1ed681ae", + "metadata": {}, + "source": [ + "Law of the unconscious statistician (LOTUS) for discrete random variables:\n", + "\n", + "$$E[g(X)] = \\sum_{x_k \\in R_X}g(x_k)P_X(x_k)$$" + ] + }, + { + "cell_type": "markdown", + "id": "9c9c6a44", + "metadata": {}, + "source": [ + "## Variance (3.2.4)" + ] + }, + { + "cell_type": "markdown", + "id": "5d7e781f", + "metadata": {}, + "source": [ + "***Definition*** The **variance** of a random variable $X$ is defined as\n", + "\n", + "$$\\text{Var}(X) = E[(X - E[X])^2] = \\sum_{x_k \\in R_X} (x_k - E[X])^2P_X(x)$$\n", + "\n", + "Or\n", + "\n", + "$$\\text{Var}(X) = E[X^2] - (E[X])^2 = \\sum_{x_k \\in R_X}x_k^2P_X(x_k) - (E[X])^2$$" + ] + }, + { + "cell_type": "markdown", + "id": "1def8444", + "metadata": {}, + "source": [ + "***Definition*** The *standard deviation* of a random variable $X$ is defined as\n", + "\n", + "$$\\text{SD}(X) = \\sigma_X = \\sqrt{\\text{Var}(X)}$$" + ] + }, + { + "cell_type": "markdown", + "id": "def50a00", + "metadata": {}, + "source": [ + "***Theorem*** For a random variable $X$ and real numbers $a$ and $b$,\n", + "\n", + "$$\\text{Var}(aX + b) = a^2\\text{Var}(X)$$\n", + "\n", + "$$\\text{SD}(aX + b) = |a|\\text{SD}(X)$$" + ] + }, + { + "cell_type": "markdown", + "id": "e32be7d1", + "metadata": {}, + "source": [ + "***Theorem*** If $X_1, X_2, \\dots, X_n$ are independent random variables and $X = X_1 + X_2 + \\dots + X_n$, then\n", + "\n", + "$$\\text{Var}(X) = \\text{Var}(X_1) + \\text{Var}(X_2) + \\dots + \\text{Var}(X_n) $$" ] } ],