|
Název: Arccos Přispěvatel: libor 26.06.2012, 12:02:40 Potřeboval bych k výpočtu objemu kapaliny v nádobě (položený válec), kde se měří výška hladiny, funkci arccos. V modulu Compute jsem našel pouze arctan (atan). Lze nějak na CCPU-03 spočítat arccos?
Dotaz zákazníka (viz výzva (http://forum.elsaco.cz/index.php?topic=13.msg112#msg112)). Název: Re: Arccos Přispěvatel: libor 26.06.2012, 12:20:39 Pro výpočet Arccos lze využít minimálně 2 metody. Buď pomocí rozvoje nebo pomocí funkce Arctan, kterou PL2 umí.
První varianta je popsána na anglické verzi Wikipedie (http://en.wikipedia.org/wiki/Inverse_trigonometric_function). Jedná se o rozvoj (viz příloha), od kterého spočítáme prvních pár členů. Výsledek je vidět na obrázku a v přiložené projektu. Druhou možností je výpočet přes Arctan: Kód: Arccos(X) = Atn(-X / Sqr(-X * X + 1)) + PI / 2 Tuto možnost opět vidíte na obrázku a v přiloženém projektu. První varianta je v krajních polohách (okolo 0.95 a -0.95) nepřesná, ale je stabilní. Druhá varianta je přesnější i v krajích, ale je nestabilní v krajních bodech 1.0 a -1.0 (nejspíš to souvisí s přesností výpočtu pomocí 4 bajtových floatů). Druhou vraintu je proto potřeba používat pouze v rozmezích <-0.99, 0.99>. |