Algoritmi e dintorni: La radice quadrata Prof. Ettore Limoli. Formule iterative

Похожие документы
Equazioni e sistemi non lineari

Equazioni e sistemi non lineari

INFORMATICA. Strutture iterative

Laboratorio di Calcolo Numerico

Programmazione con il linguaggio LibreOffice Basic

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

VBA Principali Comandi

Claudio Estatico Equazioni non-lineari

Foglio Elettronico Lezione 1

PROGRAMMAZIONE: Le strutture di controllo

PROGRAMMAZIONE: La selezione

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Ammortamento di un debito

Caratteristiche generali del linguaggio Visual Basic

Introduzione agli Algoritmi

Elementi di Informatica e Programmazione

Rappresentazione degli algoritmi

1 Esercizi relativi al Capitolo 1

Esercitazione 4. F (x) = x + log x. Prima parte. La definizione che segue è una realizzazione del metodo ad un punto definito dalla funzione h.

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Esercizio 1. Esercizio 2

Fondamenti di Informatica

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

PROGRAMMAZIONE STRUTTURATA

Fondamenti di Informatica

Laboratorio di Calcolo Numerico

Informatica (A-K) 5. Algoritmi e pseudocodifica

Fondamenti di Informatica

28/02/2014 Copyright V. Moriggia

Problema. Equazioni non lineari. Metodo grafico. Teorema. Cercare la soluzione di

Programmazione a blocchi. Algobuild Prof. Sergio Roselli

Fogli Elettronici. Idoneità Informatica Prof. Mauro Gaspari

Rappresentazione degli algoritmi

Metodi iterativi per equazioni nonlineari.

Evoluzione del FORTRAN 14/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN

Parte 1: tipi primitivi e istruzioni C

Equazioni, funzioni e algoritmi: il metodo delle secanti

Il Metodo di Newton, o delle Tangenti Federico Lastaria, Analisi e Geometria 1. Politecnico di Milano Corso di Analisi e Geometria 1

Esame di Calcolo Numerico per Informatica A.A. 2010/11 Proff. S. De Marchi e M. R. Russo 19 settembre 2011

Esame di Calcolo Numerico per Informatica Prof. S. De Marchi Padova, 11 dicembre x k 1 x k 2

Qualsiasi programma in C++ segue lo schema:

Equazioni differenziali del 2 ordine Prof. Ettore Limoli. Sommario. Equazione differenziale omogenea a coefficienti costanti

1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso

Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili, Bisezione

1 Esercizi di Matlab. L operatore : permette di estrarre sottomatrici da una matrice assegnata. Vediamo alcuni esempi.

Derivazione numerica. Introduzione al calcolo numerico. Derivazione numerica (II) Derivazione numerica (III)

Esame di Calcolo Numerico per Informatica A.A. 2010/11: testo soluzioni Proff. S. De Marchi e M. R. Russo 12 luglio 2011

Programmare con MATLAB c Parte 5 Cicli: for e while

= < < < < < Matematica 1

Introduzione alla programmazione in C(++)

Capitolo 1. Esercizi a.a Esercizi. Esercizio 1.1 Dimostrare che il metodo iterativo

MATLAB c. Lucia Gastaldi Dipartimento di Matematica Lezione 4 (15 ottobre 2003)

Linguaggio C++ 5. Strutture cicliche

Daniela Lera A.A

Транскрипт:

