JSNotebook umožňuje generovat dynamický obsah pomocí funkčních bloků. Je inspirován TeXem, Jupyter Notebookem a Matlab Live Scriptem. Funkční bloky umoňují přidávat text, rovnice, obrázky a JavaScript kód. Textové bloky mohou obsahovat HTML značky. JavaScript se používá pro výpočty nebo tvorbu složitějšího obsahu, než nabízejí základní bloky. Bloky s textem a rovnicemi umožňují dynamické nahrazení části obsahu odkazem na JavaScript objekt GLOBAL (nebo pouze G). Používá se pro to příkaz \var{GLOBAL.mojePromenna} nebo \var{G.mojePromenna}, který bude po kompilaci nahrazen obsahem proměnné. Vytvořené bloky lze ukládat i načítat. Obsah uloženého souboru obsahuje pouze JavaScript příkazy addTxtBlock(...), addEqBlock(...), addImgBlock(...) a addJsBlock(...). Celý JSNotebook je postavený na kontroverzní funkci eval(), která spouští JavaScript kód uložený v textové podobě (string). Šance na zneužití nebo útok je malá (stránka se nepřipojuje na žádný server ani nemanipuluje s citlivými daty) a škody by mohly být maximálně zamrznutý prohlížeč, přesto je dobré načítat a spouštět pouze bloky, u kterých jste si jistí jejich původem a neškodností. Defaultně načtené bloky jsou vytvořené mnou a neobsahují nebezpečný kód. Pokud máte problém s kompilací, můžete si v prohlížeči otevřít vývojářské nástroje, otevřít si konzoli a podívat se na chyby, které stránka při kompilaci hlásí. Obsah textových nebo rovnicových bloků začínajících středníkem (;, U+003B, alt+59) nebude zobrazen. Při kompilaci prohlížeč nachvilku zamrzne, kvůli výpočtům a renderování rovnic. Na mobilu může být zásek znatelně delší. Stránka je určena především pro desktopové webové prohlížeče.
Zadané napětí:
Tenzor napětí:
Invarianty tenzoru napětí:
Pro stanovení hlavních napětí musíme vyřešit kubickou charakteristickou rovnici:
Pro zjištění kořenů kubické rovnice existuje řada postupů. Jedním z nich jsou např. Cardanovy vzorce, které vyžadují operace s imaginárními čísly i v našem případě, kdy víme, že kubika má všechny kořeny reálné. Pro náš případ existuje implementačně jednodušší řešení, které vytvořili francoužští matematici François Viète a René Descartes.
Obecnou kubiku
Diskriminant upravené kubiky se vypočítá
V tomto případě jsou koeficienty obecné kubiky:
Koeficienty upravené kubiky:
Determinant upravené kubiky:
Platí
Výsledkem výpočtu jsou hlavní napětí
Hlavní napětí jako obyčejný text pro zkopírování: 70.191, 33.596, -73.787.
Kontrola hlavních napětí pomocí invariant tenzoru. Musí platit
Pro určení úhlů hlavních rovin musíme vyřešit následující soustavu nelineárních rovnic, kde první tři lineární rovnice jsou lineárně závislé.
Abychom pro výpočet nemuseli vybírat dvě lineárně nezávislé rovnice z prvních třech rovnic, sečteme první dvě rovnice a budeme řešit následující soustavu. Pro zjednodušení problému zavedeme
Pro tuto soustavu lze nalézt obecné řešení:
Určení hlavních rovin pro první hlavní napětí:
Úhly a cosiny uhlů hlavní roviny prvního hlavního napětí jako obyčejný text pro zkopírování:
Určení hlavních rovin pro druhé hlavní napětí:
Úhly a cosiny uhlů hlavní roviny druhého hlavního napětí jako obyčejný text pro zkopírování:
Určení hlavních rovin pro třetí hlavní napětí:
Úhly a cosiny uhlů hlavní roviny třetího hlavního napětí jako obyčejný text pro zkopírování:
Výsledkem výpočtů je souhrnná tabulka obsahující hlavní napětí a pro ně vypočítané úhly hlavních rovin.
Stránka využívá skripty MathJax, FileSaver.js a Blob.js.