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.