Added electric field calculations and corrected a bug in the fringe

spacing function
This commit is contained in:
2025-12-06 20:10:21 +00:00
parent 3046f62ce0
commit aa31ce258d
9 changed files with 1096 additions and 667 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -61,9 +61,15 @@
<li> <li>
<a class="function" href="#resistivity">resistivity</a> <a class="function" href="#resistivity">resistivity</a>
</li> </li>
<li>
<a class="function" href="#electric_field_strength_two_points">electric_field_strength_two_points</a>
</li>
<li> <li>
<a class="function" href="#fringe_spacing">fringe_spacing</a> <a class="function" href="#fringe_spacing">fringe_spacing</a>
</li> </li>
<li>
<a class="function" href="#diffraction_grating_wavelength">diffraction_grating_wavelength</a>
</li>
</ul> </ul>
@@ -88,7 +94,7 @@
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">random</span> <div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">random</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">math</span> </span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">math</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a> </span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="c1"># Generic</span> </span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="c1"># Mechanics</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="k">def</span><span class="w"> </span><span class="nf">kinetic_energy</span><span class="p">(</span><span class="n">max_mass</span><span class="o">=</span><span class="mi">1000</span><span class="p">,</span> <span class="n">max_vel</span><span class="o">=</span><span class="mi">100</span><span class="p">):</span> </span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="k">def</span><span class="w"> </span><span class="nf">kinetic_energy</span><span class="p">(</span><span class="n">max_mass</span><span class="o">=</span><span class="mi">1000</span><span class="p">,</span> <span class="n">max_vel</span><span class="o">=</span><span class="mi">100</span><span class="p">):</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&quot;&quot;&quot;Kinetic Energy calculation using Ek = 0.5 * m * v^2</span> </span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&quot;&quot;&quot;Kinetic Energy calculation using Ek = 0.5 * m * v^2</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a> </span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a>
@@ -106,7 +112,7 @@
</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a> <span class="k">return</span> <span class="n">problem</span><span class="p">,</span> <span class="n">solution</span> </span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a> <span class="k">return</span> <span class="n">problem</span><span class="p">,</span> <span class="n">solution</span>
</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a> </span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a>
</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a> </span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a>
</span><span id="L-22"><a href="#L-22"><span class="linenos">22</span></a><span class="c1"># Electricity</span> </span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</span></a><span class="c1"># Electricity &amp; Electric Fields</span>
</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a><span class="k">def</span><span class="w"> </span><span class="nf">potential_dividers</span><span class="p">(</span><span class="n">max_vin</span><span class="o">=</span><span class="mi">50</span><span class="p">,</span> <span class="n">max_resistance</span><span class="o">=</span><span class="mi">500</span><span class="p">):</span> </span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a><span class="k">def</span><span class="w"> </span><span class="nf">potential_dividers</span><span class="p">(</span><span class="n">max_vin</span><span class="o">=</span><span class="mi">50</span><span class="p">,</span> <span class="n">max_resistance</span><span class="o">=</span><span class="mi">500</span><span class="p">):</span>
</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&quot;&quot;&quot;Potential Divider question using Vout = (Vin * R2) / (R2 + R1)</span> </span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&quot;&quot;&quot;Potential Divider question using Vout = (Vin * R2) / (R2 + R1)</span>
</span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a> </span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a>
@@ -151,22 +157,81 @@
</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a> </span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a>
</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> <span class="k">return</span> <span class="n">problem</span><span class="p">,</span> <span class="n">solution</span> </span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> <span class="k">return</span> <span class="n">problem</span><span class="p">,</span> <span class="n">solution</span>
</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> </span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a>
</span><span id="L-67"><a href="#L-67"><span class="linenos">67</span></a><span class="c1"># Waves</span> </span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a><span class="k">def</span><span class="w"> </span><span class="nf">electric_field_strength_two_points</span><span class="p">(</span><span class="n">max_seperation_cm</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span> <span class="n">max_charge_uC</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
</span><span id="L-68"><a href="#L-68"><span class="linenos">68</span></a><span class="k">def</span><span class="w"> </span><span class="nf">fringe_spacing</span><span class="p">(</span><span class="n">max_screen_distance</span><span class="o">=</span><span class="mi">30</span><span class="p">,</span> <span class="n">max_slit_spacing_mm</span><span class="o">=</span><span class="mi">100</span><span class="p">):</span> </span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&quot;&quot;&quot;Calculate the total electric field strength at point P with given points A and B, using the equation kQ/r²</span>
</span><span id="L-69"><a href="#L-69"><span class="linenos">69</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&quot;&quot;&quot;Calculate the fringe spacing in a double slit experiment with w=(λD)/s</span> </span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a>
</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a><span class="sd"> | Ex. Problem | Ex. Solution |</span> </span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a><span class="sd"> | Ex. Problem | Ex. Solution |</span>
</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a><span class="sd"> | --- | --- |</span> </span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a><span class="sd"> | --- | --- |</span>
</span><span id="L-72"><a href="#L-72"><span class="linenos">72</span></a><span class="sd"> | A laser with a wavelength of $450nm$ is shone through a double slit system to produce an interference pattern on a screen. The screen is $12m$ from the slits and the slits are $0.30mm$ apart. Calculate the spacing between the bright fringes. | Using the equation $\\frac{{\\lambda D}}{{s}}$, we get a fringe spacing of $0.018m$ |</span> </span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a><span class="sd"> | Charges A and B and point P are arranged like this: B &lt;-- 7 cm --&gt; P &lt;-- 79 cm --&gt; A, Where A and B have charges of -56 µC and -410 µC, What is the electric field strength at point P? | $-751417824 NC^{-1}$ (to the right) |</span>
</span><span id="L-73"><a href="#L-73"><span class="linenos">73</span></a><span class="sd"> &quot;&quot;&quot;</span> </span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a>
</span><span id="L-74"><a href="#L-74"><span class="linenos">74</span></a> <span class="n">wavelength_nm</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">380</span><span class="p">,</span><span class="mi">750</span><span class="p">)</span> <span class="c1"># Random wavelength between violet and red (nm)</span> </span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-75"><a href="#L-75"><span class="linenos">75</span></a> <span class="n">screen_distance</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">max_screen_distance</span><span class="p">)</span> <span class="c1"># Random distance between screen and slits (m)</span> </span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="n">a_charge</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="o">-</span><span class="n">max_charge_uC</span><span class="p">,</span><span class="n">max_charge_uC</span><span class="p">)</span>
</span><span id="L-76"><a href="#L-76"><span class="linenos">76</span></a> <span class="n">slit_spacing_mm</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">max_slit_spacing_mm</span><span class="p">)</span> <span class="c1"># Random slit spacing (mm)</span> </span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="n">b_charge</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="o">-</span><span class="n">max_charge_uC</span><span class="p">,</span><span class="n">max_charge_uC</span><span class="p">)</span>
</span><span id="L-77"><a href="#L-77"><span class="linenos">77</span></a> </span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> <span class="n">arrangement</span> <span class="o">=</span> <span class="p">[[</span><span class="s1">&#39;P&#39;</span><span class="p">],[</span><span class="s1">&#39;A&#39;</span><span class="p">,</span><span class="n">a_charge</span><span class="p">],[</span><span class="s1">&#39;B&#39;</span><span class="p">,</span><span class="n">b_charge</span><span class="p">]]</span> <span class="c1"># Arrangement of charge A, B and the point of focus</span>
</span><span id="L-78"><a href="#L-78"><span class="linenos">78</span></a> <span class="n">fringe_spacing</span> <span class="o">=</span> <span class="nb">round</span><span class="p">((((</span><span class="n">wavelength_nm</span> <span class="o">*</span> <span class="mi">10</span><span class="o">**-</span><span class="mi">9</span><span class="p">)</span> <span class="o">*</span> <span class="n">screen_distance</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="n">slit_spacing_mm</span> <span class="o">*</span> <span class="mi">10</span><span class="o">**-</span><span class="mi">3</span><span class="p">)),</span><span class="mi">5</span><span class="p">)</span> </span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="n">random</span><span class="o">.</span><span class="n">shuffle</span><span class="p">(</span><span class="n">arrangement</span><span class="p">)</span>
</span><span id="L-79"><a href="#L-79"><span class="linenos">79</span></a> </span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="n">seperations</span> <span class="o">=</span> <span class="p">[</span><span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">max_seperation_cm</span><span class="p">),</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">max_seperation_cm</span><span class="p">)]</span>
</span><span id="L-80"><a href="#L-80"><span class="linenos">80</span></a> <span class="n">problem</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;A laser with a wavelength of $</span><span class="si">{</span><span class="n">wavelength_nm</span><span class="si">}</span><span class="s2">nm$ is shone through a double slit system to produce an interference pattern on a screen. The screen is $</span><span class="si">{</span><span class="n">screen_distance</span><span class="si">}</span><span class="s2">m$ from the slits and the slits are $</span><span class="si">{</span><span class="n">slit_spacing_mm</span><span class="si">}</span><span class="s2">mm$ apart. Calculate the spacing between the bright fringes.&quot;</span> </span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> <span class="n">total_efs</span> <span class="o">=</span> <span class="mi">0</span>
</span><span id="L-81"><a href="#L-81"><span class="linenos">81</span></a> <span class="n">solution</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Using the equation $</span><span class="se">\\</span><span class="s2">frac</span><span class="se">{{\\</span><span class="s2">lambda D</span><span class="se">}}{{</span><span class="s2">s</span><span class="se">}}</span><span class="s2">$, we get a fringe spacing of $</span><span class="si">{</span><span class="n">fringe_spacing</span><span class="si">}</span><span class="s2">m$&quot;</span> </span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="c1"># Work out how far A and B are from P (vector)</span>
</span><span id="L-82"><a href="#L-82"><span class="linenos">82</span></a> <span class="k">return</span> <span class="n">problem</span><span class="p">,</span> <span class="n">solution</span> </span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="k">if</span> <span class="n">arrangement</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;P&#39;</span><span class="p">:</span>
</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="n">arrangement</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">seperations</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="n">arrangement</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">seperations</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="n">seperations</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="k">elif</span> <span class="n">arrangement</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;P&#39;</span><span class="p">:</span>
</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="n">arrangement</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="o">-</span><span class="n">seperations</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="n">arrangement</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">seperations</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="n">arrangement</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="o">-</span><span class="p">(</span><span class="n">seperations</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="n">seperations</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span>
</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="n">arrangement</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="o">-</span><span class="n">seperations</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a>
</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="c1"># Work out the EFS at point P caused by A and B seperatley, then sum them together in `total_efs`</span>
</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="k">for</span> <span class="n">point</span> <span class="ow">in</span> <span class="n">arrangement</span><span class="p">:</span>
</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="k">if</span> <span class="n">point</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;P&#39;</span><span class="p">:</span>
</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="k">continue</span>
</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="n">efs</span> <span class="o">=</span> <span class="p">((</span><span class="mf">8.99</span><span class="o">*</span><span class="mi">10</span><span class="o">**</span><span class="mi">9</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">point</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">*</span><span class="mi">10</span><span class="o">**-</span><span class="mi">6</span><span class="p">))</span><span class="o">/</span><span class="p">((</span><span class="n">point</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">/</span><span class="mi">100</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span> <span class="c1"># efs = kQ/r²</span>
</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="k">if</span> <span class="n">point</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span> <span class="n">efs</span> <span class="o">=</span> <span class="o">-</span><span class="n">efs</span>
</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="n">point</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">efs</span><span class="p">)</span>
</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> <span class="n">total_efs</span> <span class="o">+=</span> <span class="n">efs</span>
</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a>
</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="n">problem</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Charges A and B and point P are arranged like this:</span><span class="se">\n</span><span class="si">{</span><span class="n">arrangement</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span><span class="si">}</span><span class="s2"> &lt;-- $</span><span class="si">{</span><span class="n">seperations</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">}</span><span class="s2">$ cm --&gt; </span><span class="si">{</span><span class="n">arrangement</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span><span class="si">}</span><span class="s2"> &lt;-- $</span><span class="si">{</span><span class="n">seperations</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="si">}</span><span class="s2">$ cm --&gt; </span><span class="si">{</span><span class="n">arrangement</span><span class="p">[</span><span class="mi">2</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span><span class="si">}</span><span class="se">\n</span><span class="s2">Where A and B have charges of $</span><span class="si">{</span><span class="n">a_charge</span><span class="si">}</span><span class="s2">$ µC and $</span><span class="si">{</span><span class="n">b_charge</span><span class="si">}</span><span class="s2">$ µC</span><span class="se">\n</span><span class="s2">What is the electric field strength at point P?&quot;</span>
</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="n">solution</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;$</span><span class="si">{</span><span class="nb">round</span><span class="p">(</span><span class="n">total_efs</span><span class="p">)</span><span class="si">}</span><span class="s2"> NC^</span><span class="si">{</span><span class="o">-</span><span class="mi">1</span><span class="si">}</span><span class="s2">$ (to the right)&quot;</span>
</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> <span class="k">return</span> <span class="n">problem</span><span class="p">,</span> <span class="n">solution</span>
</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a>
</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a>
</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a><span class="c1"># Waves</span>
</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a><span class="k">def</span><span class="w"> </span><span class="nf">fringe_spacing</span><span class="p">(</span><span class="n">max_screen_distance</span><span class="o">=</span><span class="mi">30</span><span class="p">,</span> <span class="n">max_slit_spacing_mm</span><span class="o">=</span><span class="mi">100</span><span class="p">):</span>
</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&quot;&quot;&quot;Calculate the fringe spacing in a double slit experiment with w=(λD)/s</span>
</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a><span class="sd"> | Ex. Problem | Ex. Solution |</span>
</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a><span class="sd"> | --- | --- |</span>
</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a><span class="sd"> | A laser with a wavelength of $450nm$ is shone through a double slit system to produce an interference pattern on a screen. The screen is $12m$ from the slits and the slits are $0.30mm$ apart. Calculate the spacing between the bright fringes. | Using the equation $\\frac{{\\lambda D}}{{s}}$, we get a fringe spacing of $0.018m$ |</span>
</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="n">wavelength_nm</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">380</span><span class="p">,</span><span class="mi">750</span><span class="p">)</span> <span class="c1"># Random wavelength between violet and red (nm)</span>
</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="n">screen_distance</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">max_screen_distance</span><span class="p">)</span> <span class="c1"># Random distance between screen and slits (m)</span>
</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="n">slit_spacing_mm</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">max_slit_spacing_mm</span><span class="p">)</span> <span class="c1"># Random slit spacing (mm)</span>
</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a>
</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="n">fringe_spacing</span> <span class="o">=</span> <span class="nb">round</span><span class="p">((((</span><span class="n">wavelength_nm</span> <span class="o">*</span> <span class="mi">10</span><span class="o">**-</span><span class="mi">9</span><span class="p">)</span> <span class="o">*</span> <span class="n">screen_distance</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="n">slit_spacing_mm</span> <span class="o">*</span> <span class="mi">10</span><span class="o">**-</span><span class="mi">3</span><span class="p">)),</span><span class="mi">5</span><span class="p">)</span>
</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a>
</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="n">problem</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;A laser with a wavelength of $</span><span class="si">{</span><span class="n">wavelength_nm</span><span class="si">}</span><span class="s2">nm$ is shone through a double slit system to produce an interference pattern on a screen. The screen is $</span><span class="si">{</span><span class="n">screen_distance</span><span class="si">}</span><span class="s2">m$ from the slits and the slits are $</span><span class="si">{</span><span class="n">slit_spacing_mm</span><span class="si">}</span><span class="s2">mm$ apart. Calculate the spacing between the bright fringes.&quot;</span>
</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="n">solution</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Using the equation $</span><span class="se">\\</span><span class="s2">frac</span><span class="se">{{\\</span><span class="s2">lambda D</span><span class="se">}}{{</span><span class="s2">s</span><span class="se">}}</span><span class="s2">$, we get a fringe spacing of $</span><span class="si">{</span><span class="n">fringe_spacing</span><span class="si">}</span><span class="s2">m$&quot;</span>
</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="k">return</span> <span class="n">problem</span><span class="p">,</span> <span class="n">solution</span>
</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a>
</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a><span class="k">def</span><span class="w"> </span><span class="nf">diffraction_grating_wavelength</span><span class="p">(</span><span class="n">min_slits_per_mm</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span> <span class="n">max_slits_per_mm</span><span class="o">=</span><span class="mi">500</span><span class="p">,</span> <span class="n">max_order_number</span><span class="o">=</span><span class="mi">5</span><span class="p">):</span>
</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&quot;&quot;&quot;Calculate the wavelength when given the number of slits per mm, order number and angle of order using the equation nλ = dsinθ</span>
</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a>
</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a><span class="sd"> | Ex. Problem | Ex. Solution |</span>
</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a><span class="sd"> | --- | --- |</span>
</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a><span class="sd"> | A laser is shone through a diffraction grating which has $293$ lines per mm, the fringe of order number $2$ is at an angle of $0.39$ rad. Calculate the wavelength of the light | $\lambda = 6.487856913364529e-07m = 649nm |</span>
</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a>
</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="n">slits_per_mm</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="n">min_slits_per_mm</span><span class="p">,</span> <span class="n">max_slits_per_mm</span><span class="p">)</span>
</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> <span class="n">slit_spacing</span> <span class="o">=</span> <span class="mi">1</span><span class="o">/</span><span class="p">(</span><span class="n">slits_per_mm</span> <span class="o">*</span> <span class="mi">1000</span><span class="p">)</span>
</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <span class="n">order_number</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">max_order_number</span><span class="p">)</span>
</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <span class="n">angle_of_order</span> <span class="o">=</span> <span class="nb">round</span><span class="p">(</span><span class="n">random</span><span class="o">.</span><span class="n">uniform</span><span class="p">(</span><span class="mf">0.2</span><span class="p">,</span> <span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span><span class="o">-</span><span class="mf">0.2</span><span class="p">),</span><span class="mi">2</span><span class="p">)</span>
</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> <span class="n">wavelength</span> <span class="o">=</span> <span class="p">((</span><span class="n">slit_spacing</span> <span class="o">*</span> <span class="n">math</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">angle_of_order</span><span class="p">))</span> <span class="o">/</span> <span class="n">order_number</span><span class="p">)</span>
</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a>
</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a> <span class="n">problem</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;A laser is shone through a diffraction grating which has $</span><span class="si">{</span><span class="n">slits_per_mm</span><span class="si">}</span><span class="s2">$ lines per mm, the fringe of order number $</span><span class="si">{</span><span class="n">order_number</span><span class="si">}</span><span class="s2">$ is at an angle of $</span><span class="si">{</span><span class="n">angle_of_order</span><span class="si">}</span><span class="s2">$ rad. Calculate the wavelength of the light&quot;</span>
</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a> <span class="n">solution</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;$</span><span class="se">\\</span><span class="s2">lambda = </span><span class="si">{</span><span class="n">wavelength</span><span class="si">}</span><span class="s2">m = </span><span class="si">{</span><span class="nb">round</span><span class="p">(</span><span class="n">wavelength</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">10</span><span class="o">**-</span><span class="mi">9</span><span class="p">)</span><span class="si">}</span><span class="s2">nm$&quot;</span>
</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a>
</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> <span class="k">return</span> <span class="n">problem</span><span class="p">,</span> <span class="n">solution</span>
</span></pre></div> </span></pre></div>
@@ -329,6 +394,78 @@
</div> </div>
</section>
<section id="electric_field_strength_two_points">
<input id="electric_field_strength_two_points-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">electric_field_strength_two_points</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">max_seperation_cm</span><span class="o">=</span><span class="mi">100</span>, </span><span class="param"><span class="n">max_charge_uC</span><span class="o">=</span><span class="mi">1000</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="electric_field_strength_two_points-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#electric_field_strength_two_points"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="electric_field_strength_two_points-68"><a href="#electric_field_strength_two_points-68"><span class="linenos"> 68</span></a><span class="k">def</span><span class="w"> </span><span class="nf">electric_field_strength_two_points</span><span class="p">(</span><span class="n">max_seperation_cm</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span> <span class="n">max_charge_uC</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
</span><span id="electric_field_strength_two_points-69"><a href="#electric_field_strength_two_points-69"><span class="linenos"> 69</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&quot;&quot;&quot;Calculate the total electric field strength at point P with given points A and B, using the equation kQ/r²</span>
</span><span id="electric_field_strength_two_points-70"><a href="#electric_field_strength_two_points-70"><span class="linenos"> 70</span></a>
</span><span id="electric_field_strength_two_points-71"><a href="#electric_field_strength_two_points-71"><span class="linenos"> 71</span></a><span class="sd"> | Ex. Problem | Ex. Solution |</span>
</span><span id="electric_field_strength_two_points-72"><a href="#electric_field_strength_two_points-72"><span class="linenos"> 72</span></a><span class="sd"> | --- | --- |</span>
</span><span id="electric_field_strength_two_points-73"><a href="#electric_field_strength_two_points-73"><span class="linenos"> 73</span></a><span class="sd"> | Charges A and B and point P are arranged like this: B &lt;-- 7 cm --&gt; P &lt;-- 79 cm --&gt; A, Where A and B have charges of -56 µC and -410 µC, What is the electric field strength at point P? | $-751417824 NC^{-1}$ (to the right) |</span>
</span><span id="electric_field_strength_two_points-74"><a href="#electric_field_strength_two_points-74"><span class="linenos"> 74</span></a>
</span><span id="electric_field_strength_two_points-75"><a href="#electric_field_strength_two_points-75"><span class="linenos"> 75</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="electric_field_strength_two_points-76"><a href="#electric_field_strength_two_points-76"><span class="linenos"> 76</span></a> <span class="n">a_charge</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="o">-</span><span class="n">max_charge_uC</span><span class="p">,</span><span class="n">max_charge_uC</span><span class="p">)</span>
</span><span id="electric_field_strength_two_points-77"><a href="#electric_field_strength_two_points-77"><span class="linenos"> 77</span></a> <span class="n">b_charge</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="o">-</span><span class="n">max_charge_uC</span><span class="p">,</span><span class="n">max_charge_uC</span><span class="p">)</span>
</span><span id="electric_field_strength_two_points-78"><a href="#electric_field_strength_two_points-78"><span class="linenos"> 78</span></a> <span class="n">arrangement</span> <span class="o">=</span> <span class="p">[[</span><span class="s1">&#39;P&#39;</span><span class="p">],[</span><span class="s1">&#39;A&#39;</span><span class="p">,</span><span class="n">a_charge</span><span class="p">],[</span><span class="s1">&#39;B&#39;</span><span class="p">,</span><span class="n">b_charge</span><span class="p">]]</span> <span class="c1"># Arrangement of charge A, B and the point of focus</span>
</span><span id="electric_field_strength_two_points-79"><a href="#electric_field_strength_two_points-79"><span class="linenos"> 79</span></a> <span class="n">random</span><span class="o">.</span><span class="n">shuffle</span><span class="p">(</span><span class="n">arrangement</span><span class="p">)</span>
</span><span id="electric_field_strength_two_points-80"><a href="#electric_field_strength_two_points-80"><span class="linenos"> 80</span></a> <span class="n">seperations</span> <span class="o">=</span> <span class="p">[</span><span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">max_seperation_cm</span><span class="p">),</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">max_seperation_cm</span><span class="p">)]</span>
</span><span id="electric_field_strength_two_points-81"><a href="#electric_field_strength_two_points-81"><span class="linenos"> 81</span></a> <span class="n">total_efs</span> <span class="o">=</span> <span class="mi">0</span>
</span><span id="electric_field_strength_two_points-82"><a href="#electric_field_strength_two_points-82"><span class="linenos"> 82</span></a> <span class="c1"># Work out how far A and B are from P (vector)</span>
</span><span id="electric_field_strength_two_points-83"><a href="#electric_field_strength_two_points-83"><span class="linenos"> 83</span></a> <span class="k">if</span> <span class="n">arrangement</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;P&#39;</span><span class="p">:</span>
</span><span id="electric_field_strength_two_points-84"><a href="#electric_field_strength_two_points-84"><span class="linenos"> 84</span></a> <span class="n">arrangement</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">seperations</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="electric_field_strength_two_points-85"><a href="#electric_field_strength_two_points-85"><span class="linenos"> 85</span></a> <span class="n">arrangement</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">seperations</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="n">seperations</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="electric_field_strength_two_points-86"><a href="#electric_field_strength_two_points-86"><span class="linenos"> 86</span></a> <span class="k">elif</span> <span class="n">arrangement</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;P&#39;</span><span class="p">:</span>
</span><span id="electric_field_strength_two_points-87"><a href="#electric_field_strength_two_points-87"><span class="linenos"> 87</span></a> <span class="n">arrangement</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="o">-</span><span class="n">seperations</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</span><span id="electric_field_strength_two_points-88"><a href="#electric_field_strength_two_points-88"><span class="linenos"> 88</span></a> <span class="n">arrangement</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">seperations</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="electric_field_strength_two_points-89"><a href="#electric_field_strength_two_points-89"><span class="linenos"> 89</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="electric_field_strength_two_points-90"><a href="#electric_field_strength_two_points-90"><span class="linenos"> 90</span></a> <span class="n">arrangement</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="o">-</span><span class="p">(</span><span class="n">seperations</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="n">seperations</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span>
</span><span id="electric_field_strength_two_points-91"><a href="#electric_field_strength_two_points-91"><span class="linenos"> 91</span></a> <span class="n">arrangement</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="o">-</span><span class="n">seperations</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="electric_field_strength_two_points-92"><a href="#electric_field_strength_two_points-92"><span class="linenos"> 92</span></a>
</span><span id="electric_field_strength_two_points-93"><a href="#electric_field_strength_two_points-93"><span class="linenos"> 93</span></a> <span class="c1"># Work out the EFS at point P caused by A and B seperatley, then sum them together in `total_efs`</span>
</span><span id="electric_field_strength_two_points-94"><a href="#electric_field_strength_two_points-94"><span class="linenos"> 94</span></a> <span class="k">for</span> <span class="n">point</span> <span class="ow">in</span> <span class="n">arrangement</span><span class="p">:</span>
</span><span id="electric_field_strength_two_points-95"><a href="#electric_field_strength_two_points-95"><span class="linenos"> 95</span></a> <span class="k">if</span> <span class="n">point</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;P&#39;</span><span class="p">:</span>
</span><span id="electric_field_strength_two_points-96"><a href="#electric_field_strength_two_points-96"><span class="linenos"> 96</span></a> <span class="k">continue</span>
</span><span id="electric_field_strength_two_points-97"><a href="#electric_field_strength_two_points-97"><span class="linenos"> 97</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="electric_field_strength_two_points-98"><a href="#electric_field_strength_two_points-98"><span class="linenos"> 98</span></a> <span class="n">efs</span> <span class="o">=</span> <span class="p">((</span><span class="mf">8.99</span><span class="o">*</span><span class="mi">10</span><span class="o">**</span><span class="mi">9</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">point</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">*</span><span class="mi">10</span><span class="o">**-</span><span class="mi">6</span><span class="p">))</span><span class="o">/</span><span class="p">((</span><span class="n">point</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">/</span><span class="mi">100</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span> <span class="c1"># efs = kQ/r²</span>
</span><span id="electric_field_strength_two_points-99"><a href="#electric_field_strength_two_points-99"><span class="linenos"> 99</span></a> <span class="k">if</span> <span class="n">point</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span> <span class="n">efs</span> <span class="o">=</span> <span class="o">-</span><span class="n">efs</span>
</span><span id="electric_field_strength_two_points-100"><a href="#electric_field_strength_two_points-100"><span class="linenos">100</span></a> <span class="n">point</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">efs</span><span class="p">)</span>
</span><span id="electric_field_strength_two_points-101"><a href="#electric_field_strength_two_points-101"><span class="linenos">101</span></a> <span class="n">total_efs</span> <span class="o">+=</span> <span class="n">efs</span>
</span><span id="electric_field_strength_two_points-102"><a href="#electric_field_strength_two_points-102"><span class="linenos">102</span></a>
</span><span id="electric_field_strength_two_points-103"><a href="#electric_field_strength_two_points-103"><span class="linenos">103</span></a> <span class="n">problem</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Charges A and B and point P are arranged like this:</span><span class="se">\n</span><span class="si">{</span><span class="n">arrangement</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span><span class="si">}</span><span class="s2"> &lt;-- $</span><span class="si">{</span><span class="n">seperations</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">}</span><span class="s2">$ cm --&gt; </span><span class="si">{</span><span class="n">arrangement</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span><span class="si">}</span><span class="s2"> &lt;-- $</span><span class="si">{</span><span class="n">seperations</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="si">}</span><span class="s2">$ cm --&gt; </span><span class="si">{</span><span class="n">arrangement</span><span class="p">[</span><span class="mi">2</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span><span class="si">}</span><span class="se">\n</span><span class="s2">Where A and B have charges of $</span><span class="si">{</span><span class="n">a_charge</span><span class="si">}</span><span class="s2">$ µC and $</span><span class="si">{</span><span class="n">b_charge</span><span class="si">}</span><span class="s2">$ µC</span><span class="se">\n</span><span class="s2">What is the electric field strength at point P?&quot;</span>
</span><span id="electric_field_strength_two_points-104"><a href="#electric_field_strength_two_points-104"><span class="linenos">104</span></a> <span class="n">solution</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;$</span><span class="si">{</span><span class="nb">round</span><span class="p">(</span><span class="n">total_efs</span><span class="p">)</span><span class="si">}</span><span class="s2"> NC^</span><span class="si">{</span><span class="o">-</span><span class="mi">1</span><span class="si">}</span><span class="s2">$ (to the right)&quot;</span>
</span><span id="electric_field_strength_two_points-105"><a href="#electric_field_strength_two_points-105"><span class="linenos">105</span></a> <span class="k">return</span> <span class="n">problem</span><span class="p">,</span> <span class="n">solution</span>
</span></pre></div>
<div class="docstring"><p>Calculate the total electric field strength at point P with given points A and B, using the equation kQ/r²</p>
<table>
<thead>
<tr>
<th>Ex. Problem</th>
<th>Ex. Solution</th>
</tr>
</thead>
<tbody>
<tr>
<td>Charges A and B and point P are arranged like this: B &lt;-- 7 cm --> P &lt;-- 79 cm --> A, Where A and B have charges of -56 µC and -410 µC, What is the electric field strength at point P?</td>
<td>$-751417824 NC^{-1}$ (to the right)</td>
</tr>
</tbody>
</table>
</div>
</section> </section>
<section id="fringe_spacing"> <section id="fringe_spacing">
<input id="fringe_spacing-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <input id="fringe_spacing-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
@@ -341,21 +478,21 @@
</div> </div>
<a class="headerlink" href="#fringe_spacing"></a> <a class="headerlink" href="#fringe_spacing"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="fringe_spacing-69"><a href="#fringe_spacing-69"><span class="linenos">69</span></a><span class="k">def</span><span class="w"> </span><span class="nf">fringe_spacing</span><span class="p">(</span><span class="n">max_screen_distance</span><span class="o">=</span><span class="mi">30</span><span class="p">,</span> <span class="n">max_slit_spacing_mm</span><span class="o">=</span><span class="mi">100</span><span class="p">):</span> <div class="pdoc-code codehilite"><pre><span></span><span id="fringe_spacing-109"><a href="#fringe_spacing-109"><span class="linenos">109</span></a><span class="k">def</span><span class="w"> </span><span class="nf">fringe_spacing</span><span class="p">(</span><span class="n">max_screen_distance</span><span class="o">=</span><span class="mi">30</span><span class="p">,</span> <span class="n">max_slit_spacing_mm</span><span class="o">=</span><span class="mi">100</span><span class="p">):</span>
</span><span id="fringe_spacing-70"><a href="#fringe_spacing-70"><span class="linenos">70</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&quot;&quot;&quot;Calculate the fringe spacing in a double slit experiment with w=(λD)/s</span> </span><span id="fringe_spacing-110"><a href="#fringe_spacing-110"><span class="linenos">110</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&quot;&quot;&quot;Calculate the fringe spacing in a double slit experiment with w=(λD)/s</span>
</span><span id="fringe_spacing-71"><a href="#fringe_spacing-71"><span class="linenos">71</span></a><span class="sd"> | Ex. Problem | Ex. Solution |</span> </span><span id="fringe_spacing-111"><a href="#fringe_spacing-111"><span class="linenos">111</span></a><span class="sd"> | Ex. Problem | Ex. Solution |</span>
</span><span id="fringe_spacing-72"><a href="#fringe_spacing-72"><span class="linenos">72</span></a><span class="sd"> | --- | --- |</span> </span><span id="fringe_spacing-112"><a href="#fringe_spacing-112"><span class="linenos">112</span></a><span class="sd"> | --- | --- |</span>
</span><span id="fringe_spacing-73"><a href="#fringe_spacing-73"><span class="linenos">73</span></a><span class="sd"> | A laser with a wavelength of $450nm$ is shone through a double slit system to produce an interference pattern on a screen. The screen is $12m$ from the slits and the slits are $0.30mm$ apart. Calculate the spacing between the bright fringes. | Using the equation $\\frac{{\\lambda D}}{{s}}$, we get a fringe spacing of $0.018m$ |</span> </span><span id="fringe_spacing-113"><a href="#fringe_spacing-113"><span class="linenos">113</span></a><span class="sd"> | A laser with a wavelength of $450nm$ is shone through a double slit system to produce an interference pattern on a screen. The screen is $12m$ from the slits and the slits are $0.30mm$ apart. Calculate the spacing between the bright fringes. | Using the equation $\\frac{{\\lambda D}}{{s}}$, we get a fringe spacing of $0.018m$ |</span>
</span><span id="fringe_spacing-74"><a href="#fringe_spacing-74"><span class="linenos">74</span></a><span class="sd"> &quot;&quot;&quot;</span> </span><span id="fringe_spacing-114"><a href="#fringe_spacing-114"><span class="linenos">114</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="fringe_spacing-75"><a href="#fringe_spacing-75"><span class="linenos">75</span></a> <span class="n">wavelength_nm</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">380</span><span class="p">,</span><span class="mi">750</span><span class="p">)</span> <span class="c1"># Random wavelength between violet and red (nm)</span> </span><span id="fringe_spacing-115"><a href="#fringe_spacing-115"><span class="linenos">115</span></a> <span class="n">wavelength_nm</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">380</span><span class="p">,</span><span class="mi">750</span><span class="p">)</span> <span class="c1"># Random wavelength between violet and red (nm)</span>
</span><span id="fringe_spacing-76"><a href="#fringe_spacing-76"><span class="linenos">76</span></a> <span class="n">screen_distance</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">max_screen_distance</span><span class="p">)</span> <span class="c1"># Random distance between screen and slits (m)</span> </span><span id="fringe_spacing-116"><a href="#fringe_spacing-116"><span class="linenos">116</span></a> <span class="n">screen_distance</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">max_screen_distance</span><span class="p">)</span> <span class="c1"># Random distance between screen and slits (m)</span>
</span><span id="fringe_spacing-77"><a href="#fringe_spacing-77"><span class="linenos">77</span></a> <span class="n">slit_spacing_mm</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">max_slit_spacing_mm</span><span class="p">)</span> <span class="c1"># Random slit spacing (mm)</span> </span><span id="fringe_spacing-117"><a href="#fringe_spacing-117"><span class="linenos">117</span></a> <span class="n">slit_spacing_mm</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">max_slit_spacing_mm</span><span class="p">)</span> <span class="c1"># Random slit spacing (mm)</span>
</span><span id="fringe_spacing-78"><a href="#fringe_spacing-78"><span class="linenos">78</span></a> </span><span id="fringe_spacing-118"><a href="#fringe_spacing-118"><span class="linenos">118</span></a>
</span><span id="fringe_spacing-79"><a href="#fringe_spacing-79"><span class="linenos">79</span></a> <span class="n">fringe_spacing</span> <span class="o">=</span> <span class="nb">round</span><span class="p">((((</span><span class="n">wavelength_nm</span> <span class="o">*</span> <span class="mi">10</span><span class="o">**-</span><span class="mi">9</span><span class="p">)</span> <span class="o">*</span> <span class="n">screen_distance</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="n">slit_spacing_mm</span> <span class="o">*</span> <span class="mi">10</span><span class="o">**-</span><span class="mi">3</span><span class="p">)),</span><span class="mi">5</span><span class="p">)</span> </span><span id="fringe_spacing-119"><a href="#fringe_spacing-119"><span class="linenos">119</span></a> <span class="n">fringe_spacing</span> <span class="o">=</span> <span class="nb">round</span><span class="p">((((</span><span class="n">wavelength_nm</span> <span class="o">*</span> <span class="mi">10</span><span class="o">**-</span><span class="mi">9</span><span class="p">)</span> <span class="o">*</span> <span class="n">screen_distance</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="n">slit_spacing_mm</span> <span class="o">*</span> <span class="mi">10</span><span class="o">**-</span><span class="mi">3</span><span class="p">)),</span><span class="mi">5</span><span class="p">)</span>
</span><span id="fringe_spacing-80"><a href="#fringe_spacing-80"><span class="linenos">80</span></a> </span><span id="fringe_spacing-120"><a href="#fringe_spacing-120"><span class="linenos">120</span></a>
</span><span id="fringe_spacing-81"><a href="#fringe_spacing-81"><span class="linenos">81</span></a> <span class="n">problem</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;A laser with a wavelength of $</span><span class="si">{</span><span class="n">wavelength_nm</span><span class="si">}</span><span class="s2">nm$ is shone through a double slit system to produce an interference pattern on a screen. The screen is $</span><span class="si">{</span><span class="n">screen_distance</span><span class="si">}</span><span class="s2">m$ from the slits and the slits are $</span><span class="si">{</span><span class="n">slit_spacing_mm</span><span class="si">}</span><span class="s2">mm$ apart. Calculate the spacing between the bright fringes.&quot;</span> </span><span id="fringe_spacing-121"><a href="#fringe_spacing-121"><span class="linenos">121</span></a> <span class="n">problem</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;A laser with a wavelength of $</span><span class="si">{</span><span class="n">wavelength_nm</span><span class="si">}</span><span class="s2">nm$ is shone through a double slit system to produce an interference pattern on a screen. The screen is $</span><span class="si">{</span><span class="n">screen_distance</span><span class="si">}</span><span class="s2">m$ from the slits and the slits are $</span><span class="si">{</span><span class="n">slit_spacing_mm</span><span class="si">}</span><span class="s2">mm$ apart. Calculate the spacing between the bright fringes.&quot;</span>
</span><span id="fringe_spacing-82"><a href="#fringe_spacing-82"><span class="linenos">82</span></a> <span class="n">solution</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Using the equation $</span><span class="se">\\</span><span class="s2">frac</span><span class="se">{{\\</span><span class="s2">lambda D</span><span class="se">}}{{</span><span class="s2">s</span><span class="se">}}</span><span class="s2">$, we get a fringe spacing of $</span><span class="si">{</span><span class="n">fringe_spacing</span><span class="si">}</span><span class="s2">m$&quot;</span> </span><span id="fringe_spacing-122"><a href="#fringe_spacing-122"><span class="linenos">122</span></a> <span class="n">solution</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Using the equation $</span><span class="se">\\</span><span class="s2">frac</span><span class="se">{{\\</span><span class="s2">lambda D</span><span class="se">}}{{</span><span class="s2">s</span><span class="se">}}</span><span class="s2">$, we get a fringe spacing of $</span><span class="si">{</span><span class="n">fringe_spacing</span><span class="si">}</span><span class="s2">m$&quot;</span>
</span><span id="fringe_spacing-83"><a href="#fringe_spacing-83"><span class="linenos">83</span></a> <span class="k">return</span> <span class="n">problem</span><span class="p">,</span> <span class="n">solution</span> </span><span id="fringe_spacing-123"><a href="#fringe_spacing-123"><span class="linenos">123</span></a> <span class="k">return</span> <span class="n">problem</span><span class="p">,</span> <span class="n">solution</span>
</span></pre></div> </span></pre></div>
@@ -378,6 +515,58 @@
</div> </div>
</section>
<section id="diffraction_grating_wavelength">
<input id="diffraction_grating_wavelength-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">diffraction_grating_wavelength</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">min_slits_per_mm</span><span class="o">=</span><span class="mi">100</span>, </span><span class="param"><span class="n">max_slits_per_mm</span><span class="o">=</span><span class="mi">500</span>, </span><span class="param"><span class="n">max_order_number</span><span class="o">=</span><span class="mi">5</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="diffraction_grating_wavelength-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#diffraction_grating_wavelength"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="diffraction_grating_wavelength-125"><a href="#diffraction_grating_wavelength-125"><span class="linenos">125</span></a><span class="k">def</span><span class="w"> </span><span class="nf">diffraction_grating_wavelength</span><span class="p">(</span><span class="n">min_slits_per_mm</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span> <span class="n">max_slits_per_mm</span><span class="o">=</span><span class="mi">500</span><span class="p">,</span> <span class="n">max_order_number</span><span class="o">=</span><span class="mi">5</span><span class="p">):</span>
</span><span id="diffraction_grating_wavelength-126"><a href="#diffraction_grating_wavelength-126"><span class="linenos">126</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">&quot;&quot;&quot;Calculate the wavelength when given the number of slits per mm, order number and angle of order using the equation nλ = dsinθ</span>
</span><span id="diffraction_grating_wavelength-127"><a href="#diffraction_grating_wavelength-127"><span class="linenos">127</span></a>
</span><span id="diffraction_grating_wavelength-128"><a href="#diffraction_grating_wavelength-128"><span class="linenos">128</span></a><span class="sd"> | Ex. Problem | Ex. Solution |</span>
</span><span id="diffraction_grating_wavelength-129"><a href="#diffraction_grating_wavelength-129"><span class="linenos">129</span></a><span class="sd"> | --- | --- |</span>
</span><span id="diffraction_grating_wavelength-130"><a href="#diffraction_grating_wavelength-130"><span class="linenos">130</span></a><span class="sd"> | A laser is shone through a diffraction grating which has $293$ lines per mm, the fringe of order number $2$ is at an angle of $0.39$ rad. Calculate the wavelength of the light | $\lambda = 6.487856913364529e-07m = 649nm |</span>
</span><span id="diffraction_grating_wavelength-131"><a href="#diffraction_grating_wavelength-131"><span class="linenos">131</span></a>
</span><span id="diffraction_grating_wavelength-132"><a href="#diffraction_grating_wavelength-132"><span class="linenos">132</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="diffraction_grating_wavelength-133"><a href="#diffraction_grating_wavelength-133"><span class="linenos">133</span></a> <span class="n">slits_per_mm</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="n">min_slits_per_mm</span><span class="p">,</span> <span class="n">max_slits_per_mm</span><span class="p">)</span>
</span><span id="diffraction_grating_wavelength-134"><a href="#diffraction_grating_wavelength-134"><span class="linenos">134</span></a> <span class="n">slit_spacing</span> <span class="o">=</span> <span class="mi">1</span><span class="o">/</span><span class="p">(</span><span class="n">slits_per_mm</span> <span class="o">*</span> <span class="mi">1000</span><span class="p">)</span>
</span><span id="diffraction_grating_wavelength-135"><a href="#diffraction_grating_wavelength-135"><span class="linenos">135</span></a> <span class="n">order_number</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">max_order_number</span><span class="p">)</span>
</span><span id="diffraction_grating_wavelength-136"><a href="#diffraction_grating_wavelength-136"><span class="linenos">136</span></a> <span class="n">angle_of_order</span> <span class="o">=</span> <span class="nb">round</span><span class="p">(</span><span class="n">random</span><span class="o">.</span><span class="n">uniform</span><span class="p">(</span><span class="mf">0.2</span><span class="p">,</span> <span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span><span class="o">-</span><span class="mf">0.2</span><span class="p">),</span><span class="mi">2</span><span class="p">)</span>
</span><span id="diffraction_grating_wavelength-137"><a href="#diffraction_grating_wavelength-137"><span class="linenos">137</span></a> <span class="n">wavelength</span> <span class="o">=</span> <span class="p">((</span><span class="n">slit_spacing</span> <span class="o">*</span> <span class="n">math</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">angle_of_order</span><span class="p">))</span> <span class="o">/</span> <span class="n">order_number</span><span class="p">)</span>
</span><span id="diffraction_grating_wavelength-138"><a href="#diffraction_grating_wavelength-138"><span class="linenos">138</span></a>
</span><span id="diffraction_grating_wavelength-139"><a href="#diffraction_grating_wavelength-139"><span class="linenos">139</span></a> <span class="n">problem</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;A laser is shone through a diffraction grating which has $</span><span class="si">{</span><span class="n">slits_per_mm</span><span class="si">}</span><span class="s2">$ lines per mm, the fringe of order number $</span><span class="si">{</span><span class="n">order_number</span><span class="si">}</span><span class="s2">$ is at an angle of $</span><span class="si">{</span><span class="n">angle_of_order</span><span class="si">}</span><span class="s2">$ rad. Calculate the wavelength of the light&quot;</span>
</span><span id="diffraction_grating_wavelength-140"><a href="#diffraction_grating_wavelength-140"><span class="linenos">140</span></a> <span class="n">solution</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;$</span><span class="se">\\</span><span class="s2">lambda = </span><span class="si">{</span><span class="n">wavelength</span><span class="si">}</span><span class="s2">m = </span><span class="si">{</span><span class="nb">round</span><span class="p">(</span><span class="n">wavelength</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">10</span><span class="o">**-</span><span class="mi">9</span><span class="p">)</span><span class="si">}</span><span class="s2">nm$&quot;</span>
</span><span id="diffraction_grating_wavelength-141"><a href="#diffraction_grating_wavelength-141"><span class="linenos">141</span></a>
</span><span id="diffraction_grating_wavelength-142"><a href="#diffraction_grating_wavelength-142"><span class="linenos">142</span></a> <span class="k">return</span> <span class="n">problem</span><span class="p">,</span> <span class="n">solution</span>
</span></pre></div>
<div class="docstring"><p>Calculate the wavelength when given the number of slits per mm, order number and angle of order using the equation nλ = dsinθ</p>
<table>
<thead>
<tr>
<th>Ex. Problem</th>
<th>Ex. Solution</th>
</tr>
</thead>
<tbody>
<tr>
<td>A laser is shone through a diffraction grating which has $293$ lines per mm, the fringe of order number $2$ is at an angle of $0.39$ rad. Calculate the wavelength of the light</td>
<td>$\lambda = 6.487856913364529e-07m = 649nm</td>
</tr>
</tbody>
</table>
</div>
</section> </section>
</main> </main>
<script> <script>

View File

@@ -96,7 +96,7 @@
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">random</span> <div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">random</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">math</span> </span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">math</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a> </span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">scipy.stats</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">stats</span>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a> </span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="k">def</span><span class="w"> </span><span class="nf">combinations</span><span class="p">(</span><span class="n">max_lengthgth</span><span class="o">=</span><span class="mi">20</span><span class="p">):</span> </span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="k">def</span><span class="w"> </span><span class="nf">combinations</span><span class="p">(</span><span class="n">max_lengthgth</span><span class="o">=</span><span class="mi">20</span><span class="p">):</span>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Combinations of Objects</span> </span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Combinations of Objects</span>
@@ -274,6 +274,25 @@
</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a> </span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a>
</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> <span class="n">problem</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Number of Permutations from $</span><span class="si">{</span><span class="n">a</span><span class="si">}</span><span class="s2">$ objects picked $</span><span class="si">{</span><span class="n">b</span><span class="si">}</span><span class="s2">$ at a time is: &quot;</span> </span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> <span class="n">problem</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Number of Permutations from $</span><span class="si">{</span><span class="n">a</span><span class="si">}</span><span class="s2">$ objects picked $</span><span class="si">{</span><span class="n">b</span><span class="si">}</span><span class="s2">$ at a time is: &quot;</span>
</span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a> <span class="k">return</span> <span class="n">problem</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;$</span><span class="si">{</span><span class="n">solution</span><span class="si">}</span><span class="s2">$&quot;</span> </span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a> <span class="k">return</span> <span class="n">problem</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;$</span><span class="si">{</span><span class="n">solution</span><span class="si">}</span><span class="s2">$&quot;</span>
</span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a>
</span><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a><span class="c1"># TODO</span>
</span><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a><span class="c1">#def normal_distribution_bounds(max_mean=100, max_variance=10): # max value for mean is absolute</span>
</span><span id="L-184"><a href="#L-184"><span class="linenos">184</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-185"><a href="#L-185"><span class="linenos">185</span></a>
</span><span id="L-186"><a href="#L-186"><span class="linenos">186</span></a>
</span><span id="L-187"><a href="#L-187"><span class="linenos">187</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-188"><a href="#L-188"><span class="linenos">188</span></a> <span class="c1"># P(x1 &lt;= X &lt;= x2) = CDF(x2) CDF(x1)</span>
</span><span id="L-189"><a href="#L-189"><span class="linenos">189</span></a>
</span><span id="L-190"><a href="#L-190"><span class="linenos">190</span></a> <span class="c1"># X(x) = 1/2[1+erf(xμ√2σ)]</span>
</span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a> <span class="n">mean</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="o">-</span><span class="n">max_mean</span><span class="p">,</span> <span class="n">max_mean</span><span class="p">)</span>
</span><span id="L-192"><a href="#L-192"><span class="linenos">192</span></a> <span class="n">variance</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">max_variance</span><span class="p">)</span>
</span><span id="L-193"><a href="#L-193"><span class="linenos">193</span></a> <span class="n">bound_1</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="nb">round</span><span class="p">(</span><span class="n">mean</span> <span class="o">-</span> <span class="p">(</span><span class="mi">5</span> <span class="o">*</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">variance</span><span class="p">))),</span> <span class="nb">round</span><span class="p">(</span><span class="n">mean</span> <span class="o">+</span> <span class="p">(</span><span class="mi">5</span> <span class="o">*</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">variance</span><span class="p">))))</span>
</span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a> <span class="n">bound_2</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="n">bound_1</span><span class="p">,</span> <span class="nb">round</span><span class="p">(</span><span class="n">mean</span> <span class="o">+</span> <span class="p">(</span><span class="mi">5</span> <span class="o">*</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">variance</span><span class="p">))))</span>
</span><span id="L-195"><a href="#L-195"><span class="linenos">195</span></a> <span class="n">answer</span> <span class="o">=</span> <span class="n">stats</span><span class="o">.</span><span class="n">norm</span><span class="o">.</span><span class="n">cdf</span><span class="p">(</span><span class="n">bound_2</span><span class="p">,</span> <span class="n">mean</span><span class="p">,</span> <span class="n">variance</span><span class="p">)</span> <span class="o">-</span> <span class="n">stats</span><span class="o">.</span><span class="n">norm</span><span class="o">.</span><span class="n">cdf</span><span class="p">(</span><span class="n">bound_1</span><span class="p">,</span> <span class="n">mean</span><span class="p">,</span> <span class="n">variance</span><span class="p">)</span>
</span><span id="L-196"><a href="#L-196"><span class="linenos">196</span></a>
</span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a> <span class="n">problem</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;What is the area under the Normal Distribution $X~N(</span><span class="si">{</span><span class="n">mean</span><span class="si">}</span><span class="s2">,</span><span class="si">{</span><span class="n">variance</span><span class="si">}</span><span class="s2">)$ between $</span><span class="si">{</span><span class="n">bound_1</span><span class="si">}</span><span class="s2">$ and $</span><span class="si">{</span><span class="n">bound_2</span><span class="si">}</span><span class="s2">$&quot;</span>
</span><span id="L-198"><a href="#L-198"><span class="linenos">198</span></a> <span class="n">solution</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;$</span><span class="si">{</span><span class="n">answer</span><span class="si">}</span><span class="s2">$&quot;</span>
</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a> <span class="k">return</span> <span class="n">problem</span><span class="p">,</span> <span class="n">solution</span>
</span></pre></div> </span></pre></div>
@@ -657,6 +676,25 @@
</span><span id="permutation-179"><a href="#permutation-179"><span class="linenos">179</span></a> </span><span id="permutation-179"><a href="#permutation-179"><span class="linenos">179</span></a>
</span><span id="permutation-180"><a href="#permutation-180"><span class="linenos">180</span></a> <span class="n">problem</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Number of Permutations from $</span><span class="si">{</span><span class="n">a</span><span class="si">}</span><span class="s2">$ objects picked $</span><span class="si">{</span><span class="n">b</span><span class="si">}</span><span class="s2">$ at a time is: &quot;</span> </span><span id="permutation-180"><a href="#permutation-180"><span class="linenos">180</span></a> <span class="n">problem</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Number of Permutations from $</span><span class="si">{</span><span class="n">a</span><span class="si">}</span><span class="s2">$ objects picked $</span><span class="si">{</span><span class="n">b</span><span class="si">}</span><span class="s2">$ at a time is: &quot;</span>
</span><span id="permutation-181"><a href="#permutation-181"><span class="linenos">181</span></a> <span class="k">return</span> <span class="n">problem</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;$</span><span class="si">{</span><span class="n">solution</span><span class="si">}</span><span class="s2">$&quot;</span> </span><span id="permutation-181"><a href="#permutation-181"><span class="linenos">181</span></a> <span class="k">return</span> <span class="n">problem</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;$</span><span class="si">{</span><span class="n">solution</span><span class="si">}</span><span class="s2">$&quot;</span>
</span><span id="permutation-182"><a href="#permutation-182"><span class="linenos">182</span></a>
</span><span id="permutation-183"><a href="#permutation-183"><span class="linenos">183</span></a><span class="c1"># TODO</span>
</span><span id="permutation-184"><a href="#permutation-184"><span class="linenos">184</span></a><span class="c1">#def normal_distribution_bounds(max_mean=100, max_variance=10): # max value for mean is absolute</span>
</span><span id="permutation-185"><a href="#permutation-185"><span class="linenos">185</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="permutation-186"><a href="#permutation-186"><span class="linenos">186</span></a>
</span><span id="permutation-187"><a href="#permutation-187"><span class="linenos">187</span></a>
</span><span id="permutation-188"><a href="#permutation-188"><span class="linenos">188</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="permutation-189"><a href="#permutation-189"><span class="linenos">189</span></a> <span class="c1"># P(x1 &lt;= X &lt;= x2) = CDF(x2) CDF(x1)</span>
</span><span id="permutation-190"><a href="#permutation-190"><span class="linenos">190</span></a>
</span><span id="permutation-191"><a href="#permutation-191"><span class="linenos">191</span></a> <span class="c1"># X(x) = 1/2[1+erf(xμ√2σ)]</span>
</span><span id="permutation-192"><a href="#permutation-192"><span class="linenos">192</span></a> <span class="n">mean</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="o">-</span><span class="n">max_mean</span><span class="p">,</span> <span class="n">max_mean</span><span class="p">)</span>
</span><span id="permutation-193"><a href="#permutation-193"><span class="linenos">193</span></a> <span class="n">variance</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">max_variance</span><span class="p">)</span>
</span><span id="permutation-194"><a href="#permutation-194"><span class="linenos">194</span></a> <span class="n">bound_1</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="nb">round</span><span class="p">(</span><span class="n">mean</span> <span class="o">-</span> <span class="p">(</span><span class="mi">5</span> <span class="o">*</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">variance</span><span class="p">))),</span> <span class="nb">round</span><span class="p">(</span><span class="n">mean</span> <span class="o">+</span> <span class="p">(</span><span class="mi">5</span> <span class="o">*</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">variance</span><span class="p">))))</span>
</span><span id="permutation-195"><a href="#permutation-195"><span class="linenos">195</span></a> <span class="n">bound_2</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="n">bound_1</span><span class="p">,</span> <span class="nb">round</span><span class="p">(</span><span class="n">mean</span> <span class="o">+</span> <span class="p">(</span><span class="mi">5</span> <span class="o">*</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">variance</span><span class="p">))))</span>
</span><span id="permutation-196"><a href="#permutation-196"><span class="linenos">196</span></a> <span class="n">answer</span> <span class="o">=</span> <span class="n">stats</span><span class="o">.</span><span class="n">norm</span><span class="o">.</span><span class="n">cdf</span><span class="p">(</span><span class="n">bound_2</span><span class="p">,</span> <span class="n">mean</span><span class="p">,</span> <span class="n">variance</span><span class="p">)</span> <span class="o">-</span> <span class="n">stats</span><span class="o">.</span><span class="n">norm</span><span class="o">.</span><span class="n">cdf</span><span class="p">(</span><span class="n">bound_1</span><span class="p">,</span> <span class="n">mean</span><span class="p">,</span> <span class="n">variance</span><span class="p">)</span>
</span><span id="permutation-197"><a href="#permutation-197"><span class="linenos">197</span></a>
</span><span id="permutation-198"><a href="#permutation-198"><span class="linenos">198</span></a> <span class="n">problem</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;What is the area under the Normal Distribution $X~N(</span><span class="si">{</span><span class="n">mean</span><span class="si">}</span><span class="s2">,</span><span class="si">{</span><span class="n">variance</span><span class="si">}</span><span class="s2">)$ between $</span><span class="si">{</span><span class="n">bound_1</span><span class="si">}</span><span class="s2">$ and $</span><span class="si">{</span><span class="n">bound_2</span><span class="si">}</span><span class="s2">$&quot;</span>
</span><span id="permutation-199"><a href="#permutation-199"><span class="linenos">199</span></a> <span class="n">solution</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;$</span><span class="si">{</span><span class="n">answer</span><span class="si">}</span><span class="s2">$&quot;</span>
</span><span id="permutation-200"><a href="#permutation-200"><span class="linenos">200</span></a> <span class="k">return</span> <span class="n">problem</span><span class="p">,</span> <span class="n">solution</span>
</span></pre></div> </span></pre></div>

File diff suppressed because one or more lines are too long

View File

@@ -138,4 +138,6 @@ gen_list = [
("resistivity", "physics"), ("resistivity", "physics"),
("fringe_spacing", "physics"), ("fringe_spacing", "physics"),
("lba_to_chs", "computer_science"), ("lba_to_chs", "computer_science"),
("floating_point_binary_to_decimal", "computer_science"),
("electric_field_strength_two_points", "physics"),
] ]

View File

@@ -1,6 +1,34 @@
import random import random
import math import math
def floating_point_binary_to_decimal(mantissa_length=8, exponent_length=4):
r"""Floating Point Binary to Decimal
| Ex. Problem | Ex. Solution |
| --- | --- |
| There is a floating point binary number $011100000010$ where the signed mantissa is 8 bits long and the signed exponent is 4 bits long | $011100000010 = 3.5$ |
"""
# TODO Could do with some work ensuring the number is not too small or too big.
mantissa = ''
for x in range(mantissa_length):
mantissa += str(random.randint(0,1))
exponent = ''
for x in range(exponent_length):
exponent += str(random.randint(0,1))
decimal_mantissa = int(mantissa, 2)
if (decimal_mantissa & (1 << (mantissa_length - 1))) != 0:
decimal_mantissa = decimal_mantissa - (1 << mantissa_length)
decimal_exponent = int(exponent, 2)
if (decimal_exponent & (1 << (exponent_length - 1))) != 0:
decimal_exponent = decimal_exponent - (1 << exponent_length)
answer = decimal_mantissa * 2**(decimal_exponent - (mantissa_length - 1))
problem = f"There is a floating point binary number ${mantissa}{exponent}$ where the signed mantissa is {mantissa_length} bits long and the signed exponent is {exponent_length} bits long"
solution = f'${mantissa}{exponent} = {answer}$'
return problem, solution
def binary_addition(max_sum=256, max_addend=128): def binary_addition(max_sum=256, max_addend=128):
r"""Binary Addition r"""Binary Addition

View File

@@ -1,7 +1,7 @@
import random import random
import math import math
# Generic # Mechanics
def kinetic_energy(max_mass=1000, max_vel=100): def kinetic_energy(max_mass=1000, max_vel=100):
r"""Kinetic Energy calculation using Ek = 0.5 * m * v^2 r"""Kinetic Energy calculation using Ek = 0.5 * m * v^2
@@ -19,7 +19,7 @@ def kinetic_energy(max_mass=1000, max_vel=100):
return problem, solution return problem, solution
# Electricity # Electricity & Electric Fields
def potential_dividers(max_vin=50, max_resistance=500): def potential_dividers(max_vin=50, max_resistance=500):
r"""Potential Divider question using Vout = (Vin * R2) / (R2 + R1) r"""Potential Divider question using Vout = (Vin * R2) / (R2 + R1)
@@ -64,6 +64,46 @@ def resistivity(max_diameter_mm=5, max_length_cm=100, max_resistance=0.1):
return problem, solution return problem, solution
def electric_field_strength_two_points(max_seperation_cm=100, max_charge_uC=1000):
r"""Calculate the total electric field strength at point P with given points A and B, using the equation kQ/r²
| Ex. Problem | Ex. Solution |
| --- | --- |
| Charges A and B and point P are arranged like this: B <-- 7 cm --> P <-- 79 cm --> A, Where A and B have charges of -56 µC and -410 µC, What is the electric field strength at point P? | $-751417824 NC^{-1}$ (to the right) |
"""
a_charge = random.randint(-max_charge_uC,max_charge_uC)
b_charge = random.randint(-max_charge_uC,max_charge_uC)
arrangement = [['P'],['A',a_charge],['B',b_charge]] # Arrangement of charge A, B and the point of focus
random.shuffle(arrangement)
seperations = [random.randint(0,max_seperation_cm), random.randint(0,max_seperation_cm)]
total_efs = 0
# Work out how far A and B are from P (vector)
if arrangement[0][0] == 'P':
arrangement[1].append(seperations[0])
arrangement[2].append(seperations[0]+seperations[1])
elif arrangement[1][0] == 'P':
arrangement[0].append(-seperations[0])
arrangement[2].append(seperations[1])
else:
arrangement[0].append(-(seperations[0]+seperations[1]))
arrangement[1].append(-seperations[1])
# Work out the EFS at point P caused by A and B seperatley, then sum them together in `total_efs`
for point in arrangement:
if point[0] == 'P':
continue
else:
efs = ((8.99*10**9)*(point[1]*10**-6))/((point[2]/100)**2) # efs = kQ/r²
if point[2] > 0: efs = -efs
point.append(efs)
total_efs += efs
problem = f"Charges A and B and point P are arranged like this:\n{arrangement[0][0]} <-- ${seperations[0]}$ cm --> {arrangement[1][0]} <-- ${seperations[1]}$ cm --> {arrangement[2][0]}\nWhere A and B have charges of ${a_charge}$ µC and ${b_charge}$ µC\nWhat is the electric field strength at point P?"
solution = f"${round(total_efs)} NC^{-1}$ (to the right)"
return problem, solution
# Waves # Waves
def fringe_spacing(max_screen_distance=30, max_slit_spacing_mm=100): def fringe_spacing(max_screen_distance=30, max_slit_spacing_mm=100):
r"""Calculate the fringe spacing in a double slit experiment with w=(λD)/s r"""Calculate the fringe spacing in a double slit experiment with w=(λD)/s
@@ -81,6 +121,24 @@ def fringe_spacing(max_screen_distance=30, max_slit_spacing_mm=100):
solution = f"Using the equation $\\frac{{\\lambda D}}{{s}}$, we get a fringe spacing of ${fringe_spacing}m$" solution = f"Using the equation $\\frac{{\\lambda D}}{{s}}$, we get a fringe spacing of ${fringe_spacing}m$"
return problem, solution return problem, solution
def diffraction_grating_wavelength(min_slits_per_mm=100, max_slits_per_mm=500, max_order_number=5):
r"""Calculate the wavelength when given the number of slits per mm, order number and angle of order using the equation nλ = dsinθ
| Ex. Problem | Ex. Solution |
| --- | --- |
| A laser is shone through a diffraction grating which has $293$ lines per mm, the fringe of order number $2$ is at an angle of $0.39$ rad. Calculate the wavelength of the light | $\lambda = 6.487856913364529e-07m = 649nm |
"""
slits_per_mm = random.randint(min_slits_per_mm, max_slits_per_mm)
slit_spacing = 1/(slits_per_mm * 1000)
order_number = random.randint(1, max_order_number)
angle_of_order = round(random.uniform(0.2, (math.pi/2)-0.2),2)
wavelength = ((slit_spacing * math.sin(angle_of_order)) / order_number)
problem = f"A laser is shone through a diffraction grating which has ${slits_per_mm}$ lines per mm, the fringe of order number ${order_number}$ is at an angle of ${angle_of_order}$ rad. Calculate the wavelength of the light"
solution = f"$\\lambda = {wavelength}m = {round(wavelength / 10**-9)}nm$"
return problem, solution

View File

@@ -1,6 +1,6 @@
import random import random
import math import math
import scipy.stats as stats
def combinations(max_lengthgth=20): def combinations(max_lengthgth=20):
"""Combinations of Objects """Combinations of Objects
@@ -178,3 +178,23 @@ def permutation(max_lengthgth=20):
problem = f"Number of Permutations from ${a}$ objects picked ${b}$ at a time is: " problem = f"Number of Permutations from ${a}$ objects picked ${b}$ at a time is: "
return problem, f"${solution}$" return problem, f"${solution}$"
# TODO
#def normal_distribution_bounds(max_mean=100, max_variance=10): # max value for mean is absolute
"""
"""
# P(x1 <= X <= x2) = CDF(x2) CDF(x1)
# X(x) = 1/2[1+erf(xμ√2σ)]
mean = random.randint(-max_mean, max_mean)
variance = random.randint(1, max_variance)
bound_1 = random.randint(round(mean - (5 * math.sqrt(variance))), round(mean + (5 * math.sqrt(variance))))
bound_2 = random.randint(bound_1, round(mean + (5 * math.sqrt(variance))))
answer = stats.norm.cdf(bound_2, mean, variance) - stats.norm.cdf(bound_1, mean, variance)
problem = f"What is the area under the Normal Distribution $X~N({mean},{variance})$ between ${bound_1}$ and ${bound_2}$"
solution = f"${answer}$"
return problem, solution