199 lines
11 KiB
HTML
199 lines
11 KiB
HTML
|
||
<!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> |