OT sine recursion (was: Re: Parsing infinite streams style)
Carsten Schultz
<>
Tue Mar 9 12:37:20 CET 2004
Hi Joe,
<smart-alec>
On Tue, Mar 09, 2004 at 11:16:27AM +0100, Joe Armstrong wrote:
> I learnt this in school, but it was called something different.
>
> I learnt this:
>
> sin(2A) = 2sin(A)cos(A)
> cos(2A) = 1 - 2sin^(X)
cos(2A) = 1 - 2sin^2(A)
> sin(0) = 0
> cos(0) = 1
>
> So to compute sin(X) we have to compute sin(X/2) and cos(X/2)
> and to compute cos(X) we have to compute sin(X/2)
>
> this is the recursive case where the argument gets smaller.
>
> The base case is sin(0) = 0 or cos(0) = 1 (actually it's a small
> angle not zero)
Ah, but then you will have to control the error. Actually, this will
not work, because the above equations are also satisfied by
sin(x) = 0, cos(x) = 1, for all x.
To get a (numerically) working recursion you will have to replace
`sin(x)=0 for small x' by `sin x \approx x' for small x. I have not
checked the numerics of this one, though.
</smart-alec>
Grreetings,
Carsten
To all readers of Irvine Welsh: ``Smart-alec is a posh word for a
...'' Stopping here to avoid spam filters :-)
--
Carsten Schultz (2:38, 33:47), FB Mathematik, FU Berlin
http://carsten.codimi.de/
PGP/GPG key on the pgp.net key servers,
fingerprint on my home page.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20040309/b0f34682/attachment.bin>
More information about the erlang-questions
mailing list