help-octave
[Top][All Lists]
Advanced

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

Re: Why is 2/3 not seen as rational? [was "plotting even function"]


From: Henry F. Mollet
Subject: Re: Why is 2/3 not seen as rational? [was "plotting even function"]
Date: Mon, 21 Mar 2005 08:17:25 -0800
User-agent: Microsoft-Entourage/10.1.1.2418

WOW, I have to go back to school and learn about De Moivre's theorem to
understand why Octave does what it does. I had blindly believed what
Octave/Gnuplot was graphing. Had no idea what John Thoo's "simple" question
would lead to!
Henry

on 3/21/05 6:51 AM, Mike Miller at address@hidden wrote:

> On Mon, 21 Mar 2005, Paul Kienzle wrote:
> 
>> The cubed root function is multi-valued and Octave is choosing a
>> different root than you expect.  Look at -8 for example:
>> 
>> x^3 + 8 has three roots:
>> 
>>  octave> roots([1,0,0,8])
>>  ans =
>> 
>>  -2.0000 + 0.0000i
>>   1.0000 + 1.7321i
>>   1.0000 - 1.7321i
>> 
>> Octave chooses one of them:
>> 
>>  octave> (-8).^(1/3)
>>  ans = 1.0000 + 1.7321i
> 
> 
> It seems to 'choose' using De Moivre's theorem.
> 
> For x > 0 and integer n != 0:
> 
> -x = x * (cos(pi) + sin(pi)*i)
> 
> (-x)^(1/n) = x^(1/n)*(cos(pi/n)+sin(pi/n)*i)
> 
> As someone else pointed out, the abs function will force the answer to be
> a real integer:
> 
> - Mapping Function:  abs (Z)
>     Compute the magnitude of Z, defined as |Z| = `sqrt (x^2 + y^2)'.
> 
>     For example,
> 
>          abs (3 + 4i)
>               => 5
> 
> So, for x > 0 and integer n != 0,
> 
> -abs((-x)^(1/n))
> 
> seems to give the desired answer when n is odd, but that isn't very
> helpful because -(x)^(1/n) gives the same answer when n is odd.
> 
> On the other hand, this seems to do what the guy originally wanted (for
> scalar integer values of a and b and any real-valued x vector.):
> 
> abs(rem(a,2))*abs(rem(b,2))*sign(x).*(abs(x).^(a/b)) +
> (1-abs(rem(a,2)))*abs(x).^(a/b) + abs(rem(a,2))*(1-abs(rem(b,2)))*x.^(a/b)
> 
> Mike
> 
> 
> 
> -------------------------------------------------------------
> Octave is freely available under the terms of the GNU GPL.
> 
> Octave's home on the web:  http://www.octave.org
> How to fund new projects:  http://www.octave.org/funding.html
> Subscription information:  http://www.octave.org/archive.html
> -------------------------------------------------------------
> 



-------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.

Octave's home on the web:  http://www.octave.org
How to fund new projects:  http://www.octave.org/funding.html
Subscription information:  http://www.octave.org/archive.html
-------------------------------------------------------------



reply via email to

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