Condizionamento degli zeri di un polinomio

Download Condizionamento degli zeri di un polinomio

Post on 12-Nov-2014

464 views

Category:

Documents

2 download

Embed Size (px)

DESCRIPTION

Condizionamento degli zeri di un polinomio, algoritmo in matlab per il calcolo delle radici, tesina per il corso di Calcolo Numerici

TRANSCRIPT

<p>Calcolo numerico</p> <p>Condizionamento degli zeri di un polinomio</p> <p>1.</p> <p>Approccio al problema</p> <p>Ilcondizionamentodeglizeri()alvariaredeicoefficientia delpolinomiodefinitocome:</p> <p> k n 1 a n = Cp = , rx p' ( )</p> <p> ry</p> <p>occorrequindiinprimoluogodeterminareleradicidelpolinomio. Radici. Perprimacosailpolinomiovienetabulatoperpoterisolareglizeripervia grafica.</p> <p> Daigraficidip ( x ) ,asinistraconlassedelleordinateinscalalogaritmicadelmodulodiy,adestrainscalalinearesinotalapresenzaditreradiciintornoa-5,-1,e60, identificaterispettivamentecon1,2e3. Siosservaimmediatamentecomelarapiditdellafunzioneintornoallaradice3 renda il problema particolarmente malcondizionato: ad una piccola variazione sulla x 12 corrisponde una grande variazione della y (lasse y visualizzato con scala 10 ). Per la stessaradice,nelgraficologaritmico,siosservaunavariazionedisegnoincuiilmodulo -12 dellafunzionesuperioreai10 ancheseilpassodellay disole0,2unit;Ilpiccoversoilbassoavrebbedovutotendereverso-. Dallingrandimento della funzione intorno allorigine si osserva la presenza di flessi in prossimitdi1edi2,deiquali occorre tener conto per la determinazionedellaradici,inparticolare 1 potrebbe coincidere conunflesso.</p> <p>Roberto Patrizi, 09114657</p> <p>pag 1 di8</p> <p>Calcolo numerico</p> <p>Condizionamento degli zeri di un polinomio</p> <p>2.</p> <p>Ricerca delle radici con Matlab</p> <p>Sonostatiimplementati2algoritmiinlinguaggioMatlabperlaricercadelleradici: il metodo di Newton ed il metodo di bisezione, con i rispettivi script riportati in appendice.Ilcalcolatoreutilizzatoingradodioperareconnumeriinvirgolamobilecon unaprecisionemassimadi17cifre. Radice 1. La presenza del flesso (p ( x ) =0) in prossimit della radice rende difficoltosa la ricerca di un intervallo [a,b], allinterno del quale deve trovarsi la radice ed in cui la derivata seconda non mai nulla. Le condizioni sovra esposte garantiscono la convergenza del metodo di Newtonapartiredaunestremodi Fourier(p ( x 0 ) p ( x 0 ) &gt;0). Non neppure possibile garantireche p ( x ) sia nonnulla inunintornodellaradice,pertanto non sono soddisfatte le condizioniperlaconvergenzadelmetododiNewton.Laradicepotrebbeaveremolteplicit3, intalcasosarebbepossibileapplicareilmetododiNewtonmodificato,perilquale:</p> <p>x n +1 = x n 3</p> <p>p( x n ) p' ( x n )</p> <p>Conilmetododibisezioneinvecesufficientescegliereunintervallo[a,b]peril qualerisultap (a)p (b)&gt;bisezpoly(A,a,b,epsilon); ------------------------------------------------------------------------------n a b m p(m) ------------------------------------------------------------------------------1 -4.600000000000000 -4.000000000000000 -4.300000000000000 5.133e+000 ... ... ... ... 46 -4.333329182771303 -4.333329182771286 -4.333329182771294 -3.492e-009 47 -4.333329182771294 -4.333329182771286 -4.333329182771291 -6.694e-010 48 -4.333329182771291 -4.333329182771286 -4.333329182771289 -3.900e-009 49 -4.333329182771289 -4.333329182771286 -4.333329182771287 2.037e-010 50 -4.333329182771289 -4.333329182771287 -4.333329182771288 0.000e+000 Raggiunta radice in 50 passi&gt;&gt;-16</p> <p>incuiepsilonstatoimpostatoa110 .Siassumercomeradice 1=-4.333329182771288.</p> <p>Roberto Patrizi, 09114657</p> <p>pag 2 di8</p> <p>Calcolo numerico</p> <p>Condizionamento degli zeri di un polinomio</p> <p>Radice 2.Dalgraficointornoallaseconda radice, si osserva la presenza di una distanzatangibiletralaradiceedilnullodella derivata seconda. In questo caso quindi sonovalideleipotesi: p (a)p (b)0,dunque x 0unestremodiFourier.Lesecuzionedelloscriptnewtonzp daluogoalseguenteoutput:&gt;&gt; newtonzp(A,0,epsilon,delta) --------------------------------------n xi p(xi) --------------------------------------1 -0.735849056603774 3.955e+004 2 -0.601542910811362 1.599e+004 3 -0.590245920932620 1.148e+003 4 -0.590158659143148 8.732e+000 5 -0.590158653920796 5.225e-004 Raggiunto limite precisione macchina in 5 passi</p> <p>incuiepsilon=110 ,delta=110 .Lalgoritmosiarrestaalla5iterazione,quando p (x i )ancoradellordinedi10-4.Conilmetododibisezioneinvece:&gt;&gt; bisezpoly(A,a,b,,epsilon) -----------------------------------------------------------------------------n a b m p(m) -----------------------------------------------------------------------------1 -.59999999999999998 .50000000000000000 0.55000000000000004 -3.907e+003 ... ... ... ... 47 -.59015865392079669 -.59015865392079525 -.59015865392079592 1.455e-011 48 -.59015865392079592 -.59015865392079525 -.59015865392079558 -1.455e-011 49 -.59015865392079592 -.59015865392079558 -.59015865392079569 0.000e+000 Raggiunta radice in 49 passi</p> <p>-16</p> <p>10</p> <p>La precisione della radice maggiore, lalgoritmo sembra funzionare meglio del metododiNewton.Ciprobabilmentedovutoaderroridiarrotondamentoeseguitinel -4 calcolodelrapportodellefunzioni p (x )/p (x )(dellordinedi10 ).Infattiladifferenzatra x i -p (x i )/p (x i )nongeneraproblemidovutiallannullamentoinquanto x i svariatior5 dinidigrandezzasuperioredelrapporto.Mentrep (x i )simantieneelevatoordinedi10 , p (x i )decrescefinoarendereinattendibileilrapportotralefunzioni. 2=-0.59015865392079569</p> <p>Roberto Patrizi, 09114657</p> <p>pag 3 di8</p> <p>Calcolo numerico</p> <p>Condizionamento degli zeri di un polinomio</p> <p>Radice 3.Perlaterzaradicefacileindividuareleipotesiperlaconvergenzadel metodo di Newton, ed anche facile individuare lestremo di Fourier x 0, per il quale p (x 0)*p (x 0)&gt;0.Tuttavialaripiditdellafunzionenellintornodellaradice,daluogoad un problema malcondizionato: non appena ci discostiamo dalla radice 3,otteniamo un valore del polinomio molto elevato in modulo. Osserviamo i dati ottenuti con -16 10 lapplicazionedelmetodoconx0=62,epsilon=110 ,delta=110 :newtonzp(A,x0,epsilon,delta) ---------------------------------------n xi p(xi) ---------------------------------------1 61.157300198834456 1.721e+012 2 61.085638246829994 1.254e+011 3 61.085147905914937 8.461e+008 4 61.085147883085845 3.939e+004 5 61.085147883085845 3.466e-005 Raggiunto limite precisione macchina in 5 passi</p> <p>In soli 5 passi viene raggiunto il limite di precisione macchina sulla x, quando il -5 polinomiodellordinedi10 .Forzandolalgoritmoacontinuare,siottengonotutterigheanalogheallaquinta.Notevoleilguadagnodi9ordinidigrandezzasullay inunasolaiterazione,cheimplicachelafunzionebenlinearizzabileintornoallaradice. Occorre osservare che n con il metodo di bisezione, n con altri metodi non possibileottenereunaprecisionemaggiore:Infattiosserviamoidatiottenuticonilmetododibisezione:&gt;&gt; bisezpoly(A,61,61.1,epsilon) ------------------------------------------------------------------------------n a b m p(m) ------------------------------------------------------------------------------1 61.000000000000000 61.100000000000001 61.049999999999997 -6.044e+010 43 61.085147883085831 61.085147883085853 61.085147883085838 -1.289e-002 44 61.085147883085838 61.085147883085853 61.085147883085845 3.466e-005 45 61.085147883085838 61.085147883085845 61.085147883085838 -1.289e-002 46 61.085147883085838 61.085147883085845 61.085147883085838 -1.289e-002</p> <p> Ilmetodogiungeallastessaidenticaradicedelmetododinewtonin44iterazioni, chetralaltrolamigliorechesiriesceadottenere,comevisibiledairisultati. Allariga45siosservachelamedia(a+b)/2,coincideconilvalorea,risultatoovviamenteprivodisensomatematico.Cidovutoallerroredirappresentazionedeinumeridelcalcolatoreutilizzato.Infattieseguendoinmatlabicomandi:&gt;&gt; xi=61.085147883085838; %il valore di a alla riga 44 &gt;&gt; xi+eps(xi) ans = 61.085147883085845</p> <p>otteniamochealliterazione45ilnumerosuccessivoadachepossibilerappresentarepropriob:nonesistononumeriintermediperilcalcolatore.Ciarrestadifatto lalgoritmo,eimpediscediottenereunasoluzionepiaccurata,senonfacendousodiun calcolatoreingradodieseguirecalcoliinvirgolamobileconunnumeromaggioredicifre. 3=61.085147883085845</p> <p>Roberto Patrizi, 09114657</p> <p>pag 4 di8</p> <p>Calcolo numerico</p> <p>Condizionamento degli zeri di un polinomio</p> <p>3.</p> <p>Coefficienti di condizionamento</p> <p>Perturbandoilterminenoto,ilcoefficientedicondizionamentochesiottieneha laforma:</p> <p>Cp =</p> <p> ry rx</p> <p>=</p> <p>an p' ( )</p> <p>cheperleradicitrovateassumeilvalorerispettivamentedi Cp1=5.393094715224958e+009 Cp2=0.39524133495742 Cp3=2.291931500642379e-008 Intuitivamentesiosservacomealvariaredelterminenoto,ilpolinomiovengatraslatoorizzontalmente,conilconseguentespostamentodelleradici.Questospostamento tantomaggiore,quantopiilpolinomiointersecalassedelleascisseorizzontalmente. Cisirispecchianeicoefficientidicondizionamento:perlaradice1atangenzaorizzontale il Cp1 notevolmente elevato, al contrario per la radice 3 data da unintersezione quasiverticaledelpolinomioconlassedelleascisse,sihaunCp3particolarmentebasso, comeeraragionevoleaspettarsi. Cisignificacheperlaterzaradicenoncriticoilterminenoto,anchepervariazionipiuttostoampiedellostessononsihannoconsistentiscostamentidellaradice.invececriticaladeterminazionedellastessa,perlaquale,infatti,suhaunindicedicondi18 zionamentodellaradicedicirca310 . Perlaprimaradicesihaildiscorsoinverso,mentrelasecondainuncertoqual modopiequilibrata,ledifficoltdelladeterminazionedellaradiceelasuasensibilita variazionidelterminenotosiequivalgono,enoncomportanoparticolariproblemi. Perturbando il terminediquinto grado, peril quale k -n -1=4, i valori deicoefficientidicondizionamentosonodatida:</p> <p> 4 a2 Cp = p' ( )Siottengonoquindiivalori Cp1=-9.629300430614109e+011 Cp2=0.02427769436537 Cp3=-0.16158986377900 Ancheinquestocasoleradicipisensibilisonoquelleincuiilpolinomiointerseca lassedelleascisseconpendenzapibassa,valeadire1inprimoluogo(atangenzaorizzontale)einmisuraminore2.Ingeneraleleradicimultiple,perlequalisiannullaanche laderivataprimasonomalcondizionaterispettoaperturbazionideicoefficienti.</p> <p>Roberto Patrizi, 09114657</p> <p>pag 5 di8</p> <p>Calcolo numerico</p> <p>Condizionamento degli zeri di un polinomio</p> <p>4.</p> <p>Codice degli algoritmi</p> <p>Poly.dat 27 -1296 -20025 -92663 -146320 -35555 -53742 -39546</p> <p>function A1=deriva(A) % % A1=deriva(A) % %Se A una matrice dei coefficienti di un polinomio, la funzione %restituisce la matrice A1 dei coefficienti della derivata del polinomio % n=length(A)-1; % il grado del polinomio (il -1 serve per la presenza del termine noto) for i=1:n A1(i)=A(i)*(n+1-i); end;</p> <p>function Y=polycalc(A,X) % % Y=polycalc(A,X) % %Funzione per il calcolo del valore assunto da un polinomio in un punto %(o vettore di punti X). A la matrice dei coefficienti del polinomio % n=length(A); Y=X*0; %Inizializzazione di Y for i=1:n Y=Y+A(i)*(X.^(n-i)); end;</p> <p> function m=bisezpoly(A,a,b,epsilon) % % m=bisezpoly(A,a,b,epsilon) % %Calcolo gli zeri di un polinomio tramite il metodo di Bisezione. A la %matrice dei coefficienti del polinomio, a e b sono gli estremi %dell'intervallo al quale applicato il metodo, epsilon la precisione %che si vuole ottenere sulla determinazione della radice m % %Visualizzazione dei passaggi s='---------------------------------------------------------------' ; disp(s) fprintf(' n\t\t\t a\t\t\t\t\t b\t\t\t\t\t m\t\t\t\t p(m)\n') disp(s) n=1; %inizializzazione N=ceil((log(b-a)-log(epsilon))/log(2)); %numero di iterazioni richieste fa=polycalc(A,a); fb=polycalc(A,b);</p> <p>Roberto Patrizi, 09114657</p> <p>pag 6 di8</p> <p>Calcolo numerico</p> <p>Condizionamento degli zeri di un polinomio</p> <p>if sign(fa)==sign(fb) %verifica intervallo fprintf('L''intervallo non valido!' ) else while n</p>

Recommended

View more >