{"id":333,"date":"2003-08-13T00:00:00","date_gmt":"2003-08-12T22:00:00","guid":{"rendered":""},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T22:00:00","slug":"333","status":"publish","type":"post","link":"https:\/\/www.vialattea.net\/content\/333\/","title":{"rendered":"In che cosa consiste il &#8220;metodo di Bairstow&#8221; per il calcolo approssimato delle radici di un&#8217;equazione?"},"content":{"rendered":"<p align=\"justify\">\n<p><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">In rete \u00e8 possibile reperire una grande quantit\u00e0 di materiale<br \/>\nsull&#8217;algoritmo di Bairstow.  In questa sede commentiamo il paragrafo &#8220;Real<br \/>\nand Complex Roots of Polynomials&#8221;, dagli <a href=\"http:\/\/chml028.chml.ubc.ca\/CHML\/chbe330\/notes\/rootfind.doc\">appunti del<br \/>\ncorso di Metodi Numerici<\/a> (formato Word, circa 900 kB) di<br \/>\nun&#8217;universit\u00e0 californiana, in cui \u00e8 possibile trovare anche<br \/>\nesempi applicativi in MatLab. <\/font><\/p>\n<p align=\"justify\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Sia<br \/>\n<i>f<\/i>(<i>x<\/i>)\u00a0=\u00a0<i>a<\/i><sub>0<\/sub><i>x<sup>n<\/sup><\/i>\u00a0+\u00a0&#8230;\u00a0+\u00a0<i>a<\/i><sub><i>n<\/i>-1<\/sub><i>x<\/i>\u00a0+\u00a0<i>a<sub>n<\/sub><\/i><br \/>\nun polinomio di grado n.  L&#8217;algoritmo numerico di ricerca delle radici di<br \/>\npolinomi di Bairstow \u00e8 basato sul seguente metodo.  Dato un polinomio<br \/>\nquadratico<br \/>\n<i>q<\/i>(<i>x<\/i>)\u00a0=\u00a0<i>x<\/i><sup>2<\/sup>\u00a0+\u00a0<i>ux<\/i>\u00a0+\u00a0<i>v<\/i><br \/>\n(dove i coefficienti <i>u<\/i> e <i>v<\/i> sono scelti opportunamente, come<br \/>\ndiremo poi), esistono due polinomi <i>f&#8217;<\/i> e <i>r<\/i> tali che  <\/font><\/p>\n<p align=\"center\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><i>f<\/i>(<i>x<\/i>)\u00a0=\u00a0<i>q<\/i>(<i>x<\/i>)<i>f&#8217;<\/i>(<i>x<\/i>)\u00a0+\u00a0<i>r<\/i>(<i>x<\/i>).<br \/>\n<\/font><\/p>\n<p align=\"justify\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Il polinomio <i>f&#8217;<\/i>(<i>x<\/i>) \u00e8 di grado<br \/>\n<i>n<\/i>\u00a0&#8211;\u00a02 e il resto <i>r<\/i>(<i>x<\/i>) \u00e8 di grado 1,<br \/>\ncio\u00e8 una funzione lineare. Nel caso in cui<br \/>\n<i>r<\/i>(<i>x<\/i>)\u00a0=\u00a00, si avrebbe che <i>f<\/i>(<i>x<\/i>) \u00e8<br \/>\nun polinomio che ha due radici in comune con <i>q<\/i>(<i>x<\/i>). <\/font><\/p>\n<p align=\"justify\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Scrivendo il resto<br \/>\n<i>r<\/i>(<i>x<\/i>) nella forma<br \/>\n<i>b<sub>n<\/sub><\/i><sub>-1<\/sub>(<i>x<\/i>\u00a0+\u00a0<i>u<\/i>)\u00a0+\u00a0<i>b<sub>n<\/sub><\/i>,<br \/>\ne il polinomio<br \/>\n<i>f&#8217;<\/i>(<i>x<\/i>)\u00a0=\u00a0<i>b<\/i><sub>0<\/sub><i>x<\/i><sup><i>n<\/i>-2<\/sup>\u00a0+\u00a0&#8230;\u00a0+\u00a0<i>b<\/i><sub><i>n<\/i>-3<\/sub><i>x<\/i>\u00a0+\u00a0<i>b<\/i><sub><i>n<\/i>-2<\/sub><br \/>\nsi ottiene una riscrittura di <i>f<\/i>(<i>x<\/i>) nei seguenti termini: <\/font><\/p>\n<p align=\"center\">\n<p><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><i>a<\/i><sub>0<\/sub><i>x<sup>n<\/sup><\/i>\u00a0+\u00a0&#8230;\u00a0+\u00a0<i>a<\/i><sub><i>n<\/i>-1<\/sub><i>x<\/i>\u00a0+\u00a0<i>a<sub>n<\/sub><\/i>\u00a0=\u00a0(<i>b<\/i><sub>0<\/sub><i>x<\/i><sup><i>n<\/i>-2<\/sup>\u00a0+\u00a0&#8230;\u00a0+\u00a0<i>b<\/i><sub><i>n<\/i>-3<\/sub><i>x<\/i>\u00a0+\u00a0<i>b<\/i><sub><i>n<\/i>-2<\/sub>)(<i>x<\/i><sup>2<\/sup>\u00a0+\u00a0<i>ux<\/i>\u00a0+\u00a0<i>v<\/i>)\u00a0+\u00a0<i>b<sub>n<\/sub><\/i><sub>-1<\/sub>(<i>x<\/i>\u00a0+\u00a0<i>u<\/i>)\u00a0+\u00a0<i>b<sub>n<\/sub><\/i>;<br \/>\n<\/font><\/p>\n<p align=\"justify\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">i due polinomi, per essere uguali, devono avere gli stessi<br \/>\ncoefficienti per uguali potenze di <i>x<\/i>.  Questo fatto definisce la<br \/>\nrelazione di ricorrenza: <\/font><\/p>\n<p align=\"center\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><i>b<sub>i<\/sub><\/i>\u00a0=\u00a0<i>a<sub>i<\/sub><\/i>\u00a0&#8211;\u00a0<i>b<\/i><sub><i>i<\/i>-1<\/sub><i>u<\/i>\u00a0&#8211;\u00a0<i>b<\/i><sub><i>i<\/i>-2<\/sub><i>v<\/i><br \/>\n\u00a0\u00a0\u00a0\u00a0(<i>i<\/i>\u00a0=\u00a02,\u00a03,\u00a0&#8230;,\u00a0<i>n<\/i>)<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[1] <\/font><\/p>\n<p align=\"justify\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">ove <i>b<\/i><sub>0<\/sub>\u00a0=\u00a0<i>a<\/i><sub>0<\/sub> e<br \/>\n<i>b<\/i><sub>1<\/sub>\u00a0=\u00a0<i>a<\/i><sub>1<\/sub>\u00a0&#8211;\u00a0<i>b<\/i><sub>0<\/sub><i>u<\/i>.<br \/>\n<\/font><\/p>\n<p align=\"justify\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Il problema principale<br \/>\ndel metodo di Bairstow \u00e8 scegliere i fattori <i>u<\/i> e <i>v<\/i> in<br \/>\nmodo tale che il resto <i>r<\/i>(<i>x<\/i>) sia nullo, ovvero che<br \/>\n<i>b<\/i><sub><i>n<\/i>-1<\/sub> e <i>b<sub>n<\/sub><\/i> siano identicamente<br \/>\nnulli.  Ci\u00f2 comporta la necessit\u00e0 di risolvere il sistema,<br \/>\nottenuto dalla equazione alla ricorrenze di cui sopra, <\/font><\/p>\n<p><center><\/p>\n<table>\n<tbody>\n<tr>\n<td><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><i>b<\/i><sub><i>n<\/i>-1<\/sub>(<i>u<\/i>, <i>v<\/i>) = 0<\/font><\/td>\n<td valign=\"center\" rowspan=\"2\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[2]<br \/>\n <\/font><\/td>\n<\/tr>\n<tr>\n<td><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><i>b<sub>n<\/sub><\/i>(<i>u<\/i>, <i>v<\/i>) = 0<br \/>\n<\/font><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><\/center><\/p>\n<p align=\"justify\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Le radici del sistema possono essere ottenute mediante il<br \/>\nmetodo di Raphson-Newton per la ricerca di radici di polinomi lineari<br \/>\n(<i>u<\/i> e <i>v<\/i> appaiono infatti di primo grado nella equazione alle<br \/>\nricorrenze).  A partire da stime iniziali di <i>u<\/i> e <i>v<\/i> \u00e8<br \/>\npossibile determinare piccoli incrementi <img decoding=\"async\" src=\"..\/..\/esperti\/mat\/bairstow\/Delta.gif\" valign=\"middle\" alt=\"\"\/><i>u<\/i>, <img decoding=\"async\" src=\"..\/..\/esperti\/mat\/bairstow\/Delta.gif\" valign=\"middle\" alt=\"\"\/><i>v<\/i> che<br \/>\nrisolvano il sistema [2], i.e.: <\/font><\/p>\n<p><center><\/p>\n<table>\n<tbody>\n<tr>\n<td><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><i>b<\/i><sub><i>n<\/i>-1<\/sub>(<i>u<\/i> + <img decoding=\"async\" src=\"..\/..\/esperti\/mat\/bairstow\/Delta.gif\" valign=\"middle\" alt=\"\"\/><i>u<\/i>, <i>v<\/i> + <img decoding=\"async\" src=\"..\/..\/esperti\/mat\/bairstow\/Delta.gif\" valign=\"middle\" alt=\"\"\/><i>v<\/i>) = 0<\/font><\/td>\n<td valign=\"center\" rowspan=\"2\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[3]<br \/>\n <\/font><\/td>\n<\/tr>\n<tr>\n<td><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><i>b<sub>n<\/sub><\/i>(<i>u<\/i> + <img decoding=\"async\" src=\"..\/..\/esperti\/mat\/bairstow\/Delta.gif\" valign=\"middle\" alt=\"\"\/><i>u<\/i>, <i>v<\/i> + <img decoding=\"async\" src=\"..\/..\/esperti\/mat\/bairstow\/Delta.gif\" valign=\"middle\" alt=\"\"\/><i>v<\/i>) = 0<br \/>\n<\/font><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><\/center><\/p>\n<p align=\"justify\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">il metodo di Raphson-Newton prevede l&#8217;espansione della [3]<br \/>\nin serie di Taylor bidimensionale in <i>u<\/i> e <i>v<\/i>.  Per ottenere una<br \/>\nprecisione sufficiente, nella serie di Taylor ci si arresta al termine<br \/>\nlineare: <\/font><\/p>\n<p align=\"center\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><img decoding=\"async\" align=\"middle\" src=\"..\/..\/esperti\/mat\/bairstow\/eq001.gif\" alt=\"\"\/><br \/>\n\u00a0\u00a0\u00a0\u00a0(<i>i<\/i>\u00a0=\u00a0<i>n<\/i>\u00a0&#8211;\u00a01,\u00a0<i>n<\/i>)<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[4] <\/font><\/p>\n<p align=\"justify\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">L&#8217;equazione alle ricorrenze [1] \u00e8 ovviamente valida<br \/>\nanche per calcolare le derivate parziali della [4].  Ci\u00f2 consente di<br \/>\nriscrivere la [4] applicando al posto delle derivate parziali dei<br \/>\ncoefficienti numerici (vedi testo di riferimento per i dettagli) rispetto a<br \/>\ncui \u00e8 possibile risolvere il sistema [4], calcolare le derivate<br \/>\nparziali e, quindi gli incrementi <img decoding=\"async\" src=\"..\/..\/esperti\/mat\/bairstow\/Delta.gif\" valign=\"middle\" alt=\"\"\/><i>u<\/i>, <img decoding=\"async\" src=\"..\/..\/esperti\/mat\/bairstow\/Delta.gif\" valign=\"middle\" alt=\"\"\/><i>v<\/i>.  Si<br \/>\nosservi che il sistema [4] dipende dalle stime correnti dei valori <i>u<\/i>,<br \/>\n<i>v<\/i>. <\/font><\/p>\n<p align=\"justify\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0L&#8217;algoritmo procede<br \/>\nquindi iterativamente nel modo seguente: <\/font><\/p>\n<ol><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><\/p>\n<li>\n<p align=\"justify\">Si scelgono <i>u<\/i>, <i>v<\/i> come valori iniziali.<\/p>\n<\/li>\n<li>\n<p align=\"justify\">Si risolve il sistema [4] e si calcolano i valori<br \/>\ncorrispondenti di <img decoding=\"async\" src=\"..\/..\/esperti\/mat\/bairstow\/Delta.gif\" valign=\"middle\" alt=\"\"\/><i>u<\/i>, <img decoding=\"async\" src=\"..\/..\/esperti\/mat\/bairstow\/Delta.gif\" alt=\"\"\/><i>v<\/i> utilizzando il valore corrente di <i>u<\/i>,<br \/>\n<i>v<\/i>. Se <img decoding=\"async\" src=\"..\/..\/esperti\/mat\/bairstow\/Delta.gif\" valign=\"middle\" alt=\"\"\/><i>u<\/i>, <img decoding=\"async\" src=\"..\/..\/esperti\/mat\/bairstow\/Delta.gif\" alt=\"\"\/><i>v<\/i> sono prossimi allo zero, l&#8217;algoritmo termina. La<br \/>\nprecisione delle radici trovate \u00e8 strettamente correlata alla<br \/>\ncondizione di arresto dell&#8217;algoritmo.<\/p>\n<\/li>\n<li>\n<p align=\"justify\">Si impostano<br \/>\n<i>u<\/i>\u00a0=\u00a0<i>u<\/i>\u00a0+\u00a0<img decoding=\"async\" src=\"..\/..\/esperti\/mat\/bairstow\/Delta.gif\" valign=\"middle\" alt=\"\"\/><i>u<\/i> e <i>v<\/i>\u00a0=\u00a0<i>v<\/i>\u00a0+\u00a0<img decoding=\"async\" src=\"..\/..\/esperti\/mat\/bairstow\/Delta.gif\" valign=\"middle\" alt=\"\"\/><i>v<\/i> e si re-itera dal passo 1.<\/p>\n<\/li>\n<p><\/font><\/ol>\n<p align=\"justify\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Al termine delle iterazioni, il sistema [3] \u00e8<br \/>\nsoddisfatto e sono determinati i valori dei coefficienti <i>u<\/i>, <i>v<\/i><br \/>\nper cui il resto <i>r<\/i>(<i>x<\/i>) \u00e8 nullo. A questo punto le due<br \/>\nradici del polinomio<br \/>\n<i>q<\/i>(<i>x<\/i>)\u00a0=\u00a0<i>x<\/i><sup>2<\/sup>\u00a0+\u00a0<i>ux<\/i>\u00a0+\u00a0<i>v<\/i><br \/>\nsono in comune con il polinomio <i>f<\/i>(<i>x<\/i>). Reiterando il processo<br \/>\nper il polinomio <i>f&#8217;<\/i>(<i>x<\/i>) si trovano a due a due tutte le radici<br \/>\ndi <i>f<\/i>(<i>x<\/i>) cercate. <\/font><\/p>\n<p align=\"justify\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Il metodo di Bairstow,<br \/>\nessendo basato sull&#8217;algoritmo di Raphson-Newton, ne eredita le stesse<br \/>\ncaratteristiche di stabilit\u00e0 e robustezza. La convergenza del metodo<br \/>\nnon \u00e8 sempre garantita, per assicurarne il funzionamento, occorre<br \/>\nscegliere la coppia <i>u<\/i>, <i>v<\/i> in modo accurato. <\/font><\/p>\n<p align=\"justify\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Nel link di riferimento,<br \/>\n\u00e8 presentata la descrizione formale dell&#8217;algoritmo e vari esempi di<br \/>\napplicazione in Matlab dei principali algoritmi numerici di ricerca degli<br \/>\nzeri.<\/p>\n<p>      <\/font><\/p>\n","protected":false},"excerpt":{"rendered":"<p>[&#8230;]<\/p>\n","protected":false},"author":180,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[67],"tags":[],"class_list":["post-333","post","type-post","status-publish","format-standard","hentry","category-analisi-numerica"],"_links":{"self":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/posts\/333","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/users\/180"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/comments?post=333"}],"version-history":[{"count":0,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/posts\/333\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/media?parent=333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/categories?post=333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/tags?post=333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}