多项式和矩阵的贬义流形,第1部分

在1972年一份未发表的技术报告《节约汇流抑制不良状况》中,Velvel Kahan创造了这个描述性术语贬义的廖.如果你在日常对话中不使用它,贬义的意思是“表示蔑视或反对”。

Velvel的报告关注的是具有多重根的多项式,这种多项式通常被轻视,因为它们的条件太糟糕了。但Velvel的关键观察是,尽管多重根对任意扰动很敏感,但它们对保留多重性的扰动不敏感。同样的观察结果可以应用于矩阵的逆和特征值。

内容

管汇的

在这个例子中,带有贬义词的流形$\mathcal{M}$是所有在x = 3处多重数为0的六次多项式的集合。当然,这些都是严格的限制,而且$\mathcal{M}$是所有多项式集合的一个极小子集。但如果我们保持在$ mathcal{M}$范围内,生活就远没有那么残酷了。

两个多项式

首先是一对有多个根的多项式。所有多项式在x = 3处都有一个多重数为3的根以及其他多重根。这个是x = 1处的二重根和x = 2处的单根。

x =符号(“x”);p1 = (- 3) ^ 3 * (x - 2) * (x - 1) ^ 2;

左(x - 1 $ $ p1 ={\ \右)}^ 2 \ \左(x - 2 \) \{\左(- 3 \右)}^ 3 $ $

下一个在x = 2处有二重根在x = 1处有单根。

p2 = (- 3) ^ 3 * (x - 2) ^ 2 * (x - 1);

$ $ p2 =左(x - 1 \) \ \{\左(x - 2 \右)}^ 2 \{\左(- 3 \右)}^ 3 $ $

总结一下,我们有两个多项式,p1p2.两者都有6次,并且在x = 3处有三重根。此外,pk在x =k

确认

我们看一下系数。

p1 =扩大(p1);

$ $ p1 = x ^ 6-13 \, x ^ 5 + 68 \, x ^ 4 - 182 \, x ^ 3 + 261 \, x ^ 2 - 189 \ x + 54 $ $

p2 =扩大(p2);

$ $ p2 = x ^ 6日至14日\,x ^ 5 + 80 \, x ^ 4 - 238 \, x ^ 3 + 387 \, x ^ 2 - 324 \ x + 108美元美元

我们可以精确地解出它们并验证它们有想要的根。

Z1 = solve(p2)'
Z1 = [1,1,2,3, 3, 3, 3] [1, 2, 2, 3, 3]

凸组合

现在我们取一个凸线性组合。我用的是1/3和2/3,但我可以用任何其他的权重只要它们的和是1。任何这样的凸线性组合仍然在$\mathcal{M}$中。

P3 = 1/3*p1 + 2/3*p2;

$ $ p3 = x ^ 6 - \压裂{41 \,x ^ 5} {3} + 76 \, x ^ 4 - \压裂{658 \,x ^ 3} {3} + 345 \, x ^ 2 - 279 \ x + 90 $ $

它在x = 3处仍然有三重根。x = 1和x = 2的根现在是单根x = 5/3的根是1和2的凸线性组合具有相同的系数,5/3 = 1/3*1 + 2/3*2。

z =解决(p3) '
Z = [1,5 / 3,2,3,3]

看看这三个多项式的图,你可以看出3点的三重根比1点的蓝色二重根或2点的绿色二重根更敏感,而这两个根和任何一个单根都更敏感。

plot_polys (p1, p2, p3)

浮点阴霾

现在是一个小小的疑问。取一个不合理权重的凸线性组合并使用vpa,变量精度浮点运算。我们处在一个浮点模糊中,其厚度为$10^{-32}$围绕着$\mathcal{M}$。

数字(32)w = 2 /(1 +√(vpa (5))) q = w * p1 + (1 w) * p2;Z = w*1 + (1-w)*2
W = 0.61803398874989484820458683436564

这是系数。

disp(多项式系数(q)”)
74.626164607505678196952310944256 -240.56541151876419549238077736064 309.12771741751324912622205886993 -203.39009663000588850054313727552 72.583592135001261821544957987612 -13.381966011250105151795413165634 1.0

找到根源。

z =解决(q)
z = 1.0000000000000000000000000000003 1.3819660112501051517954131656331 - 2.0000000000000000000000000000026 3.0000000000990590107064189257617 - 2.9999999999504704946467905371184 2.9999999999504704946467905371184 - 0.000000000085787619734391393745538952850968 + 0.000000000085787619734391393745538952850968我

这些单根已经完全准确地存活了下来。但是在x = 3处的三重根已经被摄动分裂成三个复数在一个以x = 3为中心的圆上,半径大致为工作精度的立方根。

圆(双(z (4:6) 3))

精度的立方根从何而来?我们试着解这个方程

$ ${\左(- 3 \右)}^ 3 \ \σ(x) = 0 $ $

在$x = 3$附近$不为零。使用精度为$\epsilon$的浮点运算,我们可以解决如下问题

$ ${\左(- 3 \右)}^ 3 \ \σ(x) = \ε$ $

解决方案是

左($ $ x = 3 + \ \压裂{\ε}{\σ(x)} \右)^ {1/3}$ $

立方根有三个不同的复数值。

双精度

让我们简单地离开符号工具箱。将凸组合中的系数转换为双倍精度,并使用传统的MATLAB函数

q = fliplr(双(多项式系数(p3))) ';disp (“q = ')流(“% 25.15 f \ n”, q)格式z =根(q)
q = 1.000000000000000 -13.666666666666666 76.000000000000000 -219.333333333333343 345.000000000000000 -279.000000000000000 90.000000000000000 z = 3.000044739105571 + 0.000077484446947我3.000044739105571 - 0.000077484446947 2.999910521787618 + 0.000000000000000 2.000000000002179 1.666666666665676 + 0.000000000000000 + 0.000000000000000我1.000000000000047 + 0.000000000000000我

这和32位的情况是一样的vpa.在x = 1,5 /3和2处的单根的计算精度接近全双精度,而三重根的精度大致相同eps ^ (1/3),大约是五位数。

圆(z (1:3) 3)

冒险离开歧管

从多项式的常数项中减去一个小的量。这将我们移出$\mathcal{M}$。

P = p1 - sym(1.e-4)
P = x^6 - 13*x^5 + 68*x^4 - 182*x^3 + 261*x^2 - 189*x + 539999/10000

我们可以试着精确地找到根,但是修正的多项式不能因式分解有理数。

解决(p)
ans =根(z z ^ ^ 6 - 13 * 5 + 68 * z z ^ ^ 4 - 182 * 3 + 261 * z ^ 2 - 189 * z + 539999/10000, z, 1)根(z z ^ ^ 6 - 13 * 5 + 68 * z z ^ ^ 4 - 182 * 3 + 261 * z ^ 2 - 189 * z + 539999/10000, z, 2)根(z z ^ ^ 6 - 13 * 5 + 68 * z z ^ ^ 4 - 182 * 3 + 261 * z ^ 2 - 189 * z + 539999/10000, z, 3)根(z z ^ ^ 6 - 13 * 5 + 68 * z z ^ ^ 4 - 182 * 3 + 261 * z ^ 2 - 189 * z + 539999/10000, z,根(z^6 - 13*z^5 + 68*z^4 - 182*z^3 + 261*z^2 - 189*z + 539999/10000, z, 5)根(z^6 - 13*z^5 + 68*z^4 - 182*z^3 + 261*z^2 - 189*z + 539999/10000, z, 6)

用数值方法求根vpa.这一次所有的根,甚至是简单的根,都受到了影响。

z = vpa(解(p))
Z = 0.99647996935769229447 1.0035512830254182854 1.9999000099960012995 2.9856883694814744941 - 0.025815296081878984073i 2.9856883694814744941 + 0.025815296081878984073i 3.0286919986579391324

我们建造p1在x = 1处有一个二重根,在x = 2处有一个单根,在x = 3处有一个三重根。它们的多样性决定了干扰对它们的影响程度。

E = abs(double(z - z1'))
E = 0.003520030642308 0.003551283025418 0.000099990003999 0.029516982906352 0.029516982906352 0.028691998657939

未完待续

我把这个分成两部分。的在下一篇文章是关于矩阵特征值的。

关闭

参考文献

曾中刚,《多项式的故事》,ppt演示。< http://homepages.neiu.edu/ ~ zzeng / neiu.ppt>, 2003。

W.卡汉(W. Kahan),保存汇流抑制不良状况。技术报告6,计算机科学,加州大学伯克利分校,1972。




发布与MATLAB®R2019b

|

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。