114 lines
No EOL
4.5 KiB
HTML
114 lines
No EOL
4.5 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html>
|
|
<head>
|
|
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
|
|
</META>
|
|
<title>Lagrange
|
|
</title>
|
|
<style>body {background-color: rgb(192,255,255);} h2 {color: rgb(64,0,192);} h3 {color: rgb(192,0,0);} table {color: rgb(128,0,128);}
|
|
</style>
|
|
<script type="text/x-mathjax-config">MathJax.Hub.Config({
|
|
extensions: ["tex2jax.js","TeX/AMSmath.js"],
|
|
jax: ["input/TeX","output/HTML-CSS"],
|
|
tex2jax: {inlineMath: [['$','$']]},
|
|
displayAlign: "left"});
|
|
</script>
|
|
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js">
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div>
|
|
<h1>Automatický výpočet Hamiltonových rovnic z lagranžiánu v pythonu pomocí sympy - vyzkoušené příklady.
|
|
</h1>
|
|
<p>
|
|
Tento jednoduchý skript řeší poměrně otravný problém, který
|
|
je však snadno algoritmizovatelný. Jsou to jen opakované parciální derivace,
|
|
jejichž výsledky jsou dosazovány do daných výrazů. Protože se přitom člověk
|
|
snadno splete (hlavně ve znaménku), je lepší to nechat na programu.
|
|
Stačí nadefinovat potřebné symboly pro konstanty a časově závislé proměnné
|
|
(zobecněné souřadnice), pomocí nich pak vyjádřit lagranžián a o zbytek se postará python.
|
|
|
|
</p>
|
|
<div><hr>
|
|
<h2>Řešený problém : Railgun
|
|
</h2>
|
|
<h3>1.1. Zadaný lagranžián :
|
|
</h3>
|
|
<p class="formulaDsp">\[L = \frac{m \left(\dot{x}\right)^{2}}{2} + \frac{\mu \left(\dot{Q}\right)^{2}}{2} x - \frac{Q^{2}}{2 C}\]
|
|
</p>
|
|
<h3>1.2. Lagrangeovy rovnice :
|
|
</h3>
|
|
<p class="formulaDsp">\[\left [ m \ddot{x} - \frac{\mu \left(\dot{Q}\right)^{2}}{2} = 0, \quad \mu x \ddot{Q} + \mu \dot{Q} \dot{x} + \frac{Q}{C} = 0\right ]\]
|
|
</p>
|
|
<h3>1.3. Hamiltonova funkce :
|
|
</h3>
|
|
<p class="formulaDsp">\[H = \frac{p^{2}_{Q}}{2 \mu x} + \frac{p^{2}_{x}}{2 m} + \frac{Q^{2}}{2 C}\]
|
|
</p>
|
|
<h3>1.4. Hamiltonovy kanonické rovnice :
|
|
</h3>
|
|
<table align="center">
|
|
<tr>
|
|
<td class="formulaDsp">\[\dot{x}=\frac{p_{x}}{m}\qquad\]</td>
|
|
<td class="formulaDsp">\[\dot{p}_{x}=\frac{p^{2}_{Q}}{2 \mu x^{2}}\qquad\]</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="formulaDsp">\[\dot{Q}=\frac{p_{Q}}{\mu x}\qquad\]</td>
|
|
<td class="formulaDsp">\[\dot{p}_{Q}=- \frac{Q}{C}\qquad\]</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div><hr>
|
|
<h2>Řešený problém : Pohyb planety
|
|
</h2>
|
|
<h3>2.1. Zadaný lagranžián :
|
|
</h3>
|
|
<p class="formulaDsp">\[L = \frac{G M}{r} m + \frac{m}{2} \left(r^{2} \left(\dot{\phi}\right)^{2} + \left(\dot{r}\right)^{2}\right)\]
|
|
</p>
|
|
<h3>2.2. Lagrangeovy rovnice :
|
|
</h3>
|
|
<p class="formulaDsp">\[\left [ \frac{G M}{r^{2}} - r \left(\dot{\phi}\right)^{2} + \ddot{r} = 0, \quad r^{2} \ddot{\phi} + 2 r \dot{\phi} \dot{r} = 0\right ]\]
|
|
</p>
|
|
<h3>2.3. Hamiltonova funkce :
|
|
</h3>
|
|
<p class="formulaDsp">\[H = - \frac{G M}{r} m + \frac{p^{2}_{\phi}}{2 m r^{2}} + \frac{p^{2}_{r}}{2 m}\]
|
|
</p>
|
|
<h3>2.4. Hamiltonovy kanonické rovnice :
|
|
</h3>
|
|
<table align="center">
|
|
<tr>
|
|
<td class="formulaDsp">\[\dot{r}=\frac{p_{r}}{m}\qquad\]</td>
|
|
<td class="formulaDsp">\[\dot{p}_{r}=- \frac{G M}{r^{2}} m + \frac{p^{2}_{\phi}}{m r^{3}}\qquad\]</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="formulaDsp">\[\dot{\phi}=\frac{p_{\phi}}{m r^{2}}\qquad\]</td>
|
|
<td class="formulaDsp">\[\dot{p}_{\phi}=0\qquad\]</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div><hr>
|
|
<h2>Řešený problém : Harmonický oscilátor
|
|
</h2>
|
|
<h3>3.1. Zadaný lagranžián :
|
|
</h3>
|
|
<p class="formulaDsp">\[L = - \frac{m \omega^{2}}{2} x^{2} + \frac{m \left(\dot{x}\right)^{2}}{2}\]
|
|
</p>
|
|
<h3>3.2. Lagrangeovy rovnice :
|
|
</h3>
|
|
<p class="formulaDsp">\[\left [ \omega^{2} x + \ddot{x} = 0\right ]\]
|
|
</p>
|
|
<h3>3.3. Hamiltonova funkce :
|
|
</h3>
|
|
<p class="formulaDsp">\[H = \frac{m \omega^{2}}{2} x^{2} + \frac{p^{2}_{x}}{2 m}\]
|
|
</p>
|
|
<h3>3.4. Hamiltonovy kanonické rovnice :
|
|
</h3>
|
|
<table align="center">
|
|
<tr>
|
|
<td class="formulaDsp">\[\dot{x}=\frac{p_{x}}{m}\qquad\]</td>
|
|
<td class="formulaDsp">\[\dot{p}_{x}=- m \omega^{2} x\qquad\]</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html> |