├── 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 | 
14 |
15 |
16 |
17 |

18 |
19 |
20 |
21 |
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 | "
\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 |
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 |
93 | ### 3. CHEMISTRY
94 |
95 |
96 |
97 |
98 | ## Libraries used 🚧
99 | ### BIOLOGY
100 | ### PHYSICS
101 | ### CHEMISTRY
102 |
103 |
104 |
--------------------------------------------------------------------------------