Xnumbers Tutorial 
70 
Output 
The rootfinder macros output their results in the following simplified layout 
The roots and their estimated relative errors are written in a table starting from the left upper 
cell indicated in the input window. In the right-bottom cell is written the total elaboration time in 
seconds 
Note: we have formatted the table 
only for clarity. The macros do not 
perform this task. We do it. 
Integer Rootfinder output 
The macro RootfinderRF outputs all integer roots of the polynomial (if any) at the left and the 
coefficients of the remainder polynomial (deflated  polynomial) at the right 
RootfinderRF 
Polynomial 
Integer 
roots 
Reduced 
Polynomial 
This result means that the given polynomial 
8704
11904
6280
328
1510
582
147
20
2
3
4
5
6
7
8
+
+
+
x
x
x
x
x
x
x
x
can be factorized as 
34)
38
23
4
8) (
2)(
2)(
(
2
3
4
2
+
+
+
+
x
x
x
x
x
x
x
Pdf remove metadata - add, remove, update PDF metadata in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Allow C# Developers to Read, Add, Edit, Update and Delete PDF Metadata
read pdf metadata java; embed metadata in pdf
Pdf remove metadata - VB.NET PDF metadata library: add, remove, update PDF metadata in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Enable VB.NET Users to Read, Write, Edit, Delete and Update PDF Document Metadata
extract pdf metadata; remove pdf metadata
Xnumbers Tutorial 
71 
How to use rootfinder macros 
Using polynomial rootfinder macros is simple. Select the polynomial coefficients and start the 
rootfinder that you prefer. All input fields are filled and the only work that you have to do – in the 
most cases - is to press "Run".  
Example. Select the range C3:C11 and start the RootfinderJT . The coefficients input-box is 
filled with C3:C11 and the result-output box is filled with the cell E3. 
Press “run” and - after a while -  the routine ends and the roots will be displayed at the right, 
like in the following fugure 
Sparse polynomials. We can pass to the rootfinder macros also symbolic polynomial string, 
(that it is the faster way for sparse high degree polynomials). Let’s see this example 
Find all roots of the following 16
th
degree polynomial 
x^16-6817x^8+1679616 
Write this string in a cell, select it and start a rootfinder macro 
VB.NET PDF remove image library: remove, delete images from PDF in
Insert Image to PDF. Image: Remove Image from PDF Page. Image: Copy, Paste, Cut Image in Page. Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete
remove metadata from pdf file; pdf metadata
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
Able to remove a single page from adobe PDF document in VB.NET. Ability to remove consecutive pages from PDF file in VB.NET. Enable
remove metadata from pdf online; delete metadata from pdf
Xnumbers Tutorial 
72 
In this case we have used the Durand-Kerner algorithm obtaining a very high accuracy 
(practically the highest accuracy in standard double precision) 
Root Error Estimation 
The third column produced by the rootfinder macros is an estimation of the relative root error, 
defined as: 
|/| |
~
|
i
i
i
x
x x
er
=
for  
| |0>
i
x
where 
x
~
is the true unknown root and  
i
x
is the approximate root given by the rootfinder 
We have to say that this number should be regarded as an estimation of  “goodness” of the 
root found; small values (for example 1E-9 , 1E-12 ) indicate an high precision of the 
correspondent root. On the contrary, larger values (for examples 1E-3 , 1E-5) indicates a 
“difficult” roots that require an extra investigation. 
For example assume to find the root of the following 6
th
degree polynomial 
Clustering effect:
In this case, the accuracy is enough good, but quite lower than the previous 
example. The reason is that the roots: 
– 1, 1.01, 1.02, 1.03, 1.04, 1.05 
are very close each other (0.1% of difference) 
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
console application. Able to remove a single page from PDF document. Ability to remove a range of pages from PDF file. Free trial package
batch pdf metadata editor; remove pdf metadata online
C# PDF Password Library: add, remove, edit PDF file password in C#
String outputFilePath = Program.RootPath + "\\" Remove.pdf"; // Remove password in the input file and output to a new file. int
view pdf metadata; google search pdf metadata
Xnumbers Tutorial 
73 
Complex polynomials. The macro RootfinderDK and RootfinderSK can solve also complex 
polynomials. Example: find the roots of the following polynomial with complex coefficients 
5
4
3
2
( 3 3 )
5
5)
(15
4) 4
( ) ) ( ( 12
z
i z
z
i z
z
i
P z
+
+ − − +
+
+
= − − +
Select both real and imaginary coefficients columns and start the macro RootfinderKD 
The roots are z = ±1 , z = ±2 , z = 3 − j . Observe that the results are shown in exact mode even 
if the computation is intrinsically approximated. 
A polynomial of n degree, having as roots 
the first 1, 2,..n integers, belongs to the 
Wilkinson class that, as known, is 
ill-conditioned. This dense polynomial is 
usually assumed as standard reference for 
polynomial rootfinder algorithms. We have 
tabulated the LRE (log relative error) 
obtained with all the rootfinder macros. 
As we can see, for a Wilkinson polynomial of 
20
th
degree, we have good about four 
significant digits (0.1% accuracy) 
Wilkinson polynomial test
0.0
2.0
4.0
6.0
8.0
10.0
12.0
14.0
16.0
0
5
10
15
20
25
LRE
But all polynomials are so hard to solve? Fortunately not. Many polynomials with higher 
degree, can be solved with good accuracy 
For example, if we try to get all real roots of the 16
th
degree Legendre’s polynomial 
L
16
(x) = 6435 -875160 x
+19399380 x
-162954792 x
6
+ 669278610 x
8
-1487285800 x
10 
+1825305300 x
12 
-1163381400 x
14 
+300540195 x
16
We have a general accuracy of more than 13 digits 
Legendre polyn. Coeff. 
Real 
Imm 
Rel. Err. 
6435
-0.989400934991646
0 2.9585E-17 
0
-0.944575023073157
0 1.6352E-13 
-875160
-0.865631202387904
0
3.673E-14 
0
-0.755404408355024
0 1.1559E-14 
19399380
-0.617876244402639
0 1.0779E-14 
0
-0.458016777657228
0 7.4625E-16 
-162954792
-0.281603550779259
0 1.9313E-16 
0
-0.095012509837637
0 8.5038E-18 
669278610
0.095012509837637
0 8.5038E-18 
0
0.281603550779259
0 1.4485E-16 
-1487285800
0.458016777657228
0 1.5356E-15 
0
0.617876244402640
0 5.0196E-15 
1825305300
0.755404408354981
0 2.5615E-14 
0
0.865631202387767
0 4.6793E-14 
-1163381400
0.944575023073325
0 8.4139E-14 
0
0.989400934991655
0 5.5583E-15 
300540195  
C# PDF bookmark Library: add, remove, update PDF bookmarks in C#.
Ability to remove and delete bookmark and outline from PDF document. Merge and split PDF file with bookmark. Save PDF file with bookmark open.
remove metadata from pdf acrobat; pdf xmp metadata editor
C# PDF remove image library: remove, delete images from PDF in C#.
Insert Image to PDF. Image: Remove Image from PDF Page. Image: Copy, Paste, Cut Image in Page. Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete
pdf metadata reader; get pdf metadata
Xnumbers Tutorial 
74 
(remember that the higher degree coefficients are at bottom) 
In the last column there are the errors estimation given by the rootfinder DK.  They are slight 
different from the true roots errors, but we have to remember that this column must be regard 
as an index of the root approximation: low values mean a good accuracy, larger values often 
(but not always) indicate a poor approximation  
Integer roots  
In applied science it's rarely  to came across in polynomials having exact integer roots. 
Nevertheless, they are frequent in math, didactical examples and algorithm testing . 
Xnumbers has a dedicated special macro for finding the integer real roots
of a polynomial. It 
uses the Ruffini's method with the QD algorithm for roots isolation. 
This method is generally less efficient then JT or DK but it can gain in accuracy. 
The roots found by this method have no round-off errors so the deflated polynomial is exact. 
Therefore, in that case, the root-finding-deflating process is without errors. 
For polynomial having a mix of integer real roots, complex roots and real roots the method 
returns the integer roots and the coefficients of the deflated polynomial that  can be solved with 
the aid of the general purpose macros: DK, GN or JT. Because the deflated polynomial has a 
lower degree, the roots accuracy will be generally higher than by solving directly the given 
polynomials. 
Let's see how it works practically. Assume to have the following polynomial 
degree 
coeff 
a0 
8678880 
a1 
-13381116 
a2 
8844928 
a3 
-3279447 
a4 
746825 
a5 
-107049 
a6 
9437 
a7 
-468 
a8 
10 
The exact roots are: 
integer 
real 
complex 
5, 6, 7, 8, 9 
2.8 
4. 5±i 0.5
If we try to solve this 8
th
degree polynomial with a general 
rootfinder, probably the best accuracy that we can obtain 
is about 1e-10, that it is a good result but we can do better 
if we extract the integer roots before and then, solving for 
the remaining roots 
Select the range B2:B10 and start the macro for extracting the integer roots and deflated 
polynomial 
find real and complex 
roots (if exist) 
Extract integer roots 
(if exist) 
original 
P(x) 
Deflated 
Q(x) 
C# TIFF: TIFF Metadata Editor, How to Write & Read TIFF Metadata
You can also update, remove, and add metadata. List<EXIFField> exifMetadata = collection.ExifFields; You can also update, remove, and add metadata.
metadata in pdf documents; pdf xmp metadata
VB.NET PDF delete text library: delete, remove text from PDF file
projects. Basically, you can use robust APIs to select a PDF page, define the text character position, and remove it from PDF document.
change pdf metadata creation date; view pdf metadata in explorer
Xnumbers Tutorial 
75 
The original polynomial is now cracked into the following factors 
574)
457
118
8)(10
7)(
6)(
( 5)(
2
3
+
x
x
x
x
x
x
x
Now let's find the roots of the following 3
rd
degree polynomial by, for example, the general JT 
rootfinder. We obtain: 
Re 
Im 
Rel. Err. 
2.8
0
1.14E-17
4.5
0.5
1.44E-15
4.5
-0.5
1.44E-15
The general accuracy is better  than 1e-14 , thousand times than the direct method. 
Clearly is a good thing to keep attention to the integer roots (when they are). 
1.0E-16
1.0E-14
1.0E-12
1.0E-10
1.0E-08
1.0E-06
1.0E-04
1.0E-02
1.0E+00
Rootfinder
RF + DK
Rootfinder
JT
Rootfinder
DK
Rootfinder
NG
Global roots accuracy 
versus the solving 
methods: 
Rootfinder RF + DK 
Rootfinder JT 
Rootfinder DK 
Rootfinder NG 
The multiprecision should be used when the coefficients exceed 15 digits (remember that the 
coefficients must be exact in order to extract the exact integer roots) 
Let's see the following 18
th
degree polynomial having the roots 
Coefficients 
-612914519230813800000 
91181999821816015800 
-5186948337826516202 
137665995531841931 
-1622627967498318 
6214402509219 
-11208193158 
10605849 
-5122 
Polynomial roots 
Note that same coefficients have 16 - 18 significant digits and 
they must be inserted as x-numbers, (that is as string) in 
order to preserve the original precision. 
We have also to set the multiprecision check-box in the 
macro RootfinderRF 
integer 
real 
complex 
25, 27,29, 31,  
1000, 1001, 1002, 1003, 1004 
none 
none 
Note that this a so called "clustered polynomial" because some of its integer roots (1000, 1001, 
1002, 1003, 1004) are very closed each other (difference less then 1%). This situation is quite 
difficult for many algorithms and the accuracy is generally quite poor. On the contrary, the 
Ruffini's method works very fine in that case. 
Xnumbers Tutorial 
76 
Multiple roots  
The macro "Factors" performs the decomposition of a polynomial with multiple roots into 
smaller factors having all single roots. It uses the GCD method with the Euclid' algorithm 
Example, the polynomial: 
9
8
7
6
5
4
3
2
20
175
878
2779
5744
7737
6534
3132
648
x
x
x
x
x
x
x
x
x
+
+
+
+
+
Has the roots x = 1 (m = 2),  x = 2 (m = 3) and x = 3 (m = 4) 
It can be decomposed into the product of the following factors 
3 2
2
2
)
6
11
)( 6
)(6 5
( 3
x
x
x
x x
x
+
− +
+
− +
Using this  macros is simple. Select the polynomial coefficients and start the macro. All the 
input and output cells are automatically filled. Press Run 
Each factors contains only single roots and thus can be solved with high precision by any 
rootfinder macro
1
1
For further details see "Non Linear Equations", Foxes Team, 2006 
Xnumbers Tutorial 
77 
Polynomial Functions 
Polynomial evaluation 
=POLYN(z, Coefficients, [DgtMax])   
Computes the polynomial at the value z. 
n
n
a z
az az
a
Pz
...
( )
2
2
1
0
+
+
+
=
The parameter Coefficients is the (n+1) column vector containing the polynomial coefficients 
from the lowest to the highest order. 
This function accept also complex coefficients. In that case the parameter Coefficients is an 
(n+1 x 2)  array. 
The optional parameter DgtMax set the precision. If omitted, the function works in the faster 
double precision. 
This function works also for complex arguments. In that case, z must be a complex number 
(two adjacent cells) and the function returns two values. To see both real and imaginary part, 
select two cells and give the CTRL+SHIFT+ENTER key sequence. If you press only ENTER, 
the function returns only its real part. 
Example: compute the following real polynomial  
2 4
5
( ) ) 2
2
3
4
+
+
+
=
z
z
z
z
P z
for  
i
z
=4−2
Otherwise, if you want to compute a real polynomial for a real argument, e.g. z = 10 - simply 
pass a single value 
Xnumbers Tutorial 
78 
Example: compute the following complex polynomial  
(2 ) (4 4 5)
5
(1 )
( ) ) 2
2
3
4
i
i z
z
i z
z
P z
+ −
+ −
+ −
=
for  
i
z
=4−2
Polynomial derivatives 
=DPOLYN(z, Coefficients, Order, [DgtMax])   
Computes the polynomial derivative at the value z. 
n
n
az
az az
a
P z
...
( )
2
2
1
0
+
+
+
=
j
j
j
dz
d Pz
D z
( )
( )=
The parameter "Coefficients" is the (n+1) vector containing the polynomial coefficients from the 
lowest to the highest order. 
This function accept also complex coefficients. In that case the parameter Coefficients is an 
(n+1 x 2)  array. 
The parameter "Order" sets the order of the derivative. 
The optional parameter "DgtMax" set the precision. If omitted, the function works in the faster 
double precision. 
This function works also for complex arguments. In that case, z must be a complex number 
(two adjacent cells) and the function returns two values. To see both real and imaginary part, 
select two cells and give the CTRL+SHIFT+ENTER key sequence. If you press only ENTER, 
the function returns only its real part. 
Example.  Compute the derivatives of the following polynomial  
3
2
( ) ) 3 2
z
z z
P z
+
+
= +
For z= 3, we have: 
Example: calculate the 2nd derivative of the following  complex polynomial at the point 
i
z
=4−2
(2 ) (4 4 5)
5
 (1 1 )
( ) ) 2
2
3
4
i
i z
z
iz
z
Pz
+ −
+ −
+ −
=
Xnumbers Tutorial 
79 
With DPOLYN and POLYN it is very easy to implement, for example, the Newton’s algorithm 
for finding the polynomial root with high precision 
Example: find the real root of the following polynomial with Newton’s algorithm 
8000
64
5
3
6
7
+
x
x
x
The popular iterative Newton’s formula is 
'( )
( )
1
i
i
i
i
p x
p x
x
x
= +
+
Starting from the point x = 10. Note that we cannot use the handly x = 0 , because the 
derivative is zero 
The exact digits caught by the algorithm, are shown in blue. Note the impressive acceleration. 
Try this example with 60 and more digits if you like. 
Polynomial coefficients 
=PolyTerms(Polynomial) 
Returns the vector of the polynomial coefficients 
The argument is a polynomial string like "1-3x+5x^2 +x^5" in any order. 
Example 
Documents you may be interested
Documents you may be interested