Archiv diskusního fóra o matematice, 2006–2026
Ahojte. Chci zapsat arcsin, ale jen pomocí +,-,*,/. Našel jsem si na Wikipedii Taylorovu řadu, ověřil jsem si to v "BARTSCH Matematicke vzorce". Teď bádám nad tím, jak zapíši mocninu. Našel jsem způsob, jak zapíši pouze druhou mocninu pomocí sčítání.
Mám rozepsané na papíře několik možností, ale ani z jedné mi nic nevychází. Mohli by jste mě nasměrovat? Možná, že bych rád zavedl i nějakou heuristiku, pokud by to nebylo nad moje chápání. Děkuji.
Offline

↑ Tomaskocz:
Já jsem asi hloupej, ale nějak jsem nepochopil co potřebuješ. Co se ti na té Taylorově řadě nelíbí (kromě toho že místo toho z má být x)?
Pokud chceš zapsat mocninu pomocí + - * /, doporučuji dělat to pomocí násobení, např.
, ale to předpokládám nebude to cos chtěl.
Offline
Vzorec je správně.
1. Zadáváš proměnou [x] v radiánech, to znamená 45° je pi/4, tj. 0.7853981633974483
2. Přesnost vzorce je omezená, od 0 do pi/4 je vynikající, pak rapidně klesá (musíš použít buď vyšší stupeň, což je velmi nevýhodné, nebo počítat jakoby z "druhé strany")
Offline
potrebuji to jako iteraci do cyklu. Asi by to mělo patřit do algoritmy a programování co :-(
Offline
↑ Tomaskocz:
Předpokládám, že to nechceš vyhodnocovat jako řadu, ale jenom jako polynom nějakého stupně (tzn. chceš aproximaci) a chceš se při tom vyhnout neustálému počítání k-tých mocnin, že?
Normálně bych to převedl pomocí Hornerova schématu. Tzn. vytýkal bych x^2. Nějak takhle:
Při vyhodnocování posledního výrazu ti stačí znát jenom x a x^2 (které si můžeš předpočítat) -- pak to vyhodnocovat postupně „zevnitř“ -- nejdřív závorku s x/7, tu přenásobit x^2, přičíst to s x/5, vynásobit x^2, přičíst to s x/3, vynásobit x^2, přičíst x, hotovo.
Edit: A ještě víc se toho dá vytknout:
Snad si dovedeš představit algoritmus, který pro zadaný stupeň a x podle tohohle schématu rovnou vyhodnotí tenhl epolynom v bodě x.
A ano, snad by byla lepší sekce Algoritmy a programování, aby bylo jasnější, že to chceš programovat. Však on to tam někdo přesune.
Edit 2:
mák napsal(a):
Vzorec je správně.
1. Zadáváš proměnou [x] v radiánech, to znamená 45° je pi/4, tj. 0.7853981633974483
2. Přesnost vzorce je omezená, od 0 do pi/4 je vynikající, pak rapidně klesá (musíš použít buď vyšší stupeň, což je velmi nevýhodné, nebo počítat jakoby z "druhé strany")
Nepleteš si arcsin se sin? Parametr funkce arcsin je reálné číslo od -1 do 1, jeho výsledek je nějaký úhel měřený v radiánech.
Offline
Niečo ako zápis diferenčnej rovnice, nasledujúci člen = predchádzajúci krát niečo.
Offline
Už to mám naprogramované. Např. pro číslo 0.5 pro 10 platných cifer se mi cyklus provede 13x pro 0.8 se cyklus provede už 40x a pro číslo 1 se cyklus provede 9266873x a už to číslo není vůbec přesné.
Chci tedy předtím než začne výpočet u čísel menších než -0.5 a větších než 0.5 je dát do rozsahu <-0.5 ; 0.5> a pak to nějakým mechanismem převést zpátky, aby číslo vyšlo správě. Udělat optimalizaci, protože výpočet probíhá snadněji pro čísla z mého definovaného intervalu <-0.5 ; 0.5>.
Offline
Pokud Taylorův rozvoj pro arcsin rozvinu blíž např. v okolí bodu 0.5, tak jak z něj dostanu např arcsin 0,9 nebo arsin 0,987 třeba ? U arcsin 1 do arsin 0,5 to zrovna jde. Vypočtu arcsin 0,5 a vynásobím 3, výjde mi arcsin 1
Offline

Pokud Taylorův rozvoj pro arcsin rozvinu blíž např. v okolí bodu 0.5, tak jak z něj dostanu např arcsin 0,9 nebo arsin 0,987?
Do toho polynomu dosadíš úplně stejně jako když ho rozvíjíš v 0.
Offline
FailED napsal(a):
Pokud Taylorův rozvoj pro arcsin rozvinu blíž např. v okolí bodu 0.5, tak jak z něj dostanu např arcsin 0,9 nebo arsin 0,987?
Do toho polynomu dosadíš úplně stejně jako když ho rozvíjíš v 0.
To vím, ale mě jde o to že když tam dosadím 0,9, tak ten rozvoj je strašně dlouhý, než dosáhnu požadované přesnosti. Když chci spočítat např. arcsin 0,9, tak ho potřebuji spočítat v menších číslech např. arcsin 0,5 aby rozvoj nebyl tak dlouhý, a pak to třeba vynásobit do arcsin 0,9 nebo nasčítat nebo něco...zkrátka udělat heuristiku. Nevím jak to mám říct, možná to říkám zle :/
Offline

Proto navrhuji arcsin x pro x z (0.5, 1] počítat pomocí taylorova rozvoje v ↑ sqrt(3)/2:, který tu funkci na tom intervalu aproximuje mnohem líp.
Nevím, jestli existují nějaké užitečné identity pro arcsin.
Sám nevím, jak se arcsin x normálně počítá, zkusil bych numericky řešit rovnici siny-x=0. (pro y, třeba Newtonovou metodou) Sinus má totiž omezené derivace, proto pro něj taylor funguje mnohem líp. Navíc se dají výhodně použít součtové vzorce.
Offline
Ahojte, skúsil som takto..
Offline
takže arcsin(x) = (1+ 1/2(n+1) - 4/(2*n+3)) * x^2
n bude iterovat od 0 do n ?
Offline

↑ Tomaskocz:
To opravdu ne.
Zkus si spočítat, pro nějaké hodně velké n (např. 1000000000) kolik ti vyjde arcsin(x):
Podle tebe to bude:
arcsin(x)=0.999999999x^2 (což je skoro x^2-dost přesně) a to jistě pro obecné x není pravda
Offline
Ahojte, mám zatím stále nevyřešeno a už nevím co mám hledat abych se doplácal k výsledku :/ Kamarád mi napsal že mám hledat na internetu pro arcsin vzorce typu: arcsin (F(x)) = G(arcsin (x)) - kde F a G jsou nejake funkce.
Offline
↑ Tomaskocz: kdybys neignoroval ↑ FailEDovy: rady, už jsi to mohl mít
Offline
Neignoruju, nepochopil jsem to. Rozvinu taylora pro nejake cislo, ktere dobre konverguje, ale ja to potrebuju treba pro cislo 0.7 napr. nebo 0.999999. Nevím jak to dopočítat pro potřebné číslo, které zadá uživatel.
Offline
Dole máš obrázek.
Skutečný průběh funkce arcsin je v červené barvě.
Tebou aproximovaný průběh je v modré barvě (vlevo se kryje s červenou, takže není vidět, napravo se odchyluje od skutečnosti).
Pokud rozvineš taylora například u sqrt(3)/2, pak budeš mít průběh podle zelené barvy, který lépe aproximuje funkci při vyšších hodnotách.
Offline
A víte někdo jak roste ta řada? Podle odkazu na wolframalpha, by to šlo pěkně udělat, jen víte někdo jak roste to číslo před závorkou? Čím ho násobit, co k němu přičíst atd.? Aby z toho šlo udělat cyklus, který v každém opakování to číslo o něco zvětší a nevím to něco, čím to zvětšit. Pak by to bylo skvělé řešení, ale jinak to nejde implementovat do cyklu.
EDIT: Jde to tak, že pro různé intarvaly použiješ různé řady. S minimálním počtem iterací ;) Stačí hledat a testovat, papír a tužka jako vždy nejlepší.
Offline
Dobrý den, řeším problém potřebuju radu v EXELU je funkce =ARCSIN(číslo). Potřebuji ten to vzorec napsat do programu, který tuto funkci neumí vypočítat neví někdo jak na to děkuji za odpověď
Offline