Skip to content

While loops with iteation control INVERSELLIPTIC2 #12

@GoogleCodeExporter

Description

@GoogleCodeExporter
- Consider using atan2 instead of atan for the inverselliptic2.m because it's 
more stable and you won't need the eps for the denominator.
- My project required plugging in large numbers in the inverselliptic2.m 
function, which won't work because there's only 4 iterations. So I'd recommend 
using a while loop:
        [~, E] = elliptic12(invE(:),m,tol);
        dinvE = (E - z)./sqrt( 1-m.*sin(invE(:)).^2 );
        while max(abs(dinvE)) > tol
            invE(:) = invE(:)-dinvE;
            [~, E] = elliptic12(invE(:),m,tol);
            dinvE = (E - z)./sqrt( 1-m.*sin(invE(:)).^2 );
        end
        invE(:) = invE(:)-dinvE;

    instead of:
        for iter=1:4
            [~, E] = elliptic12(invE(:),m,tol);
            invE(:) = invE(:)-(E - z)./sqrt( 1-m.*sin(invE(:)).^2 );
        end

Original issue reported on code.google.com by moiseev....@gmail.com on 5 Jan 2014 at 9:08

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions