BTR


Multiple zeros of a polynomial are quite difficult to approximate with a high accuracy, by means of computational codes using standard finite precision arithmetic. The method implemented in the Matlab function btr is aimed to overcome this drawback. The method computes the simultaneous approximation to all zeros of a complex polynomial p(x), along with their multiplicities [18,19,23]. For example, try the following Matlab instructions:


p = poly( [pi pi pi pi pi i i -i -i 1] )

p =
  Columns 1 through 3
    1.000000000000000e+000   -1.670796326794897e+001    1.164040072788426e+002
  Columns 4 through 6
   -4.421747373497897e+002    1.026916236530695e+003   -1.627290724851026e+003
  Columns 7 through 9
    2.014640136010145e+003   -1.994889090724479e+003    1.409147591543573e+003
  Columns 10 through 11
   -7.930651399552935e+002    3.060196847852814e+002

format long

roots(p)

ans =
  3.14566782640757                   
  3.14284644866393 + 0.00387393184365i
  3.14284644866393 - 0.00387393184365i
  3.13830127210676 + 0.00238775268974i
  3.13830127210676 - 0.00238775268974i
  0.00000001541785 + 1.00000001079431i
  0.00000001541785 - 1.00000001079431i
 -0.00000001541785 + 0.99999998920570i
 -0.00000001541785 - 0.99999998920570i
  1.00000000000000                   

[r,m,b,info] = btr(p)

r =
  3.14159265358883                   
 -0.00000000000520 + 1.00000000000504i
 -0.00000000000520 - 1.00000000000504i
  0.99999999991519                   
 
m =
     5
     2
     2
     1

info =
     0


Here is evident that the Matlab function roots well approximates only the simple zero of p, whereas btr approximates with the same accuracy both the roots (returned in the vector r) and their multiplicities (returned in the vector m). Try help btr for more details. The Matlab function btr has been tested under Matlab 5.3. The corresponding file is named btr.m .

Remark. A new, though preliminary, version of the code is contained in the file btr2.m.

Any comment is welcome: please report them to Luigi Brugnano.

Slides of the lecture held in Bergamo.