Algoritmi e dintorni: La radice quadrata Prof. Ettore Limoli Formule iterative L algoritmo che, comunemente, viene presentato a scuola per l estrazione della radice quadrata è alquanto laborioso e di scarsa utilità didattica. Chiunque si rende conto che basta pigiare un tasto per ottenere quel risultato in modo pressoché istantaneo. Questo, a mio modesto avviso, può creare disaffezione verso lo studio della matematica. Si chiede allo studente di trasformarsi in una macchina capace di eseguire un operazione insegnando il come e non il perché. Qual è l utilità didattica? Creare un fenomeno da baraccone? Udite udite! Un uomo, col solo ausilio di carta e penna, riesce ad eseguire le quattro operazioni fondamentali e INCREDIBILE pure l estrazione di una radice quadrata. Si, lo so, la cosa fa sorridere ma, se ci pensate bene, è proprio così: esercitare le abilità manuali di calcolo è un esercizio inutile e dannoso! Si potrebbe presentare una formula iterativa che, assegnato un qualsiasi valore di a, ci conduca rapidamente a una stima della a. Diventerebbe un pretesto per spiegare come funziona un formula iterativa. La formula che vi propongo è quella iterativa di Newton. Ci proponiamo di determinare x = a attraverso un processo iterativo che ci consente di determinare i membri di una successione {x n } convergente a x, ossia, tale che lim n x n = x. x 0 = 1 x { 1 = (x 0 + a x 0 ) 2 x n+1 = (x n + a x n ) 2 Per renderci conto di come funziona la cosa, seguiamo il processo iterativo servendoci del foglio elettronico di calcolo. 1

Le formule inserite sono: Alla cella [B4] è stato assegnato il nome: a. Come si può osservare, già al 7 passo (step) iterativo abbiamo la soluzione esatta. Il processo può essere seguito con facilità anche da una semplice calcolatrice scientifica. Consideriamo una calcolatrice con il display a due righe. Nella prima riga si vede la formula inserita (riga di input). Premendo il tasto [ = ] il risultato è visualizzato nella seconda riga (riga di output). Il tasto [ Ans ] restituisce il risultato della precedente operazione. Seguiamo il processo passo passo con una calcolatrice di questo tipo. Input line 1 [=] Output line 1 Input line (Ans + 100 Ans) 2 [=] Output line 50,5 Ad ogni successiva pressione del tasto [=] la formula viene ricalcolata col valore aggiornato di Ans. Si ottiene così la sequenza di output: 26,24009901; 15,02553012 Dal 7 passo l output si stabilizzerà sul valore 10. Controllo della convergenza Per controllare quando il processo iterativo ha termine abbiamo adottato sostanzialmente due metodi: 1. Procedendo nell iterazione il risultato si è stabilizzato su un determinato risultato (nel nostro esempio 10); 2. Procedendo nell iterazione abbiamo verificato il valore del quadrato di x. 2

Il primo metodo ha un valore più generale e può essere adottato su diversi tipi di formule iterative. Il secondo metodo è specifico dell algoritmo in studio (calcolo della radice quadrata). Esiste un metodo più generale che può essere applicato ad ogni processo iterativo convergente. Si prefissa un errore Er per predeterminare il numero di cifre decimali esatte che si vogliono ottenere. Ad esempio: Er = 10-5 per ottenere 4 cifre decimali esatte. Si arresta l iterazione quando x n x n 1 < Er. Si voglia calcolare, ad esempio, 245,89 con almeno 2 cifre decimali esatte. Le formule introdotte sono: I nomi dati alle celle sono: 3

Nell ultima colonna è riportato un test di verifica. Se x n x n 1 < Er allora si scrive il valore della radice quadrata altrimenti si prosegue visualizzando due asterischi( ** ). Col foglio elettronico di calcolo si usa la funzione SE avente la seguente sintassi: SE(test; azione se vero; azione se falso). Il calcolo può essere automatizzato servendosi di un qualsiasi linguaggio di programmazione. Ad esempio, in VBA all interno di Excel, si può scrivere una function del tipo: Option Explicit Public Function RadiceQuadrata(a As Double) As Double Dim x As Double Dim x0 As Double Const Er As Double = 0.000000001 obbliga ad usare le Dim dichiarazione della variabile dichiarazione della variabile dichiarazione della costante If a = 0 then RadiceQuadrata = 0 la radice di 0 vale 0 ElseIf a > 0 then calcola la radice di a se a > 0 x = 1 inizializza la variabile Do inizio ciclo iterativo x0 = x memorizza l attuale valore di x x = (x + a / x) / 2 ricalcola x Loop Until Abs(x - x0) < Er fine ciclo iterativo RadiceQuadrata = x assegna il valore x alla funzione Else ossia se a < 0 e non esiste la radice End if End Function RadiceQuadrata = 1/0 forza una condizione di errore L iterazione è realizzata dall istruzione Do Loop Until che ha la seguente sintassi: Do azione Loop Until condizione L azione viene svolta sin quando la condizione si mantiene falsa. Se condizione risulta vera si esce dal ciclo. Corrisponde al ciclo REPEAT UNTIL del Pascal. L errore è stato fissato al valore: Er = 10-9. La function dichiarata Public può essere usata all interno del foglio di calcolo come una qualsiasi funzione predefinita. Ad esempio, calcoliamo le radici quadrate degli interi da 1 a 30. 4

Le formule sono: Come si può osservare, la funzione definita dall utente, all interno di Excel, è usata come una qualsiasi funzione predefinita. Ovviamente questa funzione esiste già in Excel e non occorre definirla. Il nostro è solo un esempio che ci consente di capire meglio come funziona l algoritmo. Un po di teoria Vediamo ora come nasce la formula iterativa di Newton, ossia qual è il fondamento teorico che ci ha consentito di determinarla. Si vogliono ricercare gli zeri di una funzione y = f(x), ossia le soluzioni dell equazione f(x) = 0. Nel nostro caso cerchiamo la radice positiva dell equazione x 2 a = 0, ossia lo zero positivo della funzione f(x) = x 2 a. Partiamo dal punto iniziale x 0 = 1 e determiniamo sulla parabola il punto A di ascissa x 0. Calcoliamo quindi la tangente alla parabola in A. Detta tangente intercetterà sull asse X il punto di ascissa x 1. Sia B il punto della parabola di ascissa x 1. La tangente in B intercetterà sull asse X un punto di ascissa x 2. Si genera in questo modo una successione {x n } rapidamente convergente a x (intersezione positiva della parabola con l asse X). Poiché la tangente ad una funzione f(x) in un suo punto di ascissa x n è data da: 5

y f(x n ) = f (x n ) (x x n ) Ponendo y = 0 otteniamo l intersezione con l asse X. L ascissa x dell intersezione è: Nel nostro caso, essendo: Si ha: x = x n f(x n) f (x n ). f(x) = x 2 a ; f (x) = 2 x ; x = x n x n 2 a = x n 2 + a = (x 2 x n 2 x n + a ) 2. n x n L ultima espressione è quella della formula iterativa che abbiamo adottato. Questo metodo può, con una qualsiasi funzione, avere problemi di convergenza per cui è opportuna una scelta oculata del valore d innesco x 0. Nel nostro caso non ci sono problemi e può essere usato il valore x 0 = 1 per qualsiasi valore di a. Conclusione Abbiamo presentato un metodo di estrazione della radice quadrata che può essere usato, pure con carta e penna, servendosi soltanto delle operazioni aritmetiche di addizione e divisione. Questo metodo è molto più veloce ed efficiente del procedimento classico ed è ricco di spunti didattici. Prof. Ettore Limoli 6