help-octave
[Top][All Lists]
Advanced

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

Re: residue() confusion


From: Henry F. Mollet
Subject: Re: residue() confusion
Date: Mon, 24 Sep 2007 16:37:04 -0700
User-agent: Microsoft-Entourage/11.1.0.040913

I have checked what has become residue4.m at Doug Stewart's URL which agrees
with solution given by Ben Abbot: 2/9 = 0.222222222222222 and 5/54 =
0.0925925925925926.

Is there an easy explanation why the coefficients are so different when I
remove the multiplicity of the poles by using 80.9999 instead of 81.000 in
denominator polynomial?
Henry

octave-2.9.14:26> format long
octave-2.9.14:27> [a,p,k,e] = residue4(num,den)
a =
  -7.29060028230561e-27 - 9.25925925925924e-02i
  2.22222222690571e-01 - 9.97810470405334e-10i
  -1.40225660362292e-25 + 9.25925925925924e-02i
  2.22222222690570e-01 + 9.97810470405334e-10i

p =
  -0.00000001077635 + 2.99999999494184i
   0.00000001077635 + 3.00000000505816i
  -0.00000001077635 - 2.99999999494184i
   0.00000001077635 - 3.00000000505816i

k = [](0x0)
e =
   1
   2
   1
   2

octave-2.9.14:34> den809999=[1 0 18 0 80.9999]
den809999 =
 Columns 1 through 3:
    1.000000000000000    0.000000000000000   18.000000000000000
 Columns 4 and 5:
    0.000000000000000   80.999899999999997

octave-2.9.14:35> [a,p,k,e] = residue4(num,den809999)
a =
    0.0000000000405 + 66.6203549268702i
   -0.0000000000405 - 66.7129475394614i
    0.0000000000405 - 66.6203549268781i
   -0.0000000000405 + 66.7129475394693i

p =
   0.00000000000000 + 2.99833287011296i
  -0.00000000000000 + 3.00166620396076i
   0.00000000000000 - 2.99833287011296i
  -0.00000000000000 - 3.00166620396076i

k = [](0x0)
e =

   1
   1
   1
   1
*******************************************************************

on 9/22/07 8:56 PM, Doug Stewart at address@hidden wrote:

> Not yet I was letting some users try it first to make sure that there
> are no more problems before we commit it.
> So give it a try and report back to the list.
> Doug
> 
> Ben Abbott wrote:
>> Thanks Doug,
>> 
>> Is this fix included in 2.9.14?
>> 
>> 
>> 
>> Doug Stewart wrote:
>>   
>>> Here is my results for this question
>>> 
>>> num = [1 0 1];
>>>  den = [1 0 18 0 81];
>>>  [a,p,k,e] = residue(num,den)
>>> 
>>> a =
>>> 
>>>   1.0e+06  *
>>> 
>>>    5.927582766769742 + 2.314767228467131i
>>>    5.927582730209724 - 2.314767214190160i
>>>   -5.927582717669299 - 2.314767374340102i
>>>   -5.927582681109279 + 2.314767360063129i
>>> 
>>> p =
>>> 
>>>    0.000000016264485 + 2.999999993648592i
>>>    0.000000016264485 - 2.999999993648592i
>>>   -0.000000016264485 + 3.000000006351409i
>>>   -0.000000016264485 - 3.000000006351409i
>>> 
>>> k = []
>>> e =
>>> 
>>>                   1
>>>                   1
>>>                   1
>>>                   1
>>> 
>>>>>   [a,p,k,e] = residue2(num,den)
>>> a =
>>> 
>>>   -0.000000000000000 - 0.092592592592593i
>>>    0.000000000000000 + 0.092592592592593i
>>>    0.222222222810316 + 0.000000001505971i
>>>    0.222222222810316 - 0.000000001505971i
>>> 
>>> p =
>>> 
>>>    0.000000016264485 + 2.999999993648592i
>>>    0.000000016264485 - 2.999999993648592i
>>>   -0.000000016264485 + 3.000000006351409i
>>>   -0.000000016264485 - 3.000000006351409i
>>> 
>>> k = []
>>> e =
>>> 
>>>                   1
>>>                   1
>>>                   2
>>>                   2
>>> 
>>> 
>>> 
>>> the second one is my "fixed" code and this agrees with Matlab.
>>> 
>>> You can get my code at:
>>> 
>>> www.dougs.homeip.net/octave/residue2.m
>>> 
>>> Doug
>>> 
>>> 
>>> 
>>> 
>>> 
>>> Henry F. Mollet wrote:
>>>     
>>>> Your concern is justified. I don't know how to do partial fractions by
>>>> hand
>>>> when there is multiplicity. Therefore I checked results by hand using s =
>>>> linspace (-4i, 4i, 9) as a first check. It appears that Matlab results
>>>> are
>>>> correct if I take into account multiplicity of [1 2 1 2]. Octave results
>>>> appear to be incorrect.
>>>> Henry
>>>> octave-2.9.14:29> s =
>>>>   -0 - 4i   0 - 3i   0 - 2i   0 - 1i   0 + 0i   0 + 1i   0 + 2i   0 + 3i
>>>> 0
>>>> + 4i
>>>> 
>>>> Using left hand side of equation:
>>>> octave-2.9.14:30> y=(s.^2 + 1)./(s.^4 + 18*s.^2 + 81)
>>>> y =
>>>>  Columns 1 through 6:
>>>>   -0.30612 + 0.00000i       NaN +     NaNi  -0.12000 - 0.00000i   0.00000
>>>> -
>>>> 0.00000i   0.01235 - 0.00000i   0.00000 - 0.00000i
>>>>  Columns 7 through 9:
>>>>   -0.12000 + 0.00000i       NaN +     NaNi  -0.30612 + 0.00000i
>>>> 
>>>> Using right hand side of equation with partial fraction given by Matlab:
>>>> octave-2.9.14:31> yMatlab= (0 - 0.0926i)./(s-3i) + (0.2222 -
>>>> 0.0000i)./(s-3i).^2 + (0 + 0.0926i)./(s+3i) + (0.2222 +
>>>> 0.0000i)./(s+3i).^2
>>>> 
>>>> yMatlab =
>>>>  Columns 1 through 6:
>>>>   -0.30611 + 0.00000i       NaN +     NaNi  -0.11997 + 0.00000i   0.00001
>>>> +
>>>> 0.00000i   0.01236 + 0.00000i   0.00001 + 0.00000i
>>>>  Columns 7 through 9:
>>>>   -0.11997 + 0.00000i       NaN +     NaNi  -0.30611 + 0.00000i
>>>> 
>>>> Using right hand side of equation with partial fraction given by Octave:
>>>> octave-2.9.14:32> yOctave=(-3.0108e+06 - 1.9734e+06i)./(s-3i) +
>>>> (3.0108e+06
>>>> + 1.9734e+06i)./(s-3i).^2 + (-3.0108e+06 + 1.9734e+06i)./(3+3i) +
>>>> (3.0108e+06 - 1.9734e+06i)./(s+3i).^2
>>>> 
>>>> yOctave =
>>>>  Columns 1 through 5:
>>>>   -2.9632e+06 + 2.3337e+06i         NaN +       NaNi  -2.9095e+06 +
>>>> 2.1230e+06i  -6.2042e+05 + 4.4801e+05i  -1.8417e+05 - 1.7290e+05i
>>>>  Columns 6 through 9:
>>>>   -1.2708e+05 - 1.0447e+06i  -1.3307e+06 - 4.0746e+06i         NaN +
>>>> NaNi  -5.2185e+06 + 1.9084e+06i
>>>> 
>>>> **********************************
>>>> 
>>>> on 9/22/07 2:14 PM, Ben Abbott at address@hidden wrote:
>>>> 
>>>>   
>>>>       
>>>>> I was more concerned about the differences in "a"
>>>>> 
>>>>> I suppose I'll need to do a derivation and check the correct answer.
>>>>> 
>>>>> On Sep 22, 2007, at 5:05 PM, Henry F. Mollet wrote:
>>>>> 
>>>>>     
>>>>>         
>>>>>> The result for e should be [1 2 1 2] (multiplicity for both poles).
>>>>>> Note
>>>>>> that Matlab does not even give e.  My mis-understanding of the
>>>>>> problem was
>>>>>> pointed out by Doug Stewart. Doug posted new code yesterday, which
>>>>>> I've
>>>>>> tried unsuccessfully, but I cannot be sure that I've implemented
>>>>>> residual.m
>>>>>> correctly. The corrected code still produced e = [1 1 1 1] for me.
>>>>>> Henry
>>>>>> 
>>>>>> 
>>>>>> on 9/22/07 1:31 PM, Ben Abbott at address@hidden wrote:
>>>>>> 
>>>>>>       
>>>>>>           
>>>>>>> As a result of reading through Hodel's
>>>>>>> http://www.nabble.com/bug-in-residue.m-tf4475396.html post  I
>>>>>>> decided to
>>>>>>> check to see how my Octave installation and my Matlab installation
>>>>>>> responded
>>>>>>> to the example
>>>>>>> 
>>>>>>> Using Matlab v7.3
>>>>>>> --------------------------
>>>>>>>  num = [1 0 1];
>>>>>>>  den = [1 0 18 0 81];
>>>>>>>  [a,p,k] = residue(num,den)
>>>>>>> 
>>>>>>> a =
>>>>>>> 
>>>>>>>         0 - 0.0926i
>>>>>>>    0.2222 - 0.0000i
>>>>>>>         0 + 0.0926i
>>>>>>>    0.2222 + 0.0000i
>>>>>>> 
>>>>>>> 
>>>>>>> p =
>>>>>>> 
>>>>>>>    0.0000 + 3.0000i
>>>>>>>    0.0000 + 3.0000i
>>>>>>>    0.0000 - 3.0000i
>>>>>>>    0.0000 - 3.0000i
>>>>>>> 
>>>>>>> 
>>>>>>> k =
>>>>>>> 
>>>>>>>      []
>>>>>>> --------------------------
>>>>>>> 
>>>>>>> Using Octave 2.9.13 (via Fink) on Mac OSX
>>>>>>> --------------------------
>>>>>>>  num = [1 0 1];
>>>>>>>  den = [1 0 18 0 81];
>>>>>>>  [a,p,k] = residue(num,den)
>>>>>>> 
>>>>>>> a =
>>>>>>> 
>>>>>>>   -3.0108e+06 - 1.9734e+06i
>>>>>>>   -3.0108e+06 + 1.9734e+06i
>>>>>>>   3.0108e+06 + 1.9734e+06i
>>>>>>>   3.0108e+06 - 1.9734e+06i
>>>>>>> 
>>>>>>> p =
>>>>>>> 
>>>>>>>   -0.0000 + 3.0000i
>>>>>>>   -0.0000 - 3.0000i
>>>>>>>    0.0000 + 3.0000i
>>>>>>>    0.0000 - 3.0000i
>>>>>>> 
>>>>>>> k = [](0x0)
>>>>>>> e =
>>>>>>> 
>>>>>>>    1
>>>>>>>    1
>>>>>>>    1
>>>>>>>    1
>>>>>>> --------------------------
>>>>>>> 
>>>>>>> These are different from both the result that
>>>>>>> http://www.nabble.com/bug-in-residue.m-tf4475396.html Hodel
>>>>>>> obtained , as
>>>>>>> well as different from
>>>>>>> http://www.nabble.com/bug-in-residue.m-tf4475396.html Mollet's
>>>>>>> 
>>>>>>> Thoughts anyone?
>>>>>>> 
>>>>>>>         
>>>>>>>            
>>>>>>       
>>>>>>           
>>>> _______________________________________________
>>>> Help-octave mailing list
>>>> address@hidden
>>>> https://www.cae.wisc.edu/mailman/listinfo/help-octave
>>>> 
>>>>   
>>>>       
>>> _______________________________________________
>>> Help-octave mailing list
>>> address@hidden
>>> https://www.cae.wisc.edu/mailman/listinfo/help-octave
>>> 
>>> 
>>>     
>> 
>>   
> 
> _______________________________________________
> Help-octave mailing list
> address@hidden
> https://www.cae.wisc.edu/mailman/listinfo/help-octave




reply via email to

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