|
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 LoiselTo 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 notf = 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?
changeset-roots.txt
Description: Text document
[Prev in Thread] | Current Thread | [Next in Thread] |