add mathematical functions module
update docs and clean up code
This commit is contained in:
5
docs/build/html/_modules/data.html
vendored
5
docs/build/html/_modules/data.html
vendored
@@ -45,7 +45,6 @@
|
||||
|
||||
<span class="sd">.. moduleauthor:: Daniel Weschke <daniel.weschke@directbox.de></span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">print_function</span>
|
||||
<span class="kn">import</span> <span class="nn">math</span>
|
||||
<span class="kn">import</span> <span class="nn">pickle</span>
|
||||
|
||||
@@ -79,7 +78,6 @@
|
||||
<span class="n">y</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">file</span><span class="p">:</span>
|
||||
<span class="n">fields</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="sa">r</span><span class="s1">'\s+'</span><span class="p">,</span> <span class="n">row</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span>
|
||||
<span class="c1">#print(filds)</span>
|
||||
<span class="n">x</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">fields</span><span class="p">[</span><span class="n">x_column</span><span class="p">]))</span>
|
||||
<span class="n">y</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">fields</span><span class="p">[</span><span class="n">y_column</span><span class="p">]))</span>
|
||||
<span class="n">file</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
|
||||
@@ -192,7 +190,6 @@
|
||||
<span class="n">exponent</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">start_exp</span><span class="p">,</span> <span class="n">step_exp</span><span class="p">)</span> <span class="c1"># no stop because it is an open bound</span>
|
||||
|
||||
<span class="n">n</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">ceil</span><span class="p">((</span><span class="n">stop</span> <span class="o">-</span> <span class="n">start</span><span class="p">)</span><span class="o">/</span><span class="nb">float</span><span class="p">(</span><span class="n">step</span><span class="p">)))</span>
|
||||
<span class="c1">#n = int((stop - start)/float(step)) # in py3 math.ceil returns int</span>
|
||||
<span class="n">lst</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">if</span> <span class="n">n</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
|
||||
<span class="n">lst</span> <span class="o">=</span> <span class="p">[</span><span class="nb">round</span><span class="p">(</span><span class="n">start</span> <span class="o">+</span> <span class="n">step</span><span class="o">*</span><span class="n">i</span><span class="p">,</span> <span class="n">exponent</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">)]</span>
|
||||
@@ -227,7 +224,7 @@
|
||||
<span class="sd"> :returns: full id</span>
|
||||
<span class="sd"> :rtype: str or int</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="c1"># we know it is a unique ending</span>
|
||||
<span class="c1"># take first element, because we know it is a unique ending</span>
|
||||
<span class="k">return</span> <span class="p">[</span><span class="n">idi</span> <span class="k">for</span> <span class="n">idi</span> <span class="ow">in</span> <span class="n">ids</span> <span class="k">if</span> <span class="n">idi</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="n">uide</span><span class="p">)][</span><span class="mi">0</span><span class="p">]</span></div>
|
||||
</pre></div>
|
||||
|
||||
|
||||
1
docs/build/html/_modules/date.html
vendored
1
docs/build/html/_modules/date.html
vendored
@@ -45,7 +45,6 @@
|
||||
<span class="sd"> </span>
|
||||
<span class="sd">.. moduleauthor:: Daniel Weschke <daniel.weschke@directbox.de></span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">division</span><span class="p">,</span> <span class="n">print_function</span><span class="p">,</span> <span class="n">unicode_literals</span>
|
||||
|
||||
<div class="viewcode-block" id="gaußsche_osterformel"><a class="viewcode-back" href="../date.html#date.gaußsche_osterformel">[docs]</a><span class="k">def</span> <span class="nf">gaußsche_osterformel</span><span class="p">(</span><span class="n">year</span><span class="p">):</span>
|
||||
<span class="sd">"""Gaußsche Osterformel.</span>
|
||||
|
||||
199
docs/build/html/_modules/function.html
vendored
Normal file
199
docs/build/html/_modules/function.html
vendored
Normal file
@@ -0,0 +1,199 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>function — pylib 2019.5.19 documentation</title>
|
||||
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
|
||||
<script type="text/javascript" src="../_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="../_static/language_data.js"></script>
|
||||
<script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
|
||||
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<h1>Source code for function</h1><div class="highlight"><pre>
|
||||
<span></span><span class="ch">#!/usr/bin/env python</span>
|
||||
<span class="c1"># -*- coding: utf-8 -*-</span>
|
||||
<span class="sd">"""Mathematical functions.</span>
|
||||
|
||||
<span class="sd">:Date: 2019-10-27</span>
|
||||
|
||||
<span class="sd">.. module:: function</span>
|
||||
<span class="sd"> :platform: *nix, Windows</span>
|
||||
<span class="sd"> :synopsis: Mathematical functions.</span>
|
||||
|
||||
<span class="sd">.. moduleauthor:: Daniel Weschke <daniel.weschke@directbox.de></span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="kn">import</span> <span class="nn">math</span>
|
||||
|
||||
<div class="viewcode-block" id="sine_wave"><a class="viewcode-back" href="../function.html#function.sine_wave">[docs]</a><span class="k">def</span> <span class="nf">sine_wave</span><span class="p">(</span><span class="n">A</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">k</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">f</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">phi</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">D</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">degree</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
|
||||
<span class="sa">r</span><span class="sd">"""A sine wave or sinusoid is a mathematical curve that describes a</span>
|
||||
<span class="sd"> smooth periodic oscillation.</span>
|
||||
|
||||
<span class="sd"> :param A: amplitude</span>
|
||||
<span class="sd"> :type A: float or int</span>
|
||||
<span class="sd"> :param k: (angular) wave number</span>
|
||||
<span class="sd"> :type k: float or int</span>
|
||||
<span class="sd"> :param f: ordinary frequency</span>
|
||||
<span class="sd"> :type f: float or int</span>
|
||||
<span class="sd"> :param phi: phase</span>
|
||||
<span class="sd"> :type phi: float or int</span>
|
||||
<span class="sd"> :param D: non-zero center amplitude</span>
|
||||
<span class="sd"> :type D: float or int</span>
|
||||
<span class="sd"> :param degree: boolean to switch between radians and degree. If</span>
|
||||
<span class="sd"> False phi is interpreted in radians and if True then phi is</span>
|
||||
<span class="sd"> interpreted in degrees.</span>
|
||||
|
||||
<span class="sd"> In general, the function is:</span>
|
||||
|
||||
<span class="sd"> .. math::</span>
|
||||
<span class="sd"> y(x,t) = A\sin(kx + 2\pi f t + \varphi) + D \\</span>
|
||||
<span class="sd"> y(x,t) = A\sin(kx + \omega t + \varphi) + D</span>
|
||||
|
||||
<span class="sd"> where:</span>
|
||||
|
||||
<span class="sd"> * A, amplitude, the peak deviation of the function from zero.</span>
|
||||
<span class="sd"> * f, ordinary frequency, the number of oscillations (cycles) that</span>
|
||||
<span class="sd"> occur each second of time.</span>
|
||||
<span class="sd"> * ω = 2πf, angular frequency, the rate of change of the function</span>
|
||||
<span class="sd"> argument in units of radians per second. If ω < 0 the wave is</span>
|
||||
<span class="sd"> moving to the right, if ω > 0 the wave is moving to the left.</span>
|
||||
<span class="sd"> * φ, phase, specifies (in radians) where in its cycle the</span>
|
||||
<span class="sd"> oscillation is at t = 0.</span>
|
||||
<span class="sd"> * x, spatial variable that represents the position on the</span>
|
||||
<span class="sd"> dimension on which the wave propagates.</span>
|
||||
<span class="sd"> * k, characteristic parameter called wave number (or angular wave</span>
|
||||
<span class="sd"> number), which represents the proportionality between the</span>
|
||||
<span class="sd"> angular frequency ω and the linear speed (speed of propagation)</span>
|
||||
<span class="sd"> ν.</span>
|
||||
<span class="sd"> * D, non-zero center amplitude.</span>
|
||||
|
||||
<span class="sd"> The wavenumber is related to the angular frequency by:</span>
|
||||
|
||||
<span class="sd"> .. math::</span>
|
||||
<span class="sd"> k={\omega \over v}={2\pi f \over v}={2\pi \over \lambda }</span>
|
||||
|
||||
<span class="sd"> where λ (lambda) is the wavelength, f is the frequency, and v is the</span>
|
||||
<span class="sd"> linear speed.</span>
|
||||
|
||||
<span class="sd"> .. seealso::</span>
|
||||
<span class="sd"> :meth:`function_cosine_wave_degree`</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">if</span> <span class="n">degree</span><span class="p">:</span>
|
||||
<span class="n">phi</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">radians</span><span class="p">(</span><span class="n">phi</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">t</span><span class="o">=</span><span class="mi">0</span><span class="p">:</span> <span class="n">A</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">k</span><span class="o">*</span><span class="n">x</span> <span class="o">+</span> <span class="mi">2</span><span class="o">*</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="o">*</span><span class="n">f</span><span class="o">*</span><span class="n">t</span> <span class="o">+</span> <span class="n">phi</span><span class="p">)</span> <span class="o">+</span> <span class="n">D</span></div>
|
||||
|
||||
<div class="viewcode-block" id="cosine_wave"><a class="viewcode-back" href="../function.html#function.cosine_wave">[docs]</a><span class="k">def</span> <span class="nf">cosine_wave</span><span class="p">(</span><span class="n">A</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">k</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">f</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">phi</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">D</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">degree</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
|
||||
<span class="sa">r</span><span class="sd">"""A cosine wave is said to be sinusoidal, because,</span>
|
||||
<span class="sd"> :math:`\cos(x) = \sin(x + \pi/2)`, which is also a sine wave with a</span>
|
||||
<span class="sd"> phase-shift of π/2 radians. Because of this head start, it is often</span>
|
||||
<span class="sd"> said that the cosine function leads the sine function or the sine</span>
|
||||
<span class="sd"> lags the cosine.</span>
|
||||
|
||||
<span class="sd"> :param A: amplitude</span>
|
||||
<span class="sd"> :type A: float or int</span>
|
||||
<span class="sd"> :param k: (angular) wave number</span>
|
||||
<span class="sd"> :type k: float or int</span>
|
||||
<span class="sd"> :param f: ordinary frequency</span>
|
||||
<span class="sd"> :type f: float or int</span>
|
||||
<span class="sd"> :param phi: phase</span>
|
||||
<span class="sd"> :type phi: float or int</span>
|
||||
<span class="sd"> :param D: non-zero center amplitude</span>
|
||||
<span class="sd"> :type D: float or int</span>
|
||||
<span class="sd"> :param degree: boolean to switch between radians and degree. If</span>
|
||||
<span class="sd"> False phi is interpreted in radians and if True then phi is</span>
|
||||
<span class="sd"> interpreted in degrees.</span>
|
||||
|
||||
<span class="sd"> .. seealso::</span>
|
||||
<span class="sd"> :meth:`function_sine_wave_degree`</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">if</span> <span class="n">degree</span><span class="p">:</span>
|
||||
<span class="n">phi</span> <span class="o">=</span> <span class="n">phi</span> <span class="o">+</span> <span class="mi">90</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">phi</span> <span class="o">=</span> <span class="n">phi</span> <span class="o">+</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="k">return</span> <span class="n">sine_wave</span><span class="p">(</span><span class="n">A</span><span class="o">=</span><span class="n">A</span><span class="p">,</span> <span class="n">k</span><span class="o">=</span><span class="n">k</span><span class="p">,</span> <span class="n">f</span><span class="o">=</span><span class="n">f</span><span class="p">,</span> <span class="n">phi</span><span class="o">=</span><span class="n">phi</span><span class="p">,</span> <span class="n">D</span><span class="o">=</span><span class="n">D</span><span class="p">,</span> <span class="n">degree</span><span class="o">=</span><span class="n">degree</span><span class="p">)</span></div>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../index.html">pylib</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../index.html">Documentation overview</a><ul>
|
||||
<li><a href="index.html">Module code</a><ul>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" />
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2019, Daniel Weschke.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.2.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
docs/build/html/_modules/index.html
vendored
1
docs/build/html/_modules/index.html
vendored
@@ -35,6 +35,7 @@
|
||||
<h1>All modules for which code is available</h1>
|
||||
<ul><li><a href="data.html">data</a></li>
|
||||
<li><a href="date.html">date</a></li>
|
||||
<li><a href="function.html">function</a></li>
|
||||
<li><a href="geometry.html">geometry</a></li>
|
||||
<li><a href="geometry_plot.html">geometry_plot</a></li>
|
||||
<li><a href="numerical/fit.html">numerical.fit</a></li>
|
||||
|
||||
6
docs/build/html/_modules/numerical/fit.html
vendored
6
docs/build/html/_modules/numerical/fit.html
vendored
@@ -37,6 +37,8 @@
|
||||
<span class="c1"># -*- coding: utf-8 -*-</span>
|
||||
<span class="sd">"""Function and approximation.</span>
|
||||
|
||||
<span class="sd">:Date: 2019-10-15</span>
|
||||
|
||||
<span class="sd">.. module:: fit</span>
|
||||
<span class="sd"> :platform: *nix, Windows</span>
|
||||
<span class="sd"> :synopsis: Function and approximation.</span>
|
||||
@@ -57,7 +59,7 @@
|
||||
<span class="sd"> :type x: int or float or list or numpy.ndarray</span>
|
||||
<span class="sd"> :param p: gauss parameters [a, b, c, d]:</span>
|
||||
|
||||
<span class="sd"> * a -- amplitude (:math:`\int y \\,\\mathrm{d}x=1 \Leftrightarrow a=1/(c\\sqrt{2\\pi})` )</span>
|
||||
<span class="sd"> * a -- amplitude (:math:`\\int y \\,\\mathrm{d}x=1 \\Leftrightarrow a=1/(c\\sqrt{2\\pi})` )</span>
|
||||
<span class="sd"> * b -- expected value :math:`\\mu` (position of maximum, default = 0)</span>
|
||||
<span class="sd"> * c -- standard deviation :math:`\\sigma` (variance :math:`\\sigma^2=c^2`)</span>
|
||||
<span class="sd"> * d -- vertical offset (default = 0)</span>
|
||||
@@ -127,7 +129,7 @@
|
||||
<span class="k">return</span> <span class="n">y_fit</span><span class="p">,</span> <span class="n">popt</span><span class="p">,</span> <span class="n">FWHM</span></div>
|
||||
|
||||
<span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s2">"__main__"</span><span class="p">:</span>
|
||||
<span class="kc">True</span>
|
||||
<span class="k">pass</span>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
<span class="kn">from</span> <span class="nn">numpy</span> <span class="k">import</span> <span class="n">linspace</span><span class="p">,</span> <span class="n">trapz</span><span class="p">,</span> <span class="n">zeros</span>
|
||||
|
||||
<div class="viewcode-block" id="trapez"><a class="viewcode-back" href="../../numerical.html#numerical.integration.trapez">[docs]</a><span class="k">def</span> <span class="nf">trapez</span><span class="p">(</span><span class="n">f</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">b</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">N</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">x</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||||
<span class="n">save_values</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
|
||||
<span class="n">save_values</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
|
||||
<span class="sa">r</span><span class="sd">"""</span>
|
||||
<span class="sd"> Integration of :math:`f(x)` using the trapezoidal rule</span>
|
||||
<span class="sd"> (Simpson's rule, Kepler's rule).</span>
|
||||
@@ -122,14 +122,14 @@
|
||||
<span class="sd"> f(x) &= x^2 \\</span>
|
||||
<span class="sd"> a &= 0 \\</span>
|
||||
<span class="sd"> b &= 1</span>
|
||||
<span class="sd"> </span>
|
||||
|
||||
<span class="sd"> analytical solution</span>
|
||||
|
||||
<span class="sd"> .. math::</span>
|
||||
<span class="sd"> I = \int\limits_{0}^{1} x^2 \,\mathrm{d}x</span>
|
||||
<span class="sd"> = \left. \frac{1}{3} x^3 \right\vert_0^1</span>
|
||||
<span class="sd"> = \frac{1}{3}</span>
|
||||
<span class="sd"> </span>
|
||||
|
||||
<span class="sd"> numerical solution</span>
|
||||
|
||||
<span class="sd"> >>> f = lambda(x): x**2</span>
|
||||
@@ -142,30 +142,30 @@
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">N</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">N</span><span class="p">)</span>
|
||||
<span class="c1"># f is function or list</span>
|
||||
<span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">f</span><span class="p">,</span> <span class="s1">'__call__'</span><span class="p">):</span>
|
||||
<span class="c1"># h width of each subinterval</span>
|
||||
<span class="n">h</span> <span class="o">=</span> <span class="p">(</span><span class="n">b</span><span class="o">-</span><span class="n">a</span><span class="p">)</span><span class="o">/</span><span class="n">N</span>
|
||||
<span class="k">if</span> <span class="n">callable</span><span class="p">(</span><span class="n">f</span><span class="p">):</span>
|
||||
<span class="c1"># h width of each subinterval</span>
|
||||
<span class="n">h</span> <span class="o">=</span> <span class="p">(</span><span class="n">b</span><span class="o">-</span><span class="n">a</span><span class="p">)</span><span class="o">/</span><span class="n">N</span>
|
||||
|
||||
<span class="c1"># x variable of integration</span>
|
||||
<span class="n">x</span> <span class="o">=</span> <span class="n">linspace</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">N</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">save_values</span><span class="p">:</span>
|
||||
<span class="c1"># ff contribution from the points</span>
|
||||
<span class="n">ff</span> <span class="o">=</span> <span class="n">zeros</span><span class="p">((</span><span class="n">N</span><span class="o">+</span><span class="mi">1</span><span class="p">))</span>
|
||||
<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">N</span><span class="p">,</span> <span class="n">N</span><span class="o">+</span><span class="mi">1</span><span class="p">):</span>
|
||||
<span class="n">ff</span><span class="p">[</span><span class="n">n</span><span class="p">]</span> <span class="o">=</span> <span class="n">f</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="n">n</span><span class="p">])</span>
|
||||
<span class="n">T</span> <span class="o">=</span> <span class="p">(</span><span class="n">ff</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="o">+</span><span class="nb">sum</span><span class="p">(</span><span class="n">ff</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="n">N</span><span class="p">])</span><span class="o">+</span><span class="n">ff</span><span class="p">[</span><span class="n">N</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span><span class="o">*</span><span class="n">h</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">TL</span> <span class="o">=</span> <span class="n">f</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="n">TR</span> <span class="o">=</span> <span class="n">f</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="n">N</span><span class="p">])</span>
|
||||
<span class="n">TI</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">N</span><span class="p">):</span>
|
||||
<span class="n">TI</span> <span class="o">=</span> <span class="n">TI</span> <span class="o">+</span> <span class="n">f</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="n">n</span><span class="p">])</span>
|
||||
<span class="n">T</span> <span class="o">=</span> <span class="p">(</span><span class="n">TL</span><span class="o">/</span><span class="mf">2.</span><span class="o">+</span><span class="n">TI</span><span class="o">+</span><span class="n">TR</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span><span class="o">*</span><span class="n">h</span>
|
||||
<span class="c1"># x variable of integration</span>
|
||||
<span class="n">x</span> <span class="o">=</span> <span class="n">linspace</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">N</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">save_values</span><span class="p">:</span>
|
||||
<span class="c1"># ff contribution from the points</span>
|
||||
<span class="n">ff</span> <span class="o">=</span> <span class="n">zeros</span><span class="p">((</span><span class="n">N</span><span class="o">+</span><span class="mi">1</span><span class="p">))</span>
|
||||
<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">N</span><span class="p">,</span> <span class="n">N</span><span class="o">+</span><span class="mi">1</span><span class="p">):</span>
|
||||
<span class="n">ff</span><span class="p">[</span><span class="n">n</span><span class="p">]</span> <span class="o">=</span> <span class="n">f</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="n">n</span><span class="p">])</span>
|
||||
<span class="n">T</span> <span class="o">=</span> <span class="p">(</span><span class="n">ff</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="o">+</span><span class="nb">sum</span><span class="p">(</span><span class="n">ff</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="n">N</span><span class="p">])</span><span class="o">+</span><span class="n">ff</span><span class="p">[</span><span class="n">N</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span><span class="o">*</span><span class="n">h</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">TL</span> <span class="o">=</span> <span class="n">f</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="n">TR</span> <span class="o">=</span> <span class="n">f</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="n">N</span><span class="p">])</span>
|
||||
<span class="n">TI</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">N</span><span class="p">):</span>
|
||||
<span class="n">TI</span> <span class="o">=</span> <span class="n">TI</span> <span class="o">+</span> <span class="n">f</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="n">n</span><span class="p">])</span>
|
||||
<span class="n">T</span> <span class="o">=</span> <span class="p">(</span><span class="n">TL</span><span class="o">/</span><span class="mf">2.</span><span class="o">+</span><span class="n">TI</span><span class="o">+</span><span class="n">TR</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span><span class="o">*</span><span class="n">h</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">N</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">f</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span>
|
||||
<span class="n">T</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">N</span><span class="p">):</span>
|
||||
<span class="n">T</span> <span class="o">=</span> <span class="n">T</span> <span class="o">+</span> <span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="n">n</span><span class="o">+</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="n">x</span><span class="p">[</span><span class="n">n</span><span class="p">])</span><span class="o">/</span><span class="mi">2</span><span class="o">*</span><span class="p">(</span><span class="n">f</span><span class="p">[</span><span class="n">n</span><span class="o">+</span><span class="mi">1</span><span class="p">]</span><span class="o">+</span><span class="n">f</span><span class="p">[</span><span class="n">n</span><span class="p">])</span>
|
||||
<span class="n">N</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">f</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span>
|
||||
<span class="n">T</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">N</span><span class="p">):</span>
|
||||
<span class="n">T</span> <span class="o">=</span> <span class="n">T</span> <span class="o">+</span> <span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="n">n</span><span class="o">+</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="n">x</span><span class="p">[</span><span class="n">n</span><span class="p">])</span><span class="o">/</span><span class="mi">2</span><span class="o">*</span><span class="p">(</span><span class="n">f</span><span class="p">[</span><span class="n">n</span><span class="o">+</span><span class="mi">1</span><span class="p">]</span><span class="o">+</span><span class="n">f</span><span class="p">[</span><span class="n">n</span><span class="p">])</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">verbose</span><span class="p">:</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="n">T</span><span class="p">)</span>
|
||||
@@ -178,12 +178,12 @@
|
||||
<span class="n">trapez</span><span class="p">(</span><span class="n">func</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mf">1e6</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="c1">#print(trapz(func, linspace(0,1,10)))</span>
|
||||
|
||||
<span class="n">trapez</span><span class="p">([</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">9</span><span class="p">],</span> <span class="n">x</span><span class="o">=</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">],</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="n">trapez</span><span class="p">([</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">9</span><span class="p">],</span> <span class="n">x</span><span class="o">=</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">],</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="c1">#print(trapz([0,1,4,9]))</span>
|
||||
|
||||
<span class="n">trapez</span><span class="p">([</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">],</span> <span class="n">x</span><span class="o">=</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">],</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="n">trapez</span><span class="p">([</span><span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">],</span> <span class="n">x</span><span class="o">=</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">],</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
|
||||
<span class="n">trapez</span><span class="p">([</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="n">x</span><span class="o">=</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">],</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="n">trapez</span><span class="p">([</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="n">x</span><span class="o">=</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">],</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
|
||||
2
docs/build/html/_modules/time_of_day.html
vendored
2
docs/build/html/_modules/time_of_day.html
vendored
@@ -45,10 +45,8 @@
|
||||
<span class="sd"> </span>
|
||||
<span class="sd">.. moduleauthor:: Daniel Weschke <daniel.weschke@directbox.de></span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">division</span><span class="p">,</span> <span class="n">print_function</span><span class="p">,</span> <span class="n">unicode_literals</span>
|
||||
<span class="kn">from</span> <span class="nn">time</span> <span class="k">import</span> <span class="n">struct_time</span><span class="p">,</span> <span class="n">mktime</span>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="in_seconds"><a class="viewcode-back" href="../time_of_day.html#time_of_day.in_seconds">[docs]</a><span class="k">def</span> <span class="nf">in_seconds</span><span class="p">(</span><span class="n">time</span><span class="p">):</span>
|
||||
<span class="sd">"""If time is `time.struct_time` convert to float seconds.</span>
|
||||
|
||||
|
||||
7
docs/build/html/_sources/function.rst.txt
vendored
Normal file
7
docs/build/html/_sources/function.rst.txt
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
function module
|
||||
===============
|
||||
|
||||
.. automodule:: function
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
1
docs/build/html/_sources/modules.rst.txt
vendored
1
docs/build/html/_sources/modules.rst.txt
vendored
@@ -6,6 +6,7 @@ pylib
|
||||
|
||||
data
|
||||
date
|
||||
function
|
||||
geometry
|
||||
geometry_plot
|
||||
numerical
|
||||
|
||||
190
docs/build/html/function.html
vendored
Normal file
190
docs/build/html/function.html
vendored
Normal file
@@ -0,0 +1,190 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>function module — pylib 2019.5.19 documentation</title>
|
||||
<link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="_static/language_data.js"></script>
|
||||
<script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<link rel="index" title="Index" href="genindex.html" />
|
||||
<link rel="search" title="Search" href="search.html" />
|
||||
|
||||
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<div class="section" id="module-function">
|
||||
<span id="function-module"></span><h1>function module<a class="headerlink" href="#module-function" title="Permalink to this headline">¶</a></h1>
|
||||
<p>Mathematical functions.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Date</dt>
|
||||
<dd class="field-odd"><p>2019-10-27</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<span class="target" id="module-function"></span><dl class="function">
|
||||
<dt id="function.cosine_wave">
|
||||
<code class="sig-name descname">cosine_wave</code><span class="sig-paren">(</span><em class="sig-param">A=1</em>, <em class="sig-param">k=1</em>, <em class="sig-param">f=1</em>, <em class="sig-param">phi=0</em>, <em class="sig-param">D=0</em>, <em class="sig-param">degree=False</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/function.html#cosine_wave"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#function.cosine_wave" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>A cosine wave is said to be sinusoidal, because,
|
||||
<span class="math notranslate nohighlight">\(\cos(x) = \sin(x + \pi/2)\)</span>, which is also a sine wave with a
|
||||
phase-shift of π/2 radians. Because of this head start, it is often
|
||||
said that the cosine function leads the sine function or the sine
|
||||
lags the cosine.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><ul class="simple">
|
||||
<li><p><strong>A</strong> (<em>float</em><em> or </em><em>int</em>) – amplitude</p></li>
|
||||
<li><p><strong>k</strong> (<em>float</em><em> or </em><em>int</em>) – (angular) wave number</p></li>
|
||||
<li><p><strong>f</strong> (<em>float</em><em> or </em><em>int</em>) – ordinary frequency</p></li>
|
||||
<li><p><strong>phi</strong> (<em>float</em><em> or </em><em>int</em>) – phase</p></li>
|
||||
<li><p><strong>D</strong> (<em>float</em><em> or </em><em>int</em>) – non-zero center amplitude</p></li>
|
||||
<li><p><strong>degree</strong> – boolean to switch between radians and degree. If
|
||||
False phi is interpreted in radians and if True then phi is
|
||||
interpreted in degrees.</p></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<div class="admonition seealso">
|
||||
<p class="admonition-title">See also</p>
|
||||
<p><code class="xref py py-meth docutils literal notranslate"><span class="pre">function_sine_wave_degree()</span></code></p>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="function.sine_wave">
|
||||
<code class="sig-name descname">sine_wave</code><span class="sig-paren">(</span><em class="sig-param">A=1</em>, <em class="sig-param">k=1</em>, <em class="sig-param">f=1</em>, <em class="sig-param">phi=0</em>, <em class="sig-param">D=0</em>, <em class="sig-param">degree=False</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/function.html#sine_wave"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#function.sine_wave" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>A sine wave or sinusoid is a mathematical curve that describes a
|
||||
smooth periodic oscillation.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><ul class="simple">
|
||||
<li><p><strong>A</strong> (<em>float</em><em> or </em><em>int</em>) – amplitude</p></li>
|
||||
<li><p><strong>k</strong> (<em>float</em><em> or </em><em>int</em>) – (angular) wave number</p></li>
|
||||
<li><p><strong>f</strong> (<em>float</em><em> or </em><em>int</em>) – ordinary frequency</p></li>
|
||||
<li><p><strong>phi</strong> (<em>float</em><em> or </em><em>int</em>) – phase</p></li>
|
||||
<li><p><strong>D</strong> (<em>float</em><em> or </em><em>int</em>) – non-zero center amplitude</p></li>
|
||||
<li><p><strong>degree</strong> – boolean to switch between radians and degree. If
|
||||
False phi is interpreted in radians and if True then phi is
|
||||
interpreted in degrees.</p></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>In general, the function is:</p>
|
||||
<div class="math notranslate nohighlight">
|
||||
\[\begin{split}y(x,t) = A\sin(kx + 2\pi f t + \varphi) + D \\
|
||||
y(x,t) = A\sin(kx + \omega t + \varphi) + D\end{split}\]</div>
|
||||
<p>where:</p>
|
||||
<blockquote>
|
||||
<div><ul class="simple">
|
||||
<li><p>A, amplitude, the peak deviation of the function from zero.</p></li>
|
||||
<li><p>f, ordinary frequency, the number of oscillations (cycles) that
|
||||
occur each second of time.</p></li>
|
||||
<li><p>ω = 2πf, angular frequency, the rate of change of the function
|
||||
argument in units of radians per second. If ω < 0 the wave is
|
||||
moving to the right, if ω > 0 the wave is moving to the left.</p></li>
|
||||
<li><p>φ, phase, specifies (in radians) where in its cycle the
|
||||
oscillation is at t = 0.</p></li>
|
||||
<li><p>x, spatial variable that represents the position on the
|
||||
dimension on which the wave propagates.</p></li>
|
||||
<li><p>k, characteristic parameter called wave number (or angular wave
|
||||
number), which represents the proportionality between the
|
||||
angular frequency ω and the linear speed (speed of propagation)
|
||||
ν.</p></li>
|
||||
<li><p>D, non-zero center amplitude.</p></li>
|
||||
</ul>
|
||||
</div></blockquote>
|
||||
<p>The wavenumber is related to the angular frequency by:</p>
|
||||
<div class="math notranslate nohighlight">
|
||||
\[k={\omega \over v}={2\pi f \over v}={2\pi \over \lambda }\]</div>
|
||||
<p>where λ (lambda) is the wavelength, f is the frequency, and v is the
|
||||
linear speed.</p>
|
||||
<div class="admonition seealso">
|
||||
<p class="admonition-title">See also</p>
|
||||
<p><code class="xref py py-meth docutils literal notranslate"><span class="pre">function_cosine_wave_degree()</span></code></p>
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="index.html">pylib</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="index.html">Documentation overview</a><ul>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" />
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2019, Daniel Weschke.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.2.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
|
|
||||
<a href="_sources/function.rst.txt"
|
||||
rel="nofollow">Page source</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
12
docs/build/html/genindex.html
vendored
12
docs/build/html/genindex.html
vendored
@@ -72,6 +72,8 @@
|
||||
<h2 id="C">C</h2>
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="function.html#function.cosine_wave">cosine_wave() (in module function)</a>
|
||||
</li>
|
||||
<li><a href="geometry.html#geometry.cubic">cubic() (in module geometry)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
@@ -132,11 +134,13 @@
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="numerical.html#module-fit">fit (module)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="data.html#data.fold_list">fold_list() (in module data)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="numerical.html#numerical.ode.fpi">fpi() (in module numerical.ode)</a>
|
||||
</li>
|
||||
<li><a href="function.html#module-function">function (module)</a>, <a href="function.html#module-function">[1]</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
</tr></table>
|
||||
@@ -287,10 +291,12 @@
|
||||
<li><a href="time_of_day.html#time_of_day.seconds">seconds() (in module time_of_day)</a>
|
||||
</li>
|
||||
<li><a href="time_of_day.html#time_of_day.seconds_norm">seconds_norm() (in module time_of_day)</a>
|
||||
</li>
|
||||
<li><a href="data.html#data.seq">seq() (in module data)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="data.html#data.seq">seq() (in module data)</a>
|
||||
<li><a href="function.html#function.sine_wave">sine_wave() (in module function)</a>
|
||||
</li>
|
||||
<li><a href="geometry.html#geometry.square">square() (in module geometry)</a>
|
||||
</li>
|
||||
|
||||
1
docs/build/html/modules.html
vendored
1
docs/build/html/modules.html
vendored
@@ -38,6 +38,7 @@
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="data.html">data module</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="date.html">date module</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="function.html">function module</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="geometry.html">geometry module</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="geometry_plot.html">geometry_plot module</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="numerical.html">numerical package</a><ul>
|
||||
|
||||
5
docs/build/html/numerical.html
vendored
5
docs/build/html/numerical.html
vendored
@@ -40,6 +40,11 @@
|
||||
<div class="section" id="module-numerical.fit">
|
||||
<span id="numerical-fit-module"></span><h2>numerical.fit module<a class="headerlink" href="#module-numerical.fit" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Function and approximation.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Date</dt>
|
||||
<dd class="field-odd"><p>2019-10-15</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<span class="target" id="module-fit"></span><dl class="function">
|
||||
<dt id="numerical.fit.gauss">
|
||||
<code class="sig-name descname">gauss</code><span class="sig-paren">(</span><em class="sig-param">x</em>, <em class="sig-param">*p</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/numerical/fit.html#gauss"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#numerical.fit.gauss" title="Permalink to this definition">¶</a></dt>
|
||||
|
||||
BIN
docs/build/html/objects.inv
vendored
BIN
docs/build/html/objects.inv
vendored
Binary file not shown.
5
docs/build/html/py-modindex.html
vendored
5
docs/build/html/py-modindex.html
vendored
@@ -74,6 +74,11 @@
|
||||
<td>
|
||||
<a href="numerical.html#module-fit"><code class="xref">fit</code></a> <em>(*nix, Windows)</em></td><td>
|
||||
<em>Function and approximation.</em></td></tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<a href="function.html#module-function"><code class="xref">function</code></a> <em>(*nix, Windows)</em></td><td>
|
||||
<em>Mathematical functions.</em></td></tr>
|
||||
<tr class="pcap"><td></td><td> </td><td></td></tr>
|
||||
<tr class="cap" id="cap-g"><td></td><td>
|
||||
<strong>g</strong></td><td></td></tr>
|
||||
|
||||
2
docs/build/html/searchindex.js
vendored
2
docs/build/html/searchindex.js
vendored
File diff suppressed because one or more lines are too long
7
docs/source/function.rst
Normal file
7
docs/source/function.rst
Normal file
@@ -0,0 +1,7 @@
|
||||
function module
|
||||
===============
|
||||
|
||||
.. automodule:: function
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -6,6 +6,7 @@ pylib
|
||||
|
||||
data
|
||||
date
|
||||
function
|
||||
geometry
|
||||
geometry_plot
|
||||
numerical
|
||||
|
||||
100
pylib/function.py
Normal file
100
pylib/function.py
Normal file
@@ -0,0 +1,100 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
"""Mathematical functions.
|
||||
|
||||
:Date: 2019-10-27
|
||||
|
||||
.. module:: function
|
||||
:platform: *nix, Windows
|
||||
:synopsis: Mathematical functions.
|
||||
|
||||
.. moduleauthor:: Daniel Weschke <daniel.weschke@directbox.de>
|
||||
"""
|
||||
import math
|
||||
|
||||
def sine_wave(A=1, k=1, f=1, phi=0, D=0, degree=False):
|
||||
r"""A sine wave or sinusoid is a mathematical curve that describes a
|
||||
smooth periodic oscillation.
|
||||
|
||||
:param A: amplitude
|
||||
:type A: float or int
|
||||
:param k: (angular) wave number
|
||||
:type k: float or int
|
||||
:param f: ordinary frequency
|
||||
:type f: float or int
|
||||
:param phi: phase
|
||||
:type phi: float or int
|
||||
:param D: non-zero center amplitude
|
||||
:type D: float or int
|
||||
:param degree: boolean to switch between radians and degree. If
|
||||
False phi is interpreted in radians and if True then phi is
|
||||
interpreted in degrees.
|
||||
|
||||
In general, the function is:
|
||||
|
||||
.. math::
|
||||
y(x,t) = A\sin(kx + 2\pi f t + \varphi) + D \\
|
||||
y(x,t) = A\sin(kx + \omega t + \varphi) + D
|
||||
|
||||
where:
|
||||
|
||||
* A, amplitude, the peak deviation of the function from zero.
|
||||
* f, ordinary frequency, the number of oscillations (cycles) that
|
||||
occur each second of time.
|
||||
* ω = 2πf, angular frequency, the rate of change of the function
|
||||
argument in units of radians per second. If ω < 0 the wave is
|
||||
moving to the right, if ω > 0 the wave is moving to the left.
|
||||
* φ, phase, specifies (in radians) where in its cycle the
|
||||
oscillation is at t = 0.
|
||||
* x, spatial variable that represents the position on the
|
||||
dimension on which the wave propagates.
|
||||
* k, characteristic parameter called wave number (or angular wave
|
||||
number), which represents the proportionality between the
|
||||
angular frequency ω and the linear speed (speed of propagation)
|
||||
ν.
|
||||
* D, non-zero center amplitude.
|
||||
|
||||
The wavenumber is related to the angular frequency by:
|
||||
|
||||
.. math::
|
||||
k={\omega \over v}={2\pi f \over v}={2\pi \over \lambda }
|
||||
|
||||
where λ (lambda) is the wavelength, f is the frequency, and v is the
|
||||
linear speed.
|
||||
|
||||
.. seealso::
|
||||
:meth:`function_cosine_wave_degree`
|
||||
"""
|
||||
if degree:
|
||||
phi = math.radians(phi)
|
||||
return lambda x, t=0: A*math.sin(k*x + 2*math.pi*f*t + phi) + D
|
||||
|
||||
def cosine_wave(A=1, k=1, f=1, phi=0, D=0, degree=False):
|
||||
r"""A cosine wave is said to be sinusoidal, because,
|
||||
:math:`\cos(x) = \sin(x + \pi/2)`, which is also a sine wave with a
|
||||
phase-shift of π/2 radians. Because of this head start, it is often
|
||||
said that the cosine function leads the sine function or the sine
|
||||
lags the cosine.
|
||||
|
||||
:param A: amplitude
|
||||
:type A: float or int
|
||||
:param k: (angular) wave number
|
||||
:type k: float or int
|
||||
:param f: ordinary frequency
|
||||
:type f: float or int
|
||||
:param phi: phase
|
||||
:type phi: float or int
|
||||
:param D: non-zero center amplitude
|
||||
:type D: float or int
|
||||
:param degree: boolean to switch between radians and degree. If
|
||||
False phi is interpreted in radians and if True then phi is
|
||||
interpreted in degrees.
|
||||
|
||||
.. seealso::
|
||||
:meth:`function_sine_wave_degree`
|
||||
"""
|
||||
if degree:
|
||||
phi = phi + 90
|
||||
else:
|
||||
phi = phi + math.pi/2
|
||||
return sine_wave(A=A, k=k, f=f, phi=phi, D=D, degree=degree)
|
||||
@@ -2,6 +2,8 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""Function and approximation.
|
||||
|
||||
:Date: 2019-10-15
|
||||
|
||||
.. module:: fit
|
||||
:platform: *nix, Windows
|
||||
:synopsis: Function and approximation.
|
||||
@@ -22,7 +24,7 @@ def gauss(x, *p):
|
||||
:type x: int or float or list or numpy.ndarray
|
||||
:param p: gauss parameters [a, b, c, d]:
|
||||
|
||||
* a -- amplitude (:math:`\int y \\,\\mathrm{d}x=1 \Leftrightarrow a=1/(c\\sqrt{2\\pi})` )
|
||||
* a -- amplitude (:math:`\\int y \\,\\mathrm{d}x=1 \\Leftrightarrow a=1/(c\\sqrt{2\\pi})` )
|
||||
* b -- expected value :math:`\\mu` (position of maximum, default = 0)
|
||||
* c -- standard deviation :math:`\\sigma` (variance :math:`\\sigma^2=c^2`)
|
||||
* d -- vertical offset (default = 0)
|
||||
@@ -92,4 +94,4 @@ def gauss_fit(x, y, e=None, x_fit=None, verbose=False):
|
||||
return y_fit, popt, FWHM
|
||||
|
||||
if __name__ == "__main__":
|
||||
True
|
||||
pass
|
||||
|
||||
@@ -16,7 +16,7 @@ from __future__ import division
|
||||
from numpy import linspace, trapz, zeros
|
||||
|
||||
def trapez(f, a=0, b=1, N=10, x=None, verbose=False,
|
||||
save_values=False):
|
||||
save_values=False):
|
||||
r"""
|
||||
Integration of :math:`f(x)` using the trapezoidal rule
|
||||
(Simpson's rule, Kepler's rule).
|
||||
@@ -87,14 +87,14 @@ def trapez(f, a=0, b=1, N=10, x=None, verbose=False,
|
||||
f(x) &= x^2 \\
|
||||
a &= 0 \\
|
||||
b &= 1
|
||||
|
||||
|
||||
analytical solution
|
||||
|
||||
.. math::
|
||||
I = \int\limits_{0}^{1} x^2 \,\mathrm{d}x
|
||||
= \left. \frac{1}{3} x^3 \right\vert_0^1
|
||||
= \frac{1}{3}
|
||||
|
||||
|
||||
numerical solution
|
||||
|
||||
>>> f = lambda(x): x**2
|
||||
@@ -107,30 +107,30 @@ def trapez(f, a=0, b=1, N=10, x=None, verbose=False,
|
||||
"""
|
||||
N = int(N)
|
||||
# f is function or list
|
||||
if hasattr(f, '__call__'):
|
||||
# h width of each subinterval
|
||||
h = (b-a)/N
|
||||
if callable(f):
|
||||
# h width of each subinterval
|
||||
h = (b-a)/N
|
||||
|
||||
# x variable of integration
|
||||
x = linspace(a, b, N+1)
|
||||
if save_values:
|
||||
# ff contribution from the points
|
||||
ff = zeros((N+1))
|
||||
for n in linspace(0, N, N+1):
|
||||
ff[n] = f(x[n])
|
||||
T = (ff[0]/2.+sum(ff[1:N])+ff[N]/2.)*h
|
||||
else:
|
||||
TL = f(x[0])
|
||||
TR = f(x[N])
|
||||
TI = 0
|
||||
for n in range(1, N):
|
||||
TI = TI + f(x[n])
|
||||
T = (TL/2.+TI+TR/2.)*h
|
||||
# x variable of integration
|
||||
x = linspace(a, b, N+1)
|
||||
if save_values:
|
||||
# ff contribution from the points
|
||||
ff = zeros((N+1))
|
||||
for n in linspace(0, N, N+1):
|
||||
ff[n] = f(x[n])
|
||||
T = (ff[0]/2.+sum(ff[1:N])+ff[N]/2.)*h
|
||||
else:
|
||||
TL = f(x[0])
|
||||
TR = f(x[N])
|
||||
TI = 0
|
||||
for n in range(1, N):
|
||||
TI = TI + f(x[n])
|
||||
T = (TL/2.+TI+TR/2.)*h
|
||||
else:
|
||||
N = len(f)-1
|
||||
T = 0
|
||||
for n in range(N):
|
||||
T = T + (x[n+1]-x[n])/2*(f[n+1]+f[n])
|
||||
N = len(f)-1
|
||||
T = 0
|
||||
for n in range(N):
|
||||
T = T + (x[n+1]-x[n])/2*(f[n+1]+f[n])
|
||||
|
||||
if verbose:
|
||||
print(T)
|
||||
@@ -143,9 +143,9 @@ if __name__ == '__main__':
|
||||
trapez(func, 0, 1, 1e6, verbose=True)
|
||||
#print(trapz(func, linspace(0,1,10)))
|
||||
|
||||
trapez([0,1,4,9], x=[0,1,2,3], verbose=True)
|
||||
trapez([0, 1, 4, 9], x=[0, 1, 2, 3], verbose=True)
|
||||
#print(trapz([0,1,4,9]))
|
||||
|
||||
trapez([2,2], x=[-1,1], verbose=True)
|
||||
trapez([2, 2], x=[-1, 1], verbose=True)
|
||||
|
||||
trapez([-1,1,1,-1], x=[-1,-1,1,1], verbose=True)
|
||||
trapez([-1, 1, 1, -1], x=[-1, -1, 1, 1], verbose=True)
|
||||
|
||||
Reference in New Issue
Block a user