1. ## How to iterate?

I have a non-linear 1st order differential equation and I would like to find a way to iterate it. I thought I knew how to approach it but I've hit a stumbling block. Here's the equation:
$\displaystyle \dfrac{d \theta}{dt} = \sqrt{ \dfrac{2g}{R} } \sqrt{ sin( \theta ) - sin( \theta _0 ) }$

Where $\displaystyle \theta _0$ is taken to be the angle at time 0. (This is from the energy equation for the simple pendulum. For the usual simple pendulum we take $\displaystyle \theta$ small. We don't have that here...it's the general case. I can provide the derivation if someone likes.)

Now, I can iterate this in $\displaystyle \theta$ :
$\displaystyle \dfrac{ \theta _{n + 1} - \theta _n }{\Delta t} = \sqrt{ \dfrac{2g}{R} } \sqrt{ sin( \theta _n ) - sin( \theta _0 ) }$

becomes
$\displaystyle \theta _{n + 1} = \theta _n + \sqrt{ \dfrac{2g}{R} } \sqrt{ sin( \theta _n ) - sin( \theta _0 ) } \cdot \Delta t$
where $\displaystyle \Delta t$ is suitably small and taken to be constant. ( $\displaystyle sin( \theta _n ) \geq sin( \theta _0 )$ for any physical case.)

However, what I'm really after is the time series so I can investigate the period of the motion and such. Here's where the problem lies. Similar to before:
$\displaystyle \dfrac{ \Delta \theta }{ t_{n + 1} - t_n} = \sqrt{ \dfrac{2g}{R} } \sqrt{ sin( \theta _n) - sin( \theta _0 ) }$

becomes
$\displaystyle t_{n +1} = t_n + \sqrt{ \dfrac{R}{2g}} \cdot \dfrac{1}{\sqrt{ sin( \theta _n ) - sin( \theta _0 ) }} \cdot \Delta \theta$
Where $\displaystyle \Delta \theta$ is suitably small and taken to be constant.

Sounds good, right? Everywhere except the highest points of the motion where $\displaystyle sin( \theta _n ) = sin( \theta _0)$. Then it becomes... "non-trivial." I'm sure the differential equation is right so there must be an error in my idea of how to iterate this.

How do I approach this?

Thanks!

-Dan

2. ## Re: How to iterate?

(Ahem!) I just took a little time to work out the angle series and that one's hosed, too.

Could someone be kind enough to show me how I might go about iterating either or both of these? Looks like I know less about this than I thought.

-Dan