Jenkins – Traub-algoritm - Jenkins–Traub algorithm

Den Jenkins-Traub algoritm för polynoma nollor är ett snabbt globalt konvergent iterativ polynom rot undersökningsmetod som publicerades i 1970 av Michael A. Jenkins och Joseph F Traub . De gav två varianter, en för allmänna polynomer med komplexa koefficienter, allmänt känd som "CPOLY" -algoritmen, och en mer komplicerad variant för specialfallet av polynomer med verkliga koefficienter, allmänt känd som "RPOLY" -algoritmen. Det senare är "praktiskt taget en standard i black-box polynom root-finders".

Den här artikeln beskriver den komplexa varianten. Med tanke på ett polynom P ,

med komplexa koefficienter den beräknar approximationer till de n nollställen av P ( z ), en i taget i stort sett ökande storleksordning. När varje rot har beräknats tas dess linjära faktor bort från polynom. Att använda denna deflation garanterar att varje rot beräknas bara en gång och att alla rötter hittas.

Den verkliga varianten följer samma mönster, men beräknar två rötter åt gången, antingen två verkliga rötter eller ett par konjugerade komplexa rötter. Genom att undvika komplex aritmetik kan den verkliga varianten vara snabbare (med en faktor 4) än den komplexa varianten. Jenkins – Traub-algoritmen har stimulerat avsevärd forskning om teori och programvara för metoder av denna typ.

Översikt

Jenkins – Traub-algoritmen beräknar alla rötter till ett polynom med komplexa koefficienter. Algoritmen börjar med att kontrollera polynomet för förekomst av mycket stora eller mycket små rötter. Vid behov omskalas koefficienterna genom en omskalning av variabeln. I algoritmen finns rätt rötter en efter en och i allmänhet i ökande storlek. Efter att varje rot har hittats deflateras polynom genom att dela upp motsvarande linjär faktor. Faktum är att faktoriseringen av polynomet till den linjära faktorn och det återstående deflaterade polynomet redan är ett resultat av rotfyndningsförfarandet. Rotfyndningsförfarandet har tre steg som motsvarar olika varianter av den inversa kraftgeneration . Se Jenkins och Traub . En beskrivning finns också i Ralston och Rabinowitz s. 383. Algoritmen liknar i andan den tvåstegsalgoritm som Traub studerat.

Rotfyndningsförfarande

Från och med det nuvarande polynomet P ( X ) av grad n beräknas den minsta roten av P (x) . För detta ändamål konstrueras en sekvens av så kallade H- polynomer. Dessa polynom är alla av grad n  - 1 och ska konvergera till faktorn P ( X ) som innehåller alla återstående rötter. Sekvensen av H- polynomer förekommer i två varianter, en onormaliserad variant som möjliggör enkla teoretiska insikter och en normaliserad variant av polynomer som håller koefficienterna inom ett numeriskt förnuftigt intervall.

Konstruktionen av H- polynomerna beror på en sekvens av komplexa nummer som kallas skift. Dessa skift beror, åtminstone i det tredje steget, av de tidigare H- polynomema. De H polynom definieras som lösningen på den implicita rekursion

och

En direkt lösning på denna implicita ekvation är

där polynomuppdelningen är exakt.

Algoritmiskt skulle man till exempel använda Horner-schemat eller Ruffini-regeln för att utvärdera polynomerna vid och erhålla kvoterna samtidigt. Med de resulterande kvotienterna p ( X ) och h ( X ) som mellanresultat erhålls nästa H- polynom som

Eftersom den högsta graden koefficienten erhålls från P (X) , den ledande koefficienten är . Om detta delas ut är det normaliserade H- polynomet

Steg ett: ingen skiftprocess

För uppsättning . Vanligtvis väljs M = 5 för polynom med måttliga grader upp till n  = 50. Detta steg är inte nödvändigt från enbart teoretiska överväganden, men är användbart i praktiken. Det betonar i H- polynomerna kofaktorn (av den linjära faktorn) för den minsta roten.

Steg två: fast skiftprocess

Skiftet för detta steg bestäms som någon punkt nära polynomets minsta rot. Det är kvasi-slumpmässigt placerat på cirkeln med den inre rotradien, som i sin tur uppskattas som den positiva lösningen av ekvationen

Eftersom vänster sida är en konvex funktion och ökar monotont från noll till oändlighet är denna ekvation lätt att lösa, till exempel med Newtons metod .

Välj nu på cirkeln för denna radie. Sekvensen av polynom , , genereras med den fasta skiftvärdet . Under denna iteration, den nuvarande approximationen för roten

spåras. Den andra etappen är klar framgångsrikt om villkoren

och

möts samtidigt. Om det inte blev någon framgång efter ett visst antal iterationer prövas en annan slumpmässig punkt på cirkeln. Vanligtvis använder man ett antal nio iterationer för polynom av måttlig grad, med en fördubblingsstrategi för flera fel.

Steg tre: variabel skiftprocess

De genereras nu med de variabla skift som genereras av

är den sista rotuppskattningen av andra etappen och

var är det normaliserade H- polynomet, som divideras med dess ledande koefficient.

Om stegstorleken i steg tre inte faller tillräckligt snabbt till noll startas steg två igen med en annan slumpmässig punkt. Om detta inte lyckas efter ett litet antal omstarter fördubblas antalet steg i steg två.

Konvergens

Det kan visas att, förutsatt L väljs tillräckligt stor, s λ alltid konvergerar till en rot till P .

Algoritmen konvergerar för någon distribution av rötter, men kan misslyckas med att hitta alla polynomets rötter. Dessutom är konvergensen något snabbare än den kvadratiska konvergensen av Newton – Raphson-iteration, men den använder dock minst dubbelt så många operationer per steg.

Vad ger algoritmen sin kraft?

Jämför med Newton – Raphson-iterationen

Iterationen använder den givna P och . Däremot den tredje etappen av Jenkins – Traub

är just en Newton – Raphson-iteration utförd på vissa rationella funktioner . Mer exakt utförs Newton – Raphson på en sekvens av rationella funktioner

För tillräckligt stora

är så nära som önskat till ett första grads polynom

var är en av nollorna till . Även om steg 3 exakt är en Newton – Raphson-iteration utförs inte differentiering.

Analys av H- polynomema

Låt vara rötterna till P ( X ). De så kallade Lagrange-faktorerna hos P (X) är kofaktorerna för dessa rötter,

Om alla rötter är olika, så bildar Lagrange-faktorerna en grund för rymden hos polynomier av grad högst n  - 1. Genom analys av rekursionsproceduren finner man att H- polynomema har koordinatrepresentationen

Varje Lagrange-faktor har ledande koefficient 1, så att den ledande koefficienten för H-polynomema är summan av koefficienterna. De normaliserade H-polynomema är således

Konvergensbeställningar

Om tillståndet gäller för nästan allt iterat, kommer de normaliserade H-polynomerna att konvergera åtminstone geometriskt mot .

Under förutsättning att

man får de asymptotiska uppskattningarna för

  • steg 1:
  • för steg 2, om s är tillräckligt nära för att :
    och
  • och för steg 3:
    och
ger upphov till en högre än kvadratisk konvergensordning av , var är det gyllene förhållandet .

Tolkning som omvänd kraft iteration

Alla steg i Jenkins – Traub-komplexalgoritmen kan representeras som det linjära algebra-problemet för att bestämma egenvärdena för en speciell matris. Denna matris är koordinatrepresentationen för en linjär karta i det n -dimensionella utrymmet för polynom med grad n  - 1 eller mindre. Huvudidén med denna karta är att tolka faktoriseringen

med en rot och den återstående faktorn av grad n  - 1 som egenvektorekvationen för multiplikationen med variabeln X , följt av återstående beräkning med divisor P ( X ),

Detta kartlägger högst grad polynomier n  - 1 till högst polynomier n  - 1. Egenvärdena för denna karta är rötterna till P ( X ), eftersom egenvektorekvationen lyder

vilket antyder att det vill säga är en linjär faktor för P ( X ). På monombasis representeras den linjära kartan av en kompletterande matris av polynom P , som

den resulterande koefficientmatrisen är

Till denna matris tillämpas den inversa effekt iterationen i de tre varianterna av inget skift, konstant skift och generaliserad Rayleigh skift i algoritmens tre steg. Det är mer effektivt att utföra de linjära algebraoperationerna i polynomiell aritmetik och inte genom matrisoperationer, men egenskaperna hos den inversa kraft iterationen förblir desamma.

Verkliga koefficienter

Den tidigare beskrivna Jenkins – Traub-algoritmen fungerar för polynom med komplexa koefficienter. Samma författare skapade också en trestegsalgoritm för polynom med verkliga koefficienter. Se Jenkins och Traub A Three-Stage Algorithm for Real Polynomials Using Quadratic Iteration . Algoritmen hittar antingen en linjär eller kvadratisk faktor som fungerar helt i verklig aritmetik. Om de komplexa och verkliga algoritmerna tillämpas på samma riktiga polynom är den verkliga algoritmen ungefär fyra gånger så snabb. Den verkliga algoritmen konvergerar alltid och konvergenshastigheten är större än andra ordningen.

En anslutning med den skiftade QR-algoritmen

Det finns en överraskande koppling till den skiftade QR-algoritmen för beräkning av matrisens egenvärden. Se Dekker och Traub Den skiftade QR-algoritmen för Hermitian-matriser . Återigen kan skiften ses som Newton-Raphson-iteration på en sekvens av rationella funktioner som konvergerar till ett första grads polynom.

Programvara och testning

Programvaran för Jenkins – Traub-algoritmen publicerades som Jenkins och Traub Algorithm 419: Zeros of a Complex Polynomial . Programvaran för den verkliga algoritmen publicerades som Jenkins Algorithm 493: Zeros of a Real Polynomial .

Metoderna har testats utförligt av många människor. Som förutsagt njuter de snabbare än kvadratisk konvergens för alla nollfördelningar.

Det finns emellertid polynomer som kan orsaka förlust av precision, såsom illustreras av följande exempel. Polynomet har alla sina nollor som ligger på två halvcirklar med olika radier. Wilkinson rekommenderar att det är önskvärt för stabil deflation att mindre nollor beräknas först. Skift i andra steget väljs så att nollorna på den mindre halvcirkeln hittas först. Efter deflation är polynom med nollor på halvcirkeln känt för att vara dåligt konditionerat om graden är stor; se Wilkinson, s. 64. Det ursprungliga polynomet var av grad 60 och drabbades av allvarlig deflationsinstabilitet.

Referenser

externa länkar