Condizionamento degli zeri di un polinomio

Download Condizionamento degli zeri di un polinomio

Post on 12-Nov-2014

463 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

Calcolo numerico

Condizionamento degli zeri di un polinomio

1.

Approccio al problema

Ilcondizionamentodeglizeri()alvariaredeicoefficientia delpolinomiodefinitocome:

k n 1 a n = Cp = , rx p' ( )

ry

occorrequindiinprimoluogodeterminareleradicidelpolinomio. Radici. Perprimacosailpolinomiovienetabulatoperpoterisolareglizeripervia grafica.

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.

Roberto Patrizi, 09114657

pag 1 di8

Calcolo numerico

Condizionamento degli zeri di un polinomio

2.

Ricerca delle radici con Matlab

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 ) >0). Non neppure possibile garantireche p ( x ) sia nonnulla inunintornodellaradice,pertanto non sono soddisfatte le condizioniperlaconvergenzadelmetododiNewton.Laradicepotrebbeaveremolteplicit3, intalcasosarebbepossibileapplicareilmetododiNewtonmodificato,perilquale:

x n +1 = x n 3

p( x n ) p' ( x n )

Conilmetododibisezioneinvecesufficientescegliereunintervallo[a,b]peril qualerisultap (a)p (b)>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>>-16

incuiepsilonstatoimpostatoa110 .Siassumercomeradice 1=-4.333329182771288.

Roberto Patrizi, 09114657

pag 2 di8

Calcolo numerico

Condizionamento degli zeri di un polinomio

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:>> 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

incuiepsilon=110 ,delta=110 .Lalgoritmosiarrestaalla5iterazione,quando p (x i )ancoradellordinedi10-4.Conilmetododibisezioneinvece:>> 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

-16

10

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

Roberto Patrizi, 09114657

pag 3 di8

Calcolo numerico

Condizionamento degli zeri di un polinomio

Radice 3.Perlaterzaradicefacileindividuareleipotesiperlaconvergenzadel metodo di Newton, ed anche facile individuare lestremo di Fourier x 0, per il quale p (x 0)*p (x 0)>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

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:>> 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

Ilmetodogiungeallastessaidenticaradicedelmetododinewtonin44iterazioni, chetralaltrolamigliorechesiriesceadottenere,comevisibiledairisultati. Allariga45siosservachelamedia(a+b)/2,coincideconilvalorea,risultatoovviamenteprivodisensomatematico.Cidovutoallerroredirappresentazionedeinumeridelcalcolatoreutilizzato.Infattieseguendoinmatlabicomandi:>> xi=61.085147883085838; %il valore di a alla riga 44 >> xi+eps(xi) ans = 61.085147883085845

otteniamochealliterazione45ilnumerosuccessivoadachepossibilerappresentarepropriob:nonesistononumeriintermediperilcalcolatore.Ciarrestadifatto lalgoritmo,eimpediscediottenereunasoluzionepiaccurata,senonfacendousodiun calcolatoreingradodieseguirecalcoliinvirgolamobileconunnumeromaggioredicifre. 3=61.085147883085845

Roberto Patrizi, 09114657

pag 4 di8

Calcolo numerico

Condizionamento degli zeri di un polinomio

3.

Coefficienti di condizionamento

Perturbandoilterminenoto,ilcoefficientedicondizionamentochesiottieneha laforma:

Cp =

ry rx

=

an 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:

4 a2 Cp = p' ( )Siottengonoquindiivalori Cp1=-9.629300430614109e+011 Cp2=0.02427769436537 Cp3=-0.16158986377900 Ancheinquestocasoleradicipisensibilisonoquelleincuiilpolinomiointerseca lassedelleascisseconpendenzapibassa,valeadire1inprimoluogo(atangenzaorizzontale)einmisuraminore2.Ingeneraleleradicimultiple,perlequalisiannullaanche laderivataprimasonomalcondizionaterispettoaperturbazionideicoefficienti.

Roberto Patrizi, 09114657

pag 5 di8

Calcolo numerico

Condizionamento degli zeri di un polinomio

4.

Codice degli algoritmi

Poly.dat 27 -1296 -20025 -92663 -146320 -35555 -53742 -39546

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;

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;

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);

Roberto Patrizi, 09114657

pag 6 di8

Calcolo numerico

Condizionamento degli zeri di un polinomio

if sign(fa)==sign(fb) %verifica intervallo fprintf('L''intervallo non valido!' ) else while n

Recommended

View more >