octave-maintainers
[Top][All Lists]
Advanced

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

Re: Octave and Freemat


From: Ben Abbott
Subject: Re: Octave and Freemat
Date: Tue, 4 Mar 2008 21:36:36 -0500


On Mar 4, 2008, at 8:27 PM, Ben Abbott wrote:


On Mar 4, 2008, at 6:46 PM, Sebastien Loisel wrote:

Dear David,

Thank you for your email.

On Tue, Mar 4, 2008 at 5:44 PM, David Bateman <address@hidden > wrote:
f = find (p ./ max(p));
p = p (f(1):end);

Are you missing an abs maybe? Also, I hope you did your checking for nans and infs before you got there.

--
Sébastien Loisel


To respect Matlab an error should result when NaNs or Infs are present.

The abs shouldn't be necessary. In fact, if NaNs and Infs have already be handled, why not

f = find (p);
p = p(f(1):end);
n = numel (p)-1;
A = diag (ones (n-1, 1), -1);
A(1,:) = -p(2:n+1) ./ p(1);
z = eig (A);

Ben

ok, nix the simple solution.

I checked Matlab, they apparently remove have some special handling of trailing zeros.

>> p = [poly([3 3 3 3]), 0 0 0 0];

>> abs(roots(p)-[0; 0; 0; 0; 3; 3; 3; 3])

ans =

            0
            0
            0
            0
   0.00051228
   0.00051228
   0.00051223
   0.00051223

>>

What should be included is the check for Infs and NaNs. Beyond that we might add some tests for consistency with Matlab.

How about the attached?

Attachment: changeset-roots.txt
Description: Text document





reply via email to

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