I think I have found another problem in residue.

Ben Abbott bpabbott at mac.com
Sun Dec 9 12:14:39 CST 2007


On Dec 9, 2007, at 12:23 PM, Doug Stewart wrote:

>
> I would like Ben Abbott to try the following code
>
> n=poly([ -11 -10 ])*1000
>
> d=poly([ -3-3j -3+3j -3-3j -3+3j -3-3j -3+3j -5.6 -1 ])
>
> roots(d)
>
> residue(n,d)
>
>
> I get
>
> p =
>
> -5.60000 + 0.00000i
>
> -3.00010 + 3.00003i
>
> -3.00010 - 3.00003i
>
> -2.99992 + 3.00007i
>
> -2.99992 - 3.00007i
>
> -2.99998 + 2.99990i
>
> -2.99998 - 2.99990i
>
> -1.00000 + 0.00000i
>
> ans =
>
> -1.3195 - 0.0000i
>
> -3.7935 + 8.3944i
>
> 14.5612 + 10.6427i
>
> 16.3548 - 13.2580i
>
> -3.7935 - 8.3944i
>
> 14.5612 - 10.6427i
>
> 16.3548 + 13.2580i
>
> 8.9065 - 0.0000i
>
>
> but it should be:
>
> p =
>
> -5.60000 + 0.00000i
>
> -3.00010 + 3.00003i
>
> -3.00010 - 3.00003i
>
> -2.99992 + 3.00007i
>
> -2.99992 - 3.00007i
>
> -2.99998 + 2.99990i
>
> -2.99998 - 2.99990i
>
> -1.00000 + 0.00000i
>
> ans =
>
> -1.3195 - 0.0000i
>
> -3.7935 + 8.3944i
> -3.7935 - 8.3944i
>
> 14.5612 + 10.6427i
>
> 14.5612 - 10.6427i
>
> 16.3548 - 13.2580i
> 16.3548 + 13.2580i
>
> 8.9065 - 0.0000i
>
>
> Could you verify what I am getting please.?
> Doug Stewart

Doug, I took your example and modified it slightly. Please see the  
attached test script. The script displays [r, p]

I've run the script from Octave on Tiger/PPC and Leopard/Intel, as  
well as on Matlab 7.3b. In each case I get the same results (except  
that matlab appears to refine the roots a bit better).

---------------------------
octave:30> test
ans =

    -1.31921 +  0.00000i   -5.60000 +  0.00000i
    -3.79336 +  8.39318i   -2.99998 +  3.00009i
    14.55944 + 10.64154i   -3.00008 +  2.99997i
    16.35697 - 13.24746i   -2.99994 +  2.99994i
    -3.79336 -  8.39318i   -2.99998 -  3.00009i
    14.55944 - 10.64154i   -3.00008 -  2.99997i
    16.35697 + 13.24746i   -2.99994 -  2.99994i
     8.90592 -  0.00000i   -1.00000 +  0.00000i
---------------------------

The Matlab result is

---------------------------
 >> test
ans =
  -1.3195            -5.6000
  -3.7929 + 8.3933i  -3.0000 + 3.0000i
  14.5590 +10.6397i  -3.0000 + 3.0000i
  16.3510 -13.2508i  -3.0000 + 3.0000i
  -3.7929 - 8.3933i  -3.0000 - 3.0000i
  14.5590 -10.6397i  -3.0000 - 3.0000i
  16.3510 +13.2508i  -3.0000 - 3.0000i
   8.9054            -1.0000
---------------------------

It appears to me that Octave and Matlab's residue.m script work in  
compatible/consistent ways ... hmmm, perhaps I've misinterpreted your  
point?

I'm on a tight schedule today, so I don't have time for doing a  
derivation by hand to verify the results. My presence online will be  
spotty for the next few days, but will check back when I can.

Ben


-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://www.cae.wisc.edu/pipermail/help-octave/attachments/20071209/9fcc4f2f/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.m
Type: application/octet-stream
Size: 150 bytes
Desc: not available
Url : https://www.cae.wisc.edu/pipermail/help-octave/attachments/20071209/9fcc4f2f/attachment.obj 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://www.cae.wisc.edu/pipermail/help-octave/attachments/20071209/9fcc4f2f/attachment-0001.html 


More information about the Help-octave mailing list