Gravitace jako zrychlení základny
V Newtonově rovnici pro článek je člen m·g: tíha, kterou článek nese. Dá se to
tak počítat a je to poctivé — jenže to znamená u každého článku znát, kam v jeho vlastním rámci
gravitace míří, tedy pro každý článek přepočítat vektor g. To je při každém volání
zbytečná práce navíc.
Existuje trik, který ji celou ušetří, a není to trik z numeriky — je to fyzika:
Rozjeď základnu vzhůru zrychlením g a gravitaci pak nikde nepiš.
Stačí do dopředného průchodu vstoupit s a₀ = −g místo nuly a všechny členy
m·g ve zpětném průchodu vypustit. Vyjde přesně totéž.
Funguje to proto, že tíhové a setrvačné síly jsou v pohybové rovnici nerozlišitelné. Tomu se říká princip ekvivalence a je to tentýž fakt, kvůli kterému se ve výtahu při rozjezdu cítíte těžší. Solver umí obě varianty a testy hlídají, že dávají shodný výsledek na strojovou přesnost — kdyby se někdy rozešly, je chyba v jedné z nich.
Statika je speciální případ, ne jiný výpočet
Dosaď do rovnic q̇ = 0 a q̈ = 0. Zbude jediný člen:
Nemusí se tedy psát zvlášť statický výpočet — je to týž kód, jen se do něj pošlou nuly. To je zároveň nejlepší způsob, jak si dynamický řešič ověřit: statiku umíte spočítat ručně, jako součet momentů tíh kolem osy kloubu, a musí to sedět na všechny číslice.
Kontrola, kterou stojí za to udělat vždycky. Postav rameno vodorovně, vypni všechen pohyb a sečti ručně momenty tíh kolem osy prvního kloubu. Pokud to solver vrátí jinak, není chyba v dynamice — je v hmotnostech, v těžištích nebo ve znaménku gravitace. Dynamiku nemá cenu ladit, dokud statika nesedí.
A ještě jeden trik ze stejné rodiny
Když se do stejného vstupu pošle g = 0, dostaneme rameno „ve vesmíru": zbudou jen
setrvačné a rychlostní členy. Právě tak se v šesté kapitole vytáhne z jednoho jediného výpočtu
matice setrvačnosti — vypnutím gravitace a rychlostí. Rekurze je jeden nástroj, kterým se dá
změřit i to, co v ní na první pohled není.