Calculator/Hamilton/equations.html
2023-12-02 14:12:25 +01:00

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>