mirror of
https://github.com/fjosw/pyerrors.git
synced 2025-05-15 12:03:42 +02:00
Documentation updated
This commit is contained in:
parent
9c3c270b58
commit
aceee249e4
1 changed files with 26 additions and 22 deletions
|
@ -105,18 +105,20 @@
|
|||
</span><span id="L-27"><a href="#L-27"><span class="linenos">27</span></a><span class="sd"> Obs</span>
|
||||
</span><span id="L-28"><a href="#L-28"><span class="linenos">28</span></a><span class="sd"> `Obs` valued root of the function.</span>
|
||||
</span><span id="L-29"><a href="#L-29"><span class="linenos">29</span></a><span class="sd"> '''</span>
|
||||
</span><span id="L-30"><a href="#L-30"><span class="linenos">30</span></a> <span class="n">root</span> <span class="o">=</span> <span class="n">scipy</span><span class="o">.</span><span class="n">optimize</span><span class="o">.</span><span class="n">fsolve</span><span class="p">(</span><span class="n">func</span><span class="p">,</span> <span class="n">guess</span><span class="p">,</span> <span class="n">d</span><span class="o">.</span><span class="n">value</span><span class="p">)</span>
|
||||
</span><span id="L-30"><a href="#L-30"><span class="linenos">30</span></a> <span class="n">d_val</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">vectorize</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">value</span><span class="p">)(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">d</span><span class="p">))</span>
|
||||
</span><span id="L-31"><a href="#L-31"><span class="linenos">31</span></a>
|
||||
</span><span id="L-32"><a href="#L-32"><span class="linenos">32</span></a> <span class="c1"># Error propagation as detailed in arXiv:1809.01289</span>
|
||||
</span><span id="L-33"><a href="#L-33"><span class="linenos">33</span></a> <span class="n">dx</span> <span class="o">=</span> <span class="n">jacobian</span><span class="p">(</span><span class="n">func</span><span class="p">)(</span><span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">d</span><span class="o">.</span><span class="n">value</span><span class="p">)</span>
|
||||
</span><span id="L-34"><a href="#L-34"><span class="linenos">34</span></a> <span class="k">try</span><span class="p">:</span>
|
||||
</span><span id="L-35"><a href="#L-35"><span class="linenos">35</span></a> <span class="n">da</span> <span class="o">=</span> <span class="n">jacobian</span><span class="p">(</span><span class="k">lambda</span> <span class="n">u</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">func</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">u</span><span class="p">))(</span><span class="n">d</span><span class="o">.</span><span class="n">value</span><span class="p">,</span> <span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
|
||||
</span><span id="L-36"><a href="#L-36"><span class="linenos">36</span></a> <span class="k">except</span> <span class="ne">TypeError</span><span class="p">:</span>
|
||||
</span><span id="L-37"><a href="#L-37"><span class="linenos">37</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"It is required to use autograd.numpy instead of numpy within root functions, see the documentation for details."</span><span class="p">)</span> <span class="kn">from</span> <span class="bp">None</span>
|
||||
</span><span id="L-38"><a href="#L-38"><span class="linenos">38</span></a> <span class="n">deriv</span> <span class="o">=</span> <span class="o">-</span> <span class="n">da</span> <span class="o">/</span> <span class="n">dx</span>
|
||||
</span><span id="L-39"><a href="#L-39"><span class="linenos">39</span></a>
|
||||
</span><span id="L-40"><a href="#L-40"><span class="linenos">40</span></a> <span class="n">res</span> <span class="o">=</span> <span class="n">derived_observable</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">np</span><span class="o">.</span><span class="n">finfo</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span><span class="o">.</span><span class="n">eps</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="n">d</span><span class="o">.</span><span class="n">value</span> <span class="o">+</span> <span class="n">np</span><span class="o">.</span><span class="n">finfo</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span><span class="o">.</span><span class="n">eps</span><span class="p">)</span> <span class="o">*</span> <span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="p">[</span><span class="n">d</span><span class="p">],</span> <span class="n">man_grad</span><span class="o">=</span><span class="p">[</span><span class="n">deriv</span><span class="p">])</span>
|
||||
</span><span id="L-41"><a href="#L-41"><span class="linenos">41</span></a> <span class="k">return</span> <span class="n">res</span>
|
||||
</span><span id="L-32"><a href="#L-32"><span class="linenos">32</span></a> <span class="n">root</span> <span class="o">=</span> <span class="n">scipy</span><span class="o">.</span><span class="n">optimize</span><span class="o">.</span><span class="n">fsolve</span><span class="p">(</span><span class="n">func</span><span class="p">,</span> <span class="n">guess</span><span class="p">,</span> <span class="n">d_val</span><span class="p">)</span>
|
||||
</span><span id="L-33"><a href="#L-33"><span class="linenos">33</span></a>
|
||||
</span><span id="L-34"><a href="#L-34"><span class="linenos">34</span></a> <span class="c1"># Error propagation as detailed in arXiv:1809.01289</span>
|
||||
</span><span id="L-35"><a href="#L-35"><span class="linenos">35</span></a> <span class="n">dx</span> <span class="o">=</span> <span class="n">jacobian</span><span class="p">(</span><span class="n">func</span><span class="p">)(</span><span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">d_val</span><span class="p">)</span>
|
||||
</span><span id="L-36"><a href="#L-36"><span class="linenos">36</span></a> <span class="k">try</span><span class="p">:</span>
|
||||
</span><span id="L-37"><a href="#L-37"><span class="linenos">37</span></a> <span class="n">da</span> <span class="o">=</span> <span class="n">jacobian</span><span class="p">(</span><span class="k">lambda</span> <span class="n">u</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">func</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">u</span><span class="p">))(</span><span class="n">d_val</span><span class="p">,</span> <span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
|
||||
</span><span id="L-38"><a href="#L-38"><span class="linenos">38</span></a> <span class="k">except</span> <span class="ne">TypeError</span><span class="p">:</span>
|
||||
</span><span id="L-39"><a href="#L-39"><span class="linenos">39</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"It is required to use autograd.numpy instead of numpy within root functions, see the documentation for details."</span><span class="p">)</span> <span class="kn">from</span> <span class="bp">None</span>
|
||||
</span><span id="L-40"><a href="#L-40"><span class="linenos">40</span></a> <span class="n">deriv</span> <span class="o">=</span> <span class="o">-</span> <span class="n">da</span> <span class="o">/</span> <span class="n">dx</span>
|
||||
</span><span id="L-41"><a href="#L-41"><span class="linenos">41</span></a> <span class="n">res</span> <span class="o">=</span> <span class="n">derived_observable</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">np</span><span class="o">.</span><span class="n">finfo</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span><span class="o">.</span><span class="n">eps</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">d</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</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="n">value</span> <span class="o">+</span> <span class="n">np</span><span class="o">.</span><span class="n">finfo</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span><span class="o">.</span><span class="n">eps</span><span class="p">)</span> <span class="o">*</span> <span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
|
||||
</span><span id="L-42"><a href="#L-42"><span class="linenos">42</span></a> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">d</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span> <span class="n">man_grad</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">deriv</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
|
||||
</span><span id="L-43"><a href="#L-43"><span class="linenos">43</span></a> <span class="k">return</span> <span class="n">res</span>
|
||||
</span></pre></div>
|
||||
|
||||
|
||||
|
@ -155,18 +157,20 @@
|
|||
</span><span id="find_root-28"><a href="#find_root-28"><span class="linenos">28</span></a><span class="sd"> Obs</span>
|
||||
</span><span id="find_root-29"><a href="#find_root-29"><span class="linenos">29</span></a><span class="sd"> `Obs` valued root of the function.</span>
|
||||
</span><span id="find_root-30"><a href="#find_root-30"><span class="linenos">30</span></a><span class="sd"> '''</span>
|
||||
</span><span id="find_root-31"><a href="#find_root-31"><span class="linenos">31</span></a> <span class="n">root</span> <span class="o">=</span> <span class="n">scipy</span><span class="o">.</span><span class="n">optimize</span><span class="o">.</span><span class="n">fsolve</span><span class="p">(</span><span class="n">func</span><span class="p">,</span> <span class="n">guess</span><span class="p">,</span> <span class="n">d</span><span class="o">.</span><span class="n">value</span><span class="p">)</span>
|
||||
</span><span id="find_root-31"><a href="#find_root-31"><span class="linenos">31</span></a> <span class="n">d_val</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">vectorize</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">value</span><span class="p">)(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">d</span><span class="p">))</span>
|
||||
</span><span id="find_root-32"><a href="#find_root-32"><span class="linenos">32</span></a>
|
||||
</span><span id="find_root-33"><a href="#find_root-33"><span class="linenos">33</span></a> <span class="c1"># Error propagation as detailed in arXiv:1809.01289</span>
|
||||
</span><span id="find_root-34"><a href="#find_root-34"><span class="linenos">34</span></a> <span class="n">dx</span> <span class="o">=</span> <span class="n">jacobian</span><span class="p">(</span><span class="n">func</span><span class="p">)(</span><span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">d</span><span class="o">.</span><span class="n">value</span><span class="p">)</span>
|
||||
</span><span id="find_root-35"><a href="#find_root-35"><span class="linenos">35</span></a> <span class="k">try</span><span class="p">:</span>
|
||||
</span><span id="find_root-36"><a href="#find_root-36"><span class="linenos">36</span></a> <span class="n">da</span> <span class="o">=</span> <span class="n">jacobian</span><span class="p">(</span><span class="k">lambda</span> <span class="n">u</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">func</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">u</span><span class="p">))(</span><span class="n">d</span><span class="o">.</span><span class="n">value</span><span class="p">,</span> <span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
|
||||
</span><span id="find_root-37"><a href="#find_root-37"><span class="linenos">37</span></a> <span class="k">except</span> <span class="ne">TypeError</span><span class="p">:</span>
|
||||
</span><span id="find_root-38"><a href="#find_root-38"><span class="linenos">38</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"It is required to use autograd.numpy instead of numpy within root functions, see the documentation for details."</span><span class="p">)</span> <span class="kn">from</span> <span class="bp">None</span>
|
||||
</span><span id="find_root-39"><a href="#find_root-39"><span class="linenos">39</span></a> <span class="n">deriv</span> <span class="o">=</span> <span class="o">-</span> <span class="n">da</span> <span class="o">/</span> <span class="n">dx</span>
|
||||
</span><span id="find_root-40"><a href="#find_root-40"><span class="linenos">40</span></a>
|
||||
</span><span id="find_root-41"><a href="#find_root-41"><span class="linenos">41</span></a> <span class="n">res</span> <span class="o">=</span> <span class="n">derived_observable</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">np</span><span class="o">.</span><span class="n">finfo</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span><span class="o">.</span><span class="n">eps</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="n">d</span><span class="o">.</span><span class="n">value</span> <span class="o">+</span> <span class="n">np</span><span class="o">.</span><span class="n">finfo</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span><span class="o">.</span><span class="n">eps</span><span class="p">)</span> <span class="o">*</span> <span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="p">[</span><span class="n">d</span><span class="p">],</span> <span class="n">man_grad</span><span class="o">=</span><span class="p">[</span><span class="n">deriv</span><span class="p">])</span>
|
||||
</span><span id="find_root-42"><a href="#find_root-42"><span class="linenos">42</span></a> <span class="k">return</span> <span class="n">res</span>
|
||||
</span><span id="find_root-33"><a href="#find_root-33"><span class="linenos">33</span></a> <span class="n">root</span> <span class="o">=</span> <span class="n">scipy</span><span class="o">.</span><span class="n">optimize</span><span class="o">.</span><span class="n">fsolve</span><span class="p">(</span><span class="n">func</span><span class="p">,</span> <span class="n">guess</span><span class="p">,</span> <span class="n">d_val</span><span class="p">)</span>
|
||||
</span><span id="find_root-34"><a href="#find_root-34"><span class="linenos">34</span></a>
|
||||
</span><span id="find_root-35"><a href="#find_root-35"><span class="linenos">35</span></a> <span class="c1"># Error propagation as detailed in arXiv:1809.01289</span>
|
||||
</span><span id="find_root-36"><a href="#find_root-36"><span class="linenos">36</span></a> <span class="n">dx</span> <span class="o">=</span> <span class="n">jacobian</span><span class="p">(</span><span class="n">func</span><span class="p">)(</span><span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">d_val</span><span class="p">)</span>
|
||||
</span><span id="find_root-37"><a href="#find_root-37"><span class="linenos">37</span></a> <span class="k">try</span><span class="p">:</span>
|
||||
</span><span id="find_root-38"><a href="#find_root-38"><span class="linenos">38</span></a> <span class="n">da</span> <span class="o">=</span> <span class="n">jacobian</span><span class="p">(</span><span class="k">lambda</span> <span class="n">u</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">func</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">u</span><span class="p">))(</span><span class="n">d_val</span><span class="p">,</span> <span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
|
||||
</span><span id="find_root-39"><a href="#find_root-39"><span class="linenos">39</span></a> <span class="k">except</span> <span class="ne">TypeError</span><span class="p">:</span>
|
||||
</span><span id="find_root-40"><a href="#find_root-40"><span class="linenos">40</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"It is required to use autograd.numpy instead of numpy within root functions, see the documentation for details."</span><span class="p">)</span> <span class="kn">from</span> <span class="bp">None</span>
|
||||
</span><span id="find_root-41"><a href="#find_root-41"><span class="linenos">41</span></a> <span class="n">deriv</span> <span class="o">=</span> <span class="o">-</span> <span class="n">da</span> <span class="o">/</span> <span class="n">dx</span>
|
||||
</span><span id="find_root-42"><a href="#find_root-42"><span class="linenos">42</span></a> <span class="n">res</span> <span class="o">=</span> <span class="n">derived_observable</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">np</span><span class="o">.</span><span class="n">finfo</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span><span class="o">.</span><span class="n">eps</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">d</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</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="n">value</span> <span class="o">+</span> <span class="n">np</span><span class="o">.</span><span class="n">finfo</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span><span class="o">.</span><span class="n">eps</span><span class="p">)</span> <span class="o">*</span> <span class="n">root</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
|
||||
</span><span id="find_root-43"><a href="#find_root-43"><span class="linenos">43</span></a> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">d</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span> <span class="n">man_grad</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">deriv</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
|
||||
</span><span id="find_root-44"><a href="#find_root-44"><span class="linenos">44</span></a> <span class="k">return</span> <span class="n">res</span>
|
||||
</span></pre></div>
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue