help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Getting complex numbers results instead of expected real numbers


From: Jordi Gutiérrez Hermoso
Subject: Re: Getting complex numbers results instead of expected real numbers
Date: Sun, 12 Feb 2012 09:48:37 -0500

On 12 February 2012 09:19, ant <address@hidden> wrote:
> When running a script in Octave 3.4.3, I'm getting complex numbers of the
> form (a+0.0000i) or (a-0.0000i), instead of the expected real number a. Any
> help will be much appreciated!
[snip]
>        y1 =
> l2m*(r-mu)*(l1p-l1m)*(phistar*k0+(gama+delta*k0)/r-c0/r*(xtau/c0)^l2p)-((l2m-1)*(l1p-l1m)-l1m*(1+l1p-l2m)*(xtau/c0)^l1p)*xtau;

This expression can potentially raise negative numbers to powers. For
example, insert the following debugging lines in this function:

       if (iscomplex(y1))
         keyboard;
       endif

You will observe that this sometimes results in xtau/c0 being
negative, so you get a complex result with small imaginary part when
raising it to l1p.

If you want to avoid complex results when raising to powers, sometimes
the following functions can help: realpow, realsqrt, cbrt, nthroot.

HTH,
- Jordi G. H.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]