├── Physics └── Optics │ ├── README.md │ ├── lens.ipynb │ └── paper.pdf └── README.md /Physics/Optics/README.md: -------------------------------------------------------------------------------- 1 | # ❓PROBLEM STATEMENT 2 | 3 | Arrange a combination of **6** thin lenses in order to make a high quality image from an object that is **8m** away from the front lens of the camera. 4 | The distance between the last lens to the image is **15 cm**. The height of the object is equal to **2m** and the image height might be varied from **0.5 cm to 3.5 cm** in order to fit to the physical size of the camera screen. 5 | We will use **sperichal double convex lenses** 6 | 7 | # 📝 PAPERS & REFERENCES used 8 | We will use the theory and approach of the Flerackers et al. (1984) paper : **Combination of thin lenses-a computer oriented method**. In this paper, the image distances are calculated for up to **3** lenses. We will write a code for finding the image produced from a combination of **6** lenses. 9 | 10 | 11 | # 💡 SOLUTION 12 | 13 | ![image](https://drive.google.com/uc?export=view&id=1662uV4_8H9w0cxNNXqEHXmRQ2v4niVZZ) 14 | 15 | 16 | 17 |
7

18 | 19 |
8
20 | 21 |
9
22 | 23 | 24 | # Explanations 25 | 26 | 27 | 28 | | **Definition**| **Explanation**| 29 | |:-:|:-:| 30 | |**Lens**|Optical Lenses are optical components designed to focus or diverge light. | 31 | |**Double Convex Lens**|Double-Convex Lenses have positive focal lengths, along with two convex surfaces with equal radii| 32 | |**Focal Point**|The point at which all radiation coming from a single direction and passing through a lens or striking a mirror converges| 33 | |**Optical Image**|Optical image, the apparent reproduction of an object, formed by a lens or mirror system from reflected, refracted, or diffracted light waves| 34 | |**Lens Thickness**| An ideal thin lens with two surfaces of equal curvature would have zero optical power, meaning that it would neither converge nor diverge light. A lens whose thickness is not negligible is called a thick lens| 35 | -------------------------------------------------------------------------------- /Physics/Optics/lens.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "lens.ipynb", 7 | "provenance": [], 8 | "toc_visible": true 9 | }, 10 | "kernelspec": { 11 | "name": "python3", 12 | "display_name": "Python 3" 13 | } 14 | }, 15 | "cells": [ 16 | { 17 | "cell_type": "markdown", 18 | "metadata": { 19 | "id": "VFkiOzE1578I" 20 | }, 21 | "source": [ 22 | " # Libraries Importing 📚⬇️\n", 23 | " ---" 24 | ] 25 | }, 26 | { 27 | "cell_type": "code", 28 | "metadata": { 29 | "id": "CzaomcZA5HnM" 30 | }, 31 | "source": [ 32 | "## BASICS\n", 33 | "import os\n", 34 | "import numpy as np # linear algebra\n", 35 | "import pandas as pd # data processing, CSV file I/O ﴾e.g. pd.read_csv﴿ \n", 36 | "import matplotlib.pyplot as plt\n", 37 | "import zipfile\n", 38 | "import seaborn as sns\n", 39 | "import re" 40 | ], 41 | "execution_count": 29, 42 | "outputs": [] 43 | }, 44 | { 45 | "cell_type": "markdown", 46 | "metadata": { 47 | "id": "Jg54dn8B55Qw" 48 | }, 49 | "source": [ 50 | "# METHOD 2.1\n", 51 | "---\n", 52 | "
\"Screen-Shot-2021-02-04-at-00-35-18\"
\n", 53 | "\n", 54 | "\n", 55 | "## BASICS EQUATIONS\n", 56 | "\n", 57 | "* $\\frac{1}{f} = \\frac{1}{s} + \\frac{1}{s'} \\Rightarrow f = \\frac{ss'}{s + s'} \\rightarrow s' = \\frac{sf}{s - f}$\n", 58 | "\n", 59 | "* $m = - \\frac{s'}{s }$\n", 60 | "\n", 61 | "## DATA\n", 62 | "\n", 63 | "* Distances $s_1 = 8, s_6' = 0.015 $\n", 64 | "* We will use $n = 6$ **thin double convex** lens. Therefore, the focal point (the **image**) will always be on the right!\n", 65 | "\n", 66 | "---\n", 67 | "\n", 68 | "## The Equilvalent Focal Length of Multi Lens System (n = 6)\n", 69 | "\n", 70 | "$$f = \\frac{f_1 f_2 f_3 f_4 f_5 f_6}{f_1 f_2 f_3 f_4 f_5 + f_1 f_2 f_3 f_4 f_6 + f_1 f_2 f_3 f_5 f_6 + f_1 f_2 f_4 f_5 f_6 + f_1 f_3 f_4 f_5 f_6 + f_2 f_3 f_4 f_5 f_6}$$\n", 71 | "\n", 72 | "\n", 73 | "## Magnification of Multi Lens System (n = 6)\n", 74 | "$$\n", 75 | "\\begin{align}\n", 76 | "M &= m_1 \\cdot m_2 \\cdot m_3 \\cdot m_4 \\cdot m_5 \\cdot m_6 \\\\\n", 77 | " &= \\left( -\\frac{s'_{1}}{s_1} \\right) \\left( -\\frac{s'_{2}}{s_2} \\right) \\left( -\\frac{s'_{3}}{s_3} \\right) \\left( -\\frac{s'_{4}}{s_4} \\right) \\left( -\\frac{s'_{5}}{s_5} \\right) \\left( -\\frac{s'_{6}}{s_6} \\right)\n", 78 | "\\end{align}\n", 79 | "$$\n", 80 | "\n", 81 | "Since the initial object has height $h = 2$ m and the image should sbe in the range $h' \\in [0.5cm, 3.5cm]$, we conclude that\n", 82 | "\n", 83 | "$$ h' = M \\cdot h \\Rightarrow M \\in [ 0.0025, 0.0175] \\Rightarrow M \\in [0.25 \\%, 1.75\\%]$$\n", 84 | "\n" 85 | ] 86 | }, 87 | { 88 | "cell_type": "code", 89 | "metadata": { 90 | "id": "my3UDFug54ki", 91 | "colab": { 92 | "base_uri": "https://localhost:8080/" 93 | }, 94 | "outputId": "1c294d98-b0d6-4f9b-af19-0232e2d88ef0" 95 | }, 96 | "source": [ 97 | "F = np.linspace(0.001, 0.5, 1000)\n", 98 | "D = np.linspace(0.001, 0.05, 1000)\n", 99 | "s1 = 8; s6_ = 0.015; \n", 100 | "eps = 1e-5\n", 101 | "n = 6\n", 102 | "\n", 103 | "for f in F :\n", 104 | " for d in D:\n", 105 | " M = 1\n", 106 | " s = s1 \n", 107 | " for _ in range(n - 1):\n", 108 | " s_ = (s*f)/(s - f)\n", 109 | " M *= (- s_/s)\n", 110 | " s = d - s_\n", 111 | " s_ = (s*f)/(s - f)\n", 112 | " M *= (- s_/s)\n", 113 | " if s_ > 0 and abs(s_ - s6_) < eps and 0.0025 <= M <= 0.0175 :\n", 114 | " print(\"f = {}, d = {} | M = {} s6' = {}\".format(f, d, M, s_))\n", 115 | " print()\n" 116 | ], 117 | "execution_count": 30, 118 | "outputs": [ 119 | { 120 | "output_type": "stream", 121 | "text": [ 122 | "f = 0.018482482482482486, d = 0.04955855855855856 | M = 0.002500647269164471 s6' = 0.014992494277304305\n", 123 | "\n", 124 | "f = 0.027972972972972975, d = 0.013752752752752753 | M = 0.00251272122616987 s6' = 0.014998450982302692\n", 125 | "\n", 126 | "f = 0.028472472472472476, d = 0.014096096096096099 | M = 0.0025480223399558383 s6' = 0.014992195520651045\n", 127 | "\n", 128 | "f = 0.029970970970970973, d = 0.015126126126126127 | M = 0.002658079589558576 s6' = 0.014991941720963981\n", 129 | "\n", 130 | "f = 0.030470470470470475, d = 0.01546946946946947 | M = 0.0026959786938543125 s6' = 0.014996918441472525\n", 131 | "\n", 132 | "f = 0.030969969969969972, d = 0.015812812812812813 | M = 0.0027344123547398407 s6' = 0.015003971103108258\n", 133 | "\n", 134 | "f = 0.035465465465465466, d = 0.018951951951951953 | M = 0.0030983451908968645 s6' = 0.015006694887980053\n", 135 | "\n", 136 | "f = 0.03846246246246247, d = 0.021061061061061065 | M = 0.0033566525237045375 s6' = 0.015006911322839924\n", 137 | "\n", 138 | "f = 0.04095995995995996, d = 0.02282682682682683 | M = 0.003579220890589726 s6' = 0.014997440093085606\n", 139 | "\n", 140 | "f = 0.04345745745745746, d = 0.024592592592592596 | M = 0.0038071407721480513 s6' = 0.01499217432278168\n", 141 | "\n", 142 | "f = 0.048951951951951955, d = 0.02846746746746747 | M = 0.004322477677894994 s6' = 0.015005819112487311\n", 143 | "\n", 144 | "f = 0.05144944944944945, d = 0.030233233233233237 | M = 0.004562048892374708 s6' = 0.014998084845735213\n", 145 | "\n", 146 | "f = 0.05444644644644645, d = 0.032342342342342345 | M = 0.00485221946529152 s6' = 0.015009692902572432\n", 147 | "\n", 148 | "f = 0.05694394394394395, d = 0.03410810810810811 | M = 0.005097005357182425 s6' = 0.01499545976652344\n", 149 | "\n", 150 | "f = 0.05994094094094095, d = 0.03621721721721722 | M = 0.005392418778417184 s6' = 0.014999067647115399\n", 151 | "\n", 152 | "f = 0.06293793793793794, d = 0.03832632632632633 | M = 0.005690105914333118 s6' = 0.014998395524837038\n", 153 | "\n", 154 | "f = 0.06593493493493494, d = 0.04043543543543544 | M = 0.005989773672436927 s6' = 0.01499363033815054\n", 155 | "\n", 156 | "f = 0.06943143143143143, d = 0.042887887887887895 | M = 0.006340673341578781 s6' = 0.015004557494702538\n", 157 | "\n", 158 | "f = 0.07242842842842843, d = 0.044996996996997 | M = 0.0066438089328417545 s6' = 0.014991986659295697\n", 159 | "\n", 160 | "f = 0.07592492492492493, d = 0.047449449449449455 | M = 0.0069981657693731795 s6' = 0.014994924170007447\n", 161 | "\n", 162 | "f = 0.07942142142142143, d = 0.049901901901901906 | M = 0.007354039172375557 s6' = 0.014994289981138146\n", 163 | "\n" 164 | ], 165 | "name": "stdout" 166 | } 167 | ] 168 | }, 169 | { 170 | "cell_type": "code", 171 | "metadata": { 172 | "id": "brXXjy3GH2tm" 173 | }, 174 | "source": [ 175 | "def plot_lens(x, xi):\n", 176 | " colors = ['r', 'black', 'k', 'blue', 'g', 'y']\n", 177 | " lens = [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\"]\n", 178 | " fig, ax = plt.subplots(figsize = (14,8))\n", 179 | " for i in range(6):\n", 180 | " ax.axvline(x = x[i], color = colors[i])\n", 181 | " ax.axvline(x = xi[i], color = colors[i])\n", 182 | " ax.legend(lens)\n" 183 | ], 184 | "execution_count": 31, 185 | "outputs": [] 186 | }, 187 | { 188 | "cell_type": "markdown", 189 | "metadata": { 190 | "id": "bXiBvL10UHFc" 191 | }, 192 | "source": [ 193 | "# METHOD 2.2 (Flerackers (1984))\n", 194 | "\n", 195 | "### step 1\n", 196 | "* $x_j = $ the distance of the j-th lens from the initial object $x_0 = 0$\n", 197 | "* $x_{i_{j}} = $ the distance of the image of the j-th lens from the initial object $x_0 = 0$\n", 198 | "* $s_j$ = the distance of the j-th lens from the respective object that concerns this lens.\n", 199 | "* $s_j'$ = the distance of the j-th lens from the respective image that concerns this lens.\n", 200 | "\n", 201 | "### step 2\n", 202 | "Let's find the parameters $A_i, B_i, C_i$ for for all 6 lenses.\n", 203 | "\n", 204 | "$$A_1 = x_1 ^2 \\quad A_2 = x_2 ^2 \\quad A_3 = x_3 ^2 \\quad A_4 = x_4 ^2 \\quad A_5 = x_5 ^5 \\quad A_6 = x_6 ^2 $$\n", 205 | "$$B_1 = x_1 + f \\quad B_2 = x_2 + f \\quad B_3 = x_3 + f \\quad B_4 = x_4 + f \\quad B_5 = x_5 + f \\quad B_6 = x_6 + f$$\n", 206 | "$$C_1 = x_1 - f \\quad C_2 = x_2 - f \\quad C_3 = x_3 - f \\quad C_4 = x_4 - f \\quad C_5 = x_5 - f \\quad C_6 = x_6 - f$$\n", 207 | "\n", 208 | "\\\\\n", 209 | "\n", 210 | "$$A_{12} = \\frac{A_{2}C_{1} - A_{1}B_{2}}{C_{2} - B_{1}} \\qquad B_{12} = \\frac{-B_{1}B_{2} + A_{2}}{C_{2} - B_{1}} \\qquad C_{12} = \\frac{C_{1}C_{2} - A_{1}}{C_{2} - B_{1}} $$\n", 211 | "\n", 212 | "\n", 213 | "\\\\\n", 214 | "\n", 215 | "$$A_{123} = \\frac{A_{3}C_{12} - A_{12}B_{3}}{C_{3} - B_{12}} \\qquad B_{123} = \\frac{-B_{12}B_{2} + A_{3}}{C_{3} - B_{12}} \\qquad C_{123} = \\frac{C_{12}C_{3} - A_{12}}{C_{3} - B_{12}} $$\n", 216 | "\n", 217 | "\n", 218 | "\n", 219 | "\n", 220 | "\\\\\n", 221 | "\n", 222 | "$$A_{1234} = \\frac{A_{3}C_{123} - A_{123}B_{4}}{C_{4} - B_{123}} \\qquad B_{1234} = \\frac{-B_{123}B_{4} + A_{4}}{C_{4} - B_{123}} \\qquad C_{1234} = \\frac{C_{123}C_{4} - A_{123}}{C_{4} - B_{123}} $$\n", 223 | "\n", 224 | "\n", 225 | "\n", 226 | "\\\\\n", 227 | "\n", 228 | "$$A_{12345} = \\frac{A_{5}C_{1234} - A_{1234}B_{5}}{C_{5} - B_{1234}} \\qquad B_{12345} = \\frac{-B_{1234}B_{5} + A_{5}}{C_{5} - B_{1234}} \\qquad C_{12345} = \\frac{C_{1234}C_{5} - A_{1234}}{C_{5} - B_{1234}} $$\n", 229 | "\n", 230 | "\\\\\n", 231 | "\n", 232 | "$$A_{123456} = \\frac{A_{6}C_{12345} - A_{12345}B_{6}}{C_{6} - B_{12345}} \\qquad B_{123456} = \\frac{-B_{12345}B_{6} + A_{6}}{C_{6} - B_{12345}} \\qquad C_{123456} = \\frac{C_{12345}C_{6} - A_{12345}}{C_{6} - B_{12345}} $$\n", 233 | "\n", 234 | "\n", 235 | "### step 3\n", 236 | "Let's calculate the $s_{j},s_{j}'$ based on the positions given $x, x_i$\n", 237 | "\n", 238 | "\n", 239 | "$$ x_{i_{1}} = \\frac{A_{1}}{C_{1}} \\quad s_{1} = x_{1} \\quad s_{1}' = x_{i_{1}} - x_{1}$$\n", 240 | "\n", 241 | "\\\\\n", 242 | "$$ x_{i_{2}} = \\frac{A_{12}}{C_{12}} \\quad s_{2} = x_{2} - x_{i_{1}} \\quad s_{2}' = x_{i_{2}} - x_{2}$$\n", 243 | "\n", 244 | "\\\\\n", 245 | "$$ x_{i_{3}} = \\frac{A_{123}}{C_{123}} \\quad s_{3} = x_{3} - x_{i_{2}} \\quad s_{3}' = x_{i_{3}} - x_{3}$$\n", 246 | "\n", 247 | "\n", 248 | "\\\\\n", 249 | "$$ x_{i_{4}} = \\frac{A_{1234}}{C_{1234}} \\quad s_{4} = x_{4} - x_{i_{3}} \\quad s_{4}' = x_{i_{4}} - x_{4}$$\n", 250 | "\n", 251 | "\n", 252 | "\\\\\n", 253 | "$$ x_{i_{5}} = \\frac{A_{12345}}{C_{12345}} \\quad s_{5} = x_{5} - x_{i_{4}} \\quad s_{5}' = x_{i_{5}} - x_{5}$$\n", 254 | "\n", 255 | "\\\\\n", 256 | "$$ x_{i_{6}} = \\frac{A_{123456}}{C_{123456}} \\quad s_{6} = x_{6} - x_{i_{5}} \\quad s_{6}' = x_{i_{6}} - x_{6}$$\n" 257 | ] 258 | }, 259 | { 260 | "cell_type": "code", 261 | "metadata": { 262 | "id": "Jsz3KQkB54m3", 263 | "colab": { 264 | "base_uri": "https://localhost:8080/" 265 | }, 266 | "outputId": "cddd6cb0-2ae1-42f1-fe0a-a25c1efa727f" 267 | }, 268 | "source": [ 269 | "eps = 1e-5\n", 270 | "n = 6\n", 271 | "s1 = 8; s6_ = 0.015; \n", 272 | "F = np.linspace(0.001, 0.5, 1000)\n", 273 | "D = np.linspace(0.001, 0.05, 1000)\n", 274 | "Ss2 = []\n", 275 | "Ms2 = []\n", 276 | "\n", 277 | "for f in F :\n", 278 | " for d in D:\n", 279 | " x = [s1 + i * d for i in range(6)]\n", 280 | " xi, s, s_ = [0] * 6, [0] * 6, [0] * 6\n", 281 | " A = [i ** 2 for i in x]\n", 282 | " B = [i + f for i in x]\n", 283 | " C = [i - f for i in x] \n", 284 | "\n", 285 | " xi[0] = A[0]/C[0]; s[0] = x[0]; s_[0] = xi[0] - x[0]\n", 286 | "\n", 287 | " A_ = (A[1]*C[0] - A[0]*B[1]) / (C[1] - B[0])\n", 288 | " B_ = (-B[1]*B[0] + A[1]) / (C[1] - B[0])\n", 289 | " C_ = (C[1]*C[0] - A[0]) / (C[1] - B[0])\n", 290 | "\n", 291 | " xi[1] = A_/C_; s[1] = x[1] - xi[0]; s_[1] = xi[1] - x[1]\n", 292 | "\n", 293 | " M = (-s_[0]/s[0]) * (-s_[1]/s[1])\n", 294 | "\n", 295 | " for i in range(2, 6) :\n", 296 | " den = C[i] - B_\n", 297 | " A_old = A_\n", 298 | " A_ = (A[i] * C_ - A_old * B[i]) / den\n", 299 | " B_ = (-B[i]*B_ + A[i]) / den\n", 300 | " C_ = (C[i]*C_ - A_old) / den\n", 301 | " xi[i] = A_/C_; s[i] = x[i] - xi[i-1]; s_[i] = xi[i] - x[i]\n", 302 | " M *= (-s_[i]/s[i])\n", 303 | " Ms2.append(M)\n", 304 | "\n", 305 | " if abs(s_[5] - s6_) < eps and 0.0025 <= M <= 0.0175 : \n", 306 | " print(\"f = {}, d = {} | M = {} s6' = {}\".format(f, d, M, s_[5]))\n", 307 | " print()\n" 308 | ], 309 | "execution_count": 32, 310 | "outputs": [ 311 | { 312 | "output_type": "stream", 313 | "text": [ 314 | "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:19: RuntimeWarning: divide by zero encountered in double_scalars\n", 315 | "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:20: RuntimeWarning: divide by zero encountered in double_scalars\n", 316 | "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:21: RuntimeWarning: divide by zero encountered in double_scalars\n", 317 | "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:23: RuntimeWarning: invalid value encountered in double_scalars\n", 318 | "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:30: RuntimeWarning: invalid value encountered in double_scalars\n", 319 | "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:31: RuntimeWarning: invalid value encountered in double_scalars\n", 320 | "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:32: RuntimeWarning: invalid value encountered in double_scalars\n" 321 | ], 322 | "name": "stderr" 323 | }, 324 | { 325 | "output_type": "stream", 326 | "text": [ 327 | "f = 0.018482482482482486, d = 0.04955855855855856 | M = 0.002500647268762391 s6' = 0.014992494277839441\n", 328 | "\n" 329 | ], 330 | "name": "stdout" 331 | }, 332 | { 333 | "output_type": "stream", 334 | "text": [ 335 | "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:30: RuntimeWarning: divide by zero encountered in double_scalars\n", 336 | "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:31: RuntimeWarning: divide by zero encountered in double_scalars\n", 337 | "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:32: RuntimeWarning: divide by zero encountered in double_scalars\n", 338 | "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:33: RuntimeWarning: invalid value encountered in double_scalars\n" 339 | ], 340 | "name": "stderr" 341 | }, 342 | { 343 | "output_type": "stream", 344 | "text": [ 345 | "f = 0.027972972972972975, d = 0.013752752752752753 | M = 0.0025127212259423684 s6' = 0.014998450982313116\n", 346 | "\n", 347 | "f = 0.028472472472472476, d = 0.014096096096096099 | M = 0.002548022339952563 s6' = 0.01499219552075104\n", 348 | "\n", 349 | "f = 0.029970970970970973, d = 0.015126126126126127 | M = 0.0026580795895398256 s6' = 0.014991941720829516\n", 350 | "\n", 351 | "f = 0.030470470470470475, d = 0.01546946946946947 | M = 0.002695978694031383 s6' = 0.014996918441468665\n", 352 | "\n", 353 | "f = 0.030969969969969972, d = 0.015812812812812813 | M = 0.0027344123545528696 s6' = 0.015003971103270786\n", 354 | "\n", 355 | "f = 0.035465465465465466, d = 0.018951951951951953 | M = 0.0030983451909001886 s6' = 0.015006694887995664\n", 356 | "\n", 357 | "f = 0.03846246246246247, d = 0.021061061061061065 | M = 0.003356652523781279 s6' = 0.015006911322776872\n", 358 | "\n", 359 | "f = 0.04095995995995996, d = 0.02282682682682683 | M = 0.0035792208906829715 s6' = 0.01499744009304571\n", 360 | "\n", 361 | "f = 0.04345745745745746, d = 0.024592592592592596 | M = 0.0038071407721130537 s6' = 0.014992174322834728\n", 362 | "\n", 363 | "f = 0.048951951951951955, d = 0.02846746746746747 | M = 0.004322477677910882 s6' = 0.01500581911228771\n", 364 | "\n", 365 | "f = 0.05144944944944945, d = 0.030233233233233237 | M = 0.004562048892458111 s6' = 0.014998084845888826\n", 366 | "\n", 367 | "f = 0.05444644644644645, d = 0.032342342342342345 | M = 0.004852219465221837 s6' = 0.015009692902717475\n", 368 | "\n", 369 | "f = 0.05694394394394395, d = 0.03410810810810811 | M = 0.005097005357128177 s6' = 0.014995459766495856\n", 370 | "\n", 371 | "f = 0.05994094094094095, d = 0.03621721721721722 | M = 0.005392418778330534 s6' = 0.014999067646931152\n", 372 | "\n", 373 | "f = 0.06293793793793794, d = 0.03832632632632633 | M = 0.005690105914379757 s6' = 0.014998395524866481\n", 374 | "\n", 375 | "f = 0.06593493493493494, d = 0.04043543543543544 | M = 0.005989773672397122 s6' = 0.01499363033802581\n", 376 | "\n", 377 | "f = 0.06943143143143143, d = 0.042887887887887895 | M = 0.0063406733415927565 s6' = 0.01500455749474483\n", 378 | "\n", 379 | "f = 0.07242842842842843, d = 0.044996996996997 | M = 0.006643808932882618 s6' = 0.014991986659435241\n", 380 | "\n", 381 | "f = 0.07592492492492493, d = 0.047449449449449455 | M = 0.00699816576932952 s6' = 0.01499492416992787\n", 382 | "\n", 383 | "f = 0.07942142142142143, d = 0.049901901901901906 | M = 0.007354039172421884 s6' = 0.014994289981370201\n", 384 | "\n" 385 | ], 386 | "name": "stdout" 387 | } 388 | ] 389 | }, 390 | { 391 | "cell_type": "code", 392 | "metadata": { 393 | "id": "8E-qEKea54t1" 394 | }, 395 | "source": [ 396 | "" 397 | ], 398 | "execution_count": 32, 399 | "outputs": [] 400 | }, 401 | { 402 | "cell_type": "code", 403 | "metadata": { 404 | "id": "Gju1SKV754xB" 405 | }, 406 | "source": [ 407 | "" 408 | ], 409 | "execution_count": 32, 410 | "outputs": [] 411 | }, 412 | { 413 | "cell_type": "code", 414 | "metadata": { 415 | "id": "Ue93GZy654zF" 416 | }, 417 | "source": [ 418 | "" 419 | ], 420 | "execution_count": 32, 421 | "outputs": [] 422 | }, 423 | { 424 | "cell_type": "code", 425 | "metadata": { 426 | "id": "DDqTfcYF541M" 427 | }, 428 | "source": [ 429 | "" 430 | ], 431 | "execution_count": 32, 432 | "outputs": [] 433 | } 434 | ] 435 | } -------------------------------------------------------------------------------- /Physics/Optics/paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jimmyg1997/Python-Computational-Natural-Sciences/f1b263abfcb11e5cd5e6be33ad3b7b52985b9cda/Physics/Optics/paper.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 🔬Python-Computational-Natural-Sciences 2 |
4
3 | 4 | 5 | ## Getting Started 6 | The Jupyter notebooks are accessible in various ways 7 | 8 | * Online as [static web pages](https://nbviewer.jupyter.org) 9 | * Online for interactive usage with binder 10 | * Local for interactive usage on the user's computer by cloning / downloading the repository from https://github.com/jimmyg1997/Python-Computational-Natural-Sciences 11 | * Other online services (e.g. Google Colaboratory, Microsoft Azure, ...) provide environments for interactive execution of Jupyter notebooks as well. Local execution on your computer requires a local Jupyter/IPython installation. 12 | 13 | 14 | ## Concept 15 | 16 | [**Natural science**](https://www.wikiwand.com/en/Natural_science) is a branch of science concerned with the description, prediction, and understanding of natural phenomena, based on empirical evidence from observation and experimentation. 17 | 18 | Natural science can be divided into two main branches: *life science* and *physical science*. Life science is alternatively known as **biology**, and physical science is subdivided into branches: **physics, chemistry, Earth science, and astronomy**. 19 | 20 | The present notebooks cover fundamental aspects of **physics, chemistry and biology**. A focus is laid on a mathematical treatise. The discussion of the mathematical background is important to understand the underlying principles in a more general manner. 21 | 22 | ### 1. BIOLOGY CONTENTS 23 | 24 | The areas of Biology covered will be : 25 | 26 | * **Multi-omics integration** 27 | * **Proteomics** 28 | * **Generative models** 29 | * **Genomics** 30 | * **Variant calling** 31 | * **Gene expression** 32 | * **Imaging and gene expression** 33 | * **Predicting enhancers and regulatory regions** 34 | * **Non-coding RNA** 35 | * **Single-cell applications** 36 | * **Population genetics** 37 | * **Systems biology** 38 | * **Neuroscience** 39 | 40 | 41 | ### 2. PHYSICS CONTENTS 42 | 43 | The areas of Physics covered will be : 44 | * **Classical mechanics** 45 | * *Newton's laws of motion* 46 | * *Lagrangian mechanics* 47 | * *Hamiltonian mechanics* 48 | * *Kinematics* 49 | * *Statics* 50 | * *Dynamics* 51 | * *Chaos Theory* 52 | * *Acoustics* 53 | * *Fluid dynamics* 54 | * *Continuum mechanics* 55 | * **Electromagnetism** 56 | * *Electrostatics* 57 | * *Electrodynamics* 58 | * *Electricity* 59 | * *Magnetism* 60 | * *Magnetostatics* 61 | * *Maxwell's equations* 62 | * *Optics* 63 | * **Thermodynamics& statistical mechanics** 64 | * *Heat engine* 65 | * *Kinetic theory* 66 | * **Quantum mechanics** 67 | * *Path integral formulation* 68 | * *Scattering theory* 69 | * *Schrödinger equation* 70 | * *Quantum field theory* 71 | * *Quantum statistical mechanics* 72 | * **Relativity Special relativity** 73 | * *General relativity* 74 | * *Einstein field equations* 75 | 76 | ### 3. PHYSICS CONTENTS 77 | 78 | The areas of Chemistry covered will be : 79 | 80 | * **Physical chemistry** 81 | * **Organic chemistry** 82 | * **Inorganic chemistry** 83 | * **Analytical chemistry** 84 | * **Biochemistry** 85 | 86 | ## Topics covered so far 87 | 88 | ### 1. BIOLOGY 89 | ### 2. PHYSICS 90 | * **Electromagnetism** 91 | * *Optics* : The study of how light behaves with **mirrors (reflect light), lenses (bend light), prisms (seperate light)** 92 |
5
93 | ### 3. CHEMISTRY 94 | 95 | 96 | 97 | 98 | ## Libraries used 🚧 99 | ### BIOLOGY 100 | ### PHYSICS 101 | ### CHEMISTRY 102 | 103 | 104 | --------------------------------------------------------------------------------