Analyze the Harmonic Oscillator with SymPy
<p>SymPy is a powerful Python library for symbolic mathematics. In this blog we will use its functions to explore the dynamics of the damped harmonic oscillator and demonstrate the power of the library in classical mechanics. Here are the most important functions that we will use in this post [1]:</p>
<p><strong>Symbols and Functions</strong></p>
<ul>
<li><code>sp.symbols()</code>: Defines symbolic variables. For instance, <code>t, m, c, k = sp.symbols('t m c k')</code> creates four symbolic variables: t, m, c, and k.</li>
<li><code>sp.Function()</code>: Declares symbolic functions, such as <code>x = sp.Function('x')(t)</code> to represent a function x(t).</li>
</ul>
<p><strong>Differential Equations</strong></p>
<ul>
<li><code>diff()</code>: Computes the derivative of an expression. For example, <code>x.diff(t)</code> returns the first derivative of x(t) with respect to t.</li>
<li><code>sp.Eq()</code>: Represents a mathematical equality between two expressions.</li>
<li><code>sp.dsolve()</code>: Solves ordinary differential equations.</li>
</ul>
<p><strong>Manipulations and Substitutions</strong></p>
<ul>
<li><code>subs()</code>: Substitutes a symbol or expression with another. For instance, <code>expr.subs(m, 1)</code> replaces all instances of mm in <code>expr</code> with the value 1.</li>
<li><code>sp.solve()</code>: Solves algebraic equations.</li>
<li><code>sp.N()</code>: Numerically evaluates an expression to a specified level of precision.</li>
</ul>
<p><strong>Lambda Function</strong></p>
<ul>
<li><code>sp.lambdify()</code>: Converts symbolic expressions into Python functions for numerical evaluations. It's especially useful for visualizing solutions with <code>matplotlib</code>.</li>
</ul>
<p><strong>LaTeX</strong></p>
<ul>
<li><code>sp.latex()</code>: Converts symbolic expressions into its corresponding LaTeX representation.</li>
</ul>
<h1>Damped Harmonic Oscillator</h1>
<p>A damped harmonic oscillator is a system that oscillates about an equilibrium position, subjected to a damping force that opposes the motion and is proportional to the velocity of the system. This damping force models the effects of resistance or friction encountered by the oscillator.</p>
<p><a href="https://medium.com/@hanneskoessl/analyze-the-harmonic-oscillator-with-sympy-a086797be13e">Click Here</a></p>