5. Equazioni algebriche non lineari

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

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

Metodi di Iterazione Funzionale

Claudio Estatico Equazioni non-lineari

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

Calcolo Numerico con elementi di programmazione

Capitolo 3: Ottimizzazione non vincolata parte III. E. Amaldi DEI, Politecnico di Milano

Metodi per il calcolo degli zeri di funzioni non lineari

a) Determinare il dominio, i limiti agli estremi del dominio e gli eventuali asintoti di f. Determinare inoltre gli zeri di f e studiarne il segno.

I teoremi della funzione inversa e della funzione implicita

Calcolo Numerico per Ingegneria. Corso estivo di Bressanone. Prof. L. Bergamaschi SOLUZIONE DELLA PROVA SCRITTA del

Le derivate parziali

1) Applicando la definizione di derivata, calcolare la derivata in x = 0 delle funzioni: c) x + 1 d)x sin x.

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

Laboratorio di Calcolo Numerico

Appunti sul corso di Complementi di Matematica mod. Analisi prof. B.Bacchelli - a.a. 2010/2011.

Esercizio 1. Esercizio 2

Funzioni derivabili (V. Casarino)

Esercizi svolti. a 2 x + 3 se x 0; determinare a in modo che f risulti continua nel suo dominio.

RENDITE. Ricerca del tasso di una rendita

Corso di Analisi Numerica

8 Metodi iterativi per la risoluzione di sistemi lineari

Raccolta di esercizi di Calcolo Numerico Prof. Michela Redivo Zaglia

IL TEOREMA DEGLI ZERI Una dimostrazione di Ezio Fornero

1 Esercizi relativi al Capitolo 1

Facoltá di Scienze MM.FF.NN. Corso di Studi in Informatica- A.A

Risoluzione dei problemi

Alcune nozioni di calcolo differenziale

Corso di Calcolo Numerico

SUCCESSIONI E SERIE NUMERICHE E DI FUNZIONI

Calcolo Numerico Laurea di base in Ingegneria Elettronica, Ingegneria delle Comunicazioni

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

Massimi e minimi vincolati

Corso di Calcolo Numerico

Calcolo differenziale 2: Massimi e minimi. Studio di una funzione. (M.S.Bernabei & H. Thaler)

Argomento 7. Studio di funzione

Universita degli Studi di Ancona - Facolta di Ingegneria Laurea in Ing. Elettronica (VO) Ing. Informatica e Automatica - Ing. delle Telecomunicazioni

Ottimizzazione numerica

Calcolo differenziale 2: Massimi e minimi. Studio di una funzione. (M.S.Bernabei & H. Thaler)

Calcolo differenziale 2: Massimi e minimi. Studio di una funzione. (M.S.Bernabei & H. Thaler)

RISOLUZIONE APPROSSIMATA DI UN EQUAZIONE

a) Il denominatore dev essere diverso da zero. Studiamo il trinomio x 2 5x + 6. Si ha: x 1,2 = 5 ± se x ], 2[ ]3, + [;

ISTITUTO SUPERIORE XXV APRILE LICEO CLASSICO ANDREA DA PONTEDERA classi 5A-5B PROGRAMMA DI MATEMATICA

Raccolta di Esercizi d esame ( di Calcolo Numerico) Prof. Laura Pezza. Equazioni non lineari

Alcuni esercizi in preparazione all appello scritto di Calcolo Numerico

ax 1 + bx 2 + c = 0, r : 2x 1 3x = 0.

ANALISI 1 - Teoremi e dimostrazioni vari

Algoritmi in C++ (seconda parte)

Derivazione. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Soluzioni dello scritto di Analisi Matematica II - 10/07/09. C.L. in Matematica e Matematica per le Applicazioni

Metodi iterativi per equazioni nonlineari.

Esercizi 3. cos x ln(sin x), ln(e x 1 x ), ln( x 2 1), x sin x + x cos x + x, x 3 2x + 1. x 2 x + 2, x cos ex, x 2 e x.

Cancellazione numerica e zeri di funzione. Dott. Marco Caliari

Metodi computazionali per i Minimi Quadrati

A Analisi Matematica 1 (Corso di Laurea in Informatica e Bioinformatica) Simulazione compito d esame

NOTE SULLE FUNZIONI CONVESSE DI UNA VARIABILE REALE

Corso di Calcolo Numerico

Secondo parziale di Matematica per l Economia (esempio)

Risoluzione di sistemi lineari sparsi e di grandi dimensioni

TEMI D ESAME DI ANALISI MATEMATICA I

Lezione 6 Richiami di Geometria Analitica

Cenni sui metodi iterativi per sistemi lineari. Analisi Numerica Prof. M. Lucia Sampoli a.a. 2014/2015

Matematica per le Applicazioni Economiche I (M-P)

LO STUDIO DI FUNZIONE ESERCIZI CON SOLUZIONI

Studi di funzione. D. Barbieri. Studiare comportamento asintotico e monotonia di. f(x) = 1 x x4 + 4x e x

La formula di Taylor per funzioni di più variabili

2. Calcolare l area della regione Ω contenuta nel primo quadrante, delimitata dalle seguenti curve. : y = x 2 + x γ 2 : y = x 2 γ 3 : y = 1 x 2.

DERIVATA DI UNA FUNZIONE REALE. In quanto segue denoteremo con I un intervallo di IR e con f una funzione di I in IR.

Calcolo del fattore di convergenza

1 Ampliamento del piano e coordinate omogenee

SISTEMI LINEARI: APPROFONDIMENTI ED ESEMPI

Esistenza ed unicità per equazioni differenziali

Equazioni, funzioni e algoritmi: il metodo delle secanti

INTERPOLAZIONE. Introduzione

Funzioni implicite - Esercizi svolti

Soluzione di Adriana Lanza

variabili. se i limiti esistono e si chiamano rispettivamente derivata parziale rispetto ad x e rispetto ad y.

Corso di Matematica per la Chimica

Analisi Matematica I per Ingegneria Gestionale, a.a Scritto del secondo appello, 1 febbraio 2017 Testi 1

Corso di Analisi Numerica

Liceo Classico Statale Vittorio Emanuele II Matematica in analisi

Corso di Calcolo Numerico

Punti di massimo o di minimo per funzioni di n variabili reali

Derivata di una funzione

Funzioni elementari: funzioni potenza

x x Si dice che il limite, per x che tende a x 0, di f ( x ) è uguale a se e solo se:

1 Schemi alle differenze finite per funzioni di una variabile

1 Successioni di funzioni

Prova di ammissione al Dottorato di Ricerca in Matematica XXVIII ciclo. Universitá del Salento, 9 Aprile 2013

1. Funzioni implicite

Piano cartesiano e Retta

Relazione di laboratorio di Analisi Numerica: metodi di ricerca zeri

1.4 Geometria analitica

1) D0MINIO. x x 4x + 3 Determinare il dominio della funzione f (x) = x Deve essere

Esercitazioni di Matematica

PROGRAMMA. Capitolo 1 : Concetti di base: numeri reali, funzioni, funzioni reali di variabile reale.

2. I numeri reali e le funzioni di variabile reale

DIARIO DELLE LEZIONI DI ANALISI MATEMATICA II Corso di laurea in Ingegneria Gestionale Canale PZ Secondo codocente: Dott. Salvatore Fragapane

Esercizi proposti. x b) f(x) = 2. Determinare i punti di non derivabilità delle funzioni

Rette e piani in R 3

Transcript:

5. Equazioni algebriche non lineari La soluzione dei sistemi di equazioni algebriche non lineari riveste un ruolo fondamentale nella modellistica numerica. Ad esempio, i sistemi a parametri concentrati non lineari in condizioni stazionarie sono governati da equazioni algebriche non lineari. Più in generale, la soluzione numerica di equazioni differenziali ed integrali non lineari si riduce alla soluzione di sistemi di equazioni algebriche non lineari. Il problema che considereremo in questo capitolo è il seguente. Data una funzione f = f x ( ) definita in D! " n e avente codominio C! " n, f ( x)! f 1 ( x 1, x 2,..., x n ), f 2 ( x 1, x 2,..., x n ),..., f n ( x 1, x 2,..., x n ) T "C # $ n, (5.1) bisogna cercare un vettore tale che u = u 1,u 2,...,u n T!D " # n (5.2) f ( u) = 0! " $ # $ % $ f 1 f 2 f n ( u 1,u 2,...,u n ) = 0, ( ) = 0, u 1,u 2,...,u n... ( ) = 0. u 1,u 2,...,u n (5.3) Il problema (5.3) è un sistema di n equazioni algebriche non lineari in n incognite 1. Le soluzioni u sono dette anche zeri della funzione f. In queste Lezioni non affronteremo 1 In queste Lezioni non considereremo il problema più generale in cui il numero di equazioni (vincoli) è diverso dal numero di incognite (gradi di libertà). G. Miano, Appunti del Corso di Modelli Numerici per i Campi, 2009

2 il problema più generale della soluzione di equazioni algebriche non lineari con soluzioni complesse. Un equazione del tipo (5.3) può avere una sola soluzione, più di una soluzione o addirittura nessuna soluzione. Si intuisce che la soluzione dell equazione (5.3) esiste ed è unica se: a) il codominio di f contiene lo zero; b) la funzione f definisce un omeomorfismo 2 del dominio D nel codominio C. Lasciamo al lettore la verifica di questo risultato. In questa Nota illustreremo alcune tecniche per calcolare numericamente le soluzioni di un sistema di equazioni algebriche non lineari. In generale, i metodi di soluzione di un equazione sono classificati in metodi diretti e metodi iterativi. I metodi diretti, in assenza degli errori di arrotondamento 3, danno la soluzione esatta in un numero finito di operazioni. Nei metodi iterativi, invece, la soluzione è ottenuta come limite di una successione, in generale, infinita di problemi più semplici risolvibili attraverso metodi diretti. Solo in qualche caso è possibile risolvere un sistema d equazioni algebriche non lineari con un metodo diretto 4. I metodi numerici per la soluzione del problema (5.3) sono, in generale, di tipo iterativo. Prima affronteremo il problema della soluzione di un equazione algebrica non lineare in una sola incognita (equazioni scalari), poi estenderemo i risultati ad un sistema di n equazioni in n incognite (equazioni vettoriali). 5.1 Equazioni scalari Consideriamo l equazione scalare f ( u) = 0, (5.4) f ( x) è una funzione ad un solo valore definita in D! ", continua e dove f = differenziabile. Se il codominio C di f contiene lo zero, l equazione (5.4) ha almeno una soluzione; inoltre, se f è monotona in D allora la soluzione è unica. In questo caso la funzione f definisce un omeomorfismo del dominio D nel codominio C. La funzione f è monotona se f! 5 non cambia segno in D, ovvero se f! ( x) " 0 in D. Ciò 2 Una funzione f : D! R n " C! R n definisce un omeomorfismo di D in C se la corrispondenza definita da f tra D e C è biunivoca, f e l inversa f!1 sono continue in D e C, rispettivamente. 3 Gli errori di arrotondamento sono quelli introdotti dal fatto che le macchine per il calcolo numerico possono rapprersentare solo numeri reali con un numero finito di cifre. 4 La soluzione analitica esiste per le equazioni algebriche scalari di secondo, terzo e quarto grado. 5 Con il simbolo f! indichiamo la derivata prima di f rispetto alla variabile x.

3 equivale a richiedere che f! ( x) "1 # $ < % in D. Questo risultato è un caso particolare del teorema di Hadamard, [5.1]. Lasciamo la lettore la verifica di questa proprietà. Se f non è monotona la (5.4) può avere più di una soluzione. Esempio 5.1 Si consideri un circuito composto da un generatore ideale di tensione E, un resistore lineare di resistenza R e un resistore non lineare N controllato in tensione 6, Figura 5.1. L equazione caratteristica di N può essere così rappresentata i = g( v), (5.5) dove i e v sono rispettivamente l intensità di corrente e la tensione del bipolo (con i versi di riferimento concordi con la convenzione dell utilizzatore). Il resistore N potrebbe essere, ad esempio, un diodo a giunzione pn o un diodo tunnel, Figura 5.2. Per il diodo a giunzione pn una buona approssimazione della funzione g è data da g( v) = I S e v/v T (! 1 ) (5.6) per tensioni molto più grandi della tensione di breakdown; I S è l intensità di corrente di saturazione inversa e V T è la tensione termica. Valori tipici di I S e V T sono, rispettivamente, 10!15 A e 26 mv. Per il diodo tunnel una buona approssimazione della funzione g è data da g( v) = a 1 v + a 2 v 2 + a 3 v 3 (5.7) per v! 0, dove a 1 = 6.0! "1, a 2 =!4.5 ("V)!1 e a 3 =1.0 (!V 2 ) "1 Figura 5.1 Un circuito non lineare 6 Un resistore si dice che è controllato in tensione (coorente) se l intensità di corrente (tensione) è univocamente determinata per ogni valore di tensione (intensità di corrente).

4 Figura 5.2 Curve caratteristiche del diodo a giunzione pn (a) e diodo tunnel (b). L equazione caratteristica del bipolo composto dalla serie generatore di tensione resistore è i = E! v R. (5.8) Combinando le equazioni (5.5) e (5.8) si ottiene l equazione per la tensione del resistore non lineare g( v) + v R! E R = 0. (5.9) Ecco un esempio d equazione algebrica non lineare scalare. La soluzione V dipende dai parametri R ed E, V = V R, E ( ). Figura 5.3 La retta di carico definita dalla (5.8) interseca sempre in un solo punto la curva caratteristica del diodo a giunzione pn (a); la retta di carica può intersecare in tre punti distinti la curva caratteristica del diodo tunnel (b).

5 Se il resistore non lineare è un diodo a giunzione pn l equazione (5.9) ha una ed una sola soluzione per qualsiasi valore dei parametri; invece, nel caso di un diodo tunnel l equazione (5.9) può avere una sola soluzione o tre soluzioni distinte, a seconda dei valori dei parametri. Ciò può essere facilmente verificato attraverso il metodo grafico illustrato in Figura 5.3. Assumiamo, per ora, che l equazione (5.4) abbia una e una sola soluzione nell intervallo [ a,b] di!. A partire da un valore iniziale x 0 opportunamente scelto, un metodo iterativo per risolvere la (5.4) genera, secondo una legge opportuna x k = G( x k!1 ), (5.10) una successione di valori x 1, x 2,..., x k,... (5.11) che, in generale, converge alla soluzione u per k! ". Non essendo possibile iterare all infinito la (5.10) attraverso una macchina di calcolo, occorre definire un criterio d arresto per stabilire a quale iterazione N si ha una stima accettabile della soluzione, u! x N. (5.12) Il problema del criterio d arresto sarà trattato ampiamente più avanti per ognuno dei metodi iterativi presentati. Esistono diversi metodi iterativi per risolvere un equazione algebrica non lineare. In queste Lezioni illustreremo le caratteristiche principali di tre metodi: il metodo di bisezione; il metodo di Newton-Raphson; il metodo di Picard. Il metodo di Newton-Raphson e il metodo di Picard si estendono senza alcuna difficoltà alle equazioni vettoriali, mentre l estensione del metodo della bisezione presenta non poche difficoltà. 5.1.1 Metodo della bisezione Se la funzione f ( x) verifica la condizione f ( a) f ( b) < 0, (5.13) [ a,b]. Si assuma che essa sia l equazione (5.4) ha almeno una soluzione nell intervallo unica. L idea alla base del metodo della bisezione è molto semplice: si dimezza l intervallo I 0 = a,b [ ] e si cerca il semi-intervallo I 1 ai cui estremi i valori di f ( x) hanno

6 segni opposti. Una volta trovato l intervallo I 1, lo si dimezza e si sceglie il semi-intervallo I 2 ai cui estremi i valori di f ( x) hanno segni opposti, e cosi via. Questo il metodo della bisezione. Figura 5.4 Descrizione grafica del metodo di bisezione. Questa procedura è descritta graficamente in Figura 5.4, dove con x k abbiamo indicato il punto medio dell intervallo I k. La soluzione esatta è rappresentata dall intersezione della curva della funzione f con l asse delle ascisse. Si evince immediatamente che la successione converge ineluttabilmente verso la soluzione u per k! ", x 0, x 1, x 2,..., x k,... (5.14) lim x k = u, (5.15) k!" in quanto l intervallo I k per ogni k contiene la soluzione u e la sua lunghezza ad ogni passo viene dimezzata. Indichiamo con I k la lunghezza dell intervallo I k (con abuso di notazione) e introduciamo l errore e k così definito Essendo e k! x k " u. (5.16)

7 e k! 1 2 I k, (5.17) l iterazione può essere arrestata al primo intero N tale che dove! è un parametro assegnato. Per l errore al passo N si ha I N! ", (5.18) e N! " 2. (5.19) Questo può essere un criterio di arresto per l iterazione di bisezione. Nel Programma 5.1 proponiamo una implementazione al calcolatore del metodo della bisezione utilizzando il linguaggio di programmazione MATLAB, [5.2]. Le variabili di ingresso sono: f è la stringa che rappresenta, in forma simbolica, la funzione f ( x), a e b sono gli estremi dell intervallo I 0, toll è l errore! e nmax è il numero massimo di iterazioni disposti ad effettuare per determinare la soluzione. Le variabili di uscita sono: zero contiene la soluzione calcolata e niter il numero di iterazioni effettuate per determinarla secondo il criterio di arresto (5.19). Programma 5.1: Bisezione function [zero,niter]=bisezione(f,a,b,toll,nmax) %Metodo della bisezione x=[a,(a+b)*0.5,b];fx=eval(f);niter=0;i=(b-a)*0.5; while I>=toll&niter<=nmax niter=niter+1; if sign(fx(1))*sign(fx(2))<0 %Il comando sign(fx) serve per trovare il segno di fx; x(3)=x(2); x(2)=x(1) +(x(3)-x(1))*0.5; fx=eval(f); I=(x(3)-x(1))*0.5; elseif sign(fx(2))*sign(fx(3))<0 x(1)=x(2); x(2)=x(1) +(x(3)-x(1))*0.5; fx=eval(f); I=(x(3)-x(1))*0.5; else, x(2)=x(find(fx==0));i=0;end %Il comando find(fx==0) serve per trovare gli indici del vettore fx corrispondenti a %elementi nulli; end; zero=x(2); return

8 Esercizio 5.1 Risolvere con il metodo della bisezione il circuito di Figura 5.1 assumendo che il resistore non lineare sia un diodo a giunzione pn, R = 1! e E = 1V. Ripetere il calcolo variando i parametri del circuito. Con il metodo della bisezione è possibile determinare tutte le soluzioni reali di un equazione algebrica scalare scegliendo in modo opportuno l intervallo iniziale I 0. Esercizio 5.2 Risolvere con il metodo della bisezione il circuito di Figura 5.1 assumendo che il resistore non lineare sia un diodo tunnel e considerando due insiemi di valori per i parametri: E = 12V, R = 6! ; E = 15V, R = 6!. Nel primo caso il circuito ha una sola soluzione, mentre nell altro ne ha tre. Ciò può essere facilmente verificato attraverso il metodo grafico. Problema 5.1 Il circuito di Figura 5.1 può essere considerato come un sistema ingresso-uscita, assumendo, ad esempio, come ingresso la tensione del generatore e come uscita l intensità di corrente. Determinare la caratteristica ingresso-uscita al variare della resistenza R sia nel caso in cui N è un diodo a giunzione pn, sia nel caso in cui è un diodo tunnel. Problema 5.2 Studiare con il metodo della bisezione il circuito raddrizzatore rappresentato in Figura 5.5 al variare dei parametri E m,!, R. In particolare, determinare l andamento del valore medio dell intensità di corrente e delle ampiezze delle prime tre armoniche al variare dei parametri E m,!, R. Figura 5.5 Circuito raddrizzatore

9 5.1.2 Metodo di Newton Raphson Indichiamo con G la curva che rappresenta funzione f ( x) sul piano ( x, y), Figura 5.6. La soluzione u dell equazione (5.4) è rappresentata dal punto P di intersezione della curva G con l asse delle ascisse. Se si dispone di una stima approssimata x k della soluzione, un modo semplice ed efficiente di ottenere una stima successiva x k +1 è quello di considerare il punto di intersezione della retta R k, tangente alla curva G nel punto ( ( )), con l asse delle ascisse. L equazione di R k è P k! x k, f x k y( x) = f ( x k ) + f! ( x k ) x " x k ( ). (5.20) (Con il simbolo f! indichiamo la derivata prima di f rispetto ad x.) Si sceglie come stima successiva x k +1 la soluzione dell equazione La soluzione della (5.21) è y( x k +1 ) = 0. (5.21) ( ) ( ) x k +1 = x k! f x k f " x k (5.22) ( ) " 0. E come se avessimo approssimato la funzione f ( x) con la sua purché f! x k espansione in serie di Taylor nell intorno di x k ed arrestato lo sviluppo al secondo termine. La legge (5.22) consente di calcolare una successione di valori x 1, x 2,... a partire da una stima iniziale x 0. Questo è il metodo di Newton-Raphson. Si osservi che la soluzione u dell equazione (5.4) è un punto fisso della funzione di iterazione ( ) = x k " f ( x k ) f #( ), (5.23)! x k perché! u ( ) = u. La Figura 5.6 mette bene in evidenza, seppure solo qualitativamente, il meccanismo di convergenza alla base del metodo di Newton-Raphson. In seguito mostreremo che l iterazione generata dalla (5.22) converge sempre alla soluzione u per k! " se x 0 è sufficientemente vicino alla soluzione. Il metodo di Newton-Raphson, confrontato con gli altri due metodi, converge più rapidamente alla soluzione. x k

10 Figura 5.6 Interpretazione grafica del metodo di Newton-Raphson. Osservazione Il metodo di Newton-Raphson converge in un solo passo alla soluzione esatta se la funzione f è lineare affine in x, cioè f ( x) = ax + b. (5.24) Al primo passo si ha x 1 =!b / a che è proprio la soluzione dell equazione. In generale, invece, è necessario un numero infinito di iterazioni. Esistono due criteri di arresto semplici ed efficienti per il metodo di Newton-Raphson. Essi si basano sul controllo della variazione della soluzione approssimata tra due iterate successive!x k " x k # x k #1, (5.25) e sul controllo del residuo dell equazione (5.4) così definito r k! f ( x k ). (5.26) Per x k = u si avrebbe sia!x k +1 = 0 che r k = 0. Se si usa il controllo della variazione della soluzione il processo si arresta quando!x N " # (5.27) dove! è un valore assegnato. Invece, se si usa il controllo del residuo il processo si arresta quando

11 r N! ". (5.28) Figura 5.7 In prossimità della soluzione u dalla (5.22) abbiamo che r k =! f " ( u)#x k +1. (5.29) E evidente, allora, che i risultati ottenuti con i due criteri di arresto possono essere abbastanza diversi. Nei casi in cui f! u ( ) >> 1 (Figura 5.7a) un valore piccolo di!x N ( u) << 1 non esclude che r N possa essere molto grande, mentre nei casi in cui f! (Figura 5.7b) un valore molto basso del residuo non esclude che!x N possa essere molto elevato. Invece, nei casi in cui f!( u) " 1,!x N e r N sono dello stesso ordine di grandezza. A differenza del criterio di arresto che abbiamo introdotto per il metodo della bisezione, i criteri di arresto che abbiamo appena descritto non consentono, almeno in modo diretto, di avere una stima dell errore e N. Su questa questione ritorneremo in seguito (vedi 5.2) quando studieremo le proprietà di convergenza. Nel Programma 5.2 è riportata una implementazione in ambiente MATLAB del metodo di Newton-Raphson [5.2], utilizzando come criterio di arresto il controllo della variazione della soluzione (5.27). Le variabili di ingresso sono: f è la stringa che rappresenta, in forma simbolica, la funzione f x ( ), df è la stringa che rappresenta la derivata prima sempre in forma simbolica, x0 è il dato iniziale, toll è l errore! e nmax è il numero massimo di iterazioni disposti a fare. Le variabili di uscita sono: zero contiene la soluzione calcolata e niter il numero di iterazioni effettuate per determinarla secondo il criterio di arresto (5.27).

12 Programma 5.2: Newton-Raphson function [zero,niter]=newton1d(f,df,x0,toll,nmax) % Metodo di Newton-Raphson scalre x=x0; fx=eval(f);dfx=eval(df); niter=0; diff=toll+1; while diff>=toll&niter<=nmax niter=niter+1;diff=-fx/dfx; x=x+diff; diff=abs(diff); fx=eval(f); dfx=eval(df); end; zero=x; return Esercizio 5.3 Risolvere il problema descritto nell Esercizio 5.1 con il metodo di Newton-Raphson. Ripetere il calcolo variando x 0. Esercizio 5.4 Risolvere con il metodo di Newton-Raphson l equazione arctan ( x) = 0. (5.30) Questa equazione nell intervallo [!" / 2, +" / 2] ha la soluzione x = 0. Verificare che l iterazione di Newton-Raphson non sempre converge alla soluzione. Con il metodo di Newton-Raphson è possibile determinare tutte le soluzioni di un equazione algebrica non lineare scegliendo opportunamente il valore iniziale x 0. Esercizio 5.5 Risolvere il problema descritto nell Esercizio 5.2 con il metodo di Newton-Raphson.

13 Figura 5.8 L iterazione di Newton-Raphson non converge se x 0 = x b. Come vedremo nella prossima sezione, il metodo di Newton-Raphson converge alla soluzione indipendentemente dal valore di x 0 se la concavità di f x ( ) non cambia. Invece, se cambia la concavità di f ( x) l iterazione di Newton-Raphson converge solo se x 0 è sufficientemente vicino alla soluzione. In Figura 5.8 sono illustrati due casi. In Figura 5.8a, l iterazione può dare origine ad una sequenza oscillante limitata che non converge o converge lentamente alla soluzione, mentre in Figura 5.8b l iterazione diverge se x 0 non è sufficientemente vicino alla soluzione. Questi tipi di problemi possono essere risolti con il metodo della continuazione o con opportune modifiche dello stesso metodo di Newton-Raphson. 5.1.2.1 Metodo di Newton-Raphson modificato con controllo del residuo L impantanamento dell iterazione di Newton-Raphson prodotto da oscillazioni, come, ad esempio, accade nel caso illustrato in Figura 5.8a) è dovuto al fatto che f! cambia segno. In queste situazioni il valore assoluto del residuo oscilla, quindi r k durante alcuni passi cresce e in altri decresce. Un modo semplice per ovviare a questo problema consiste nel bloccare il valore di f! nella (5.22) appena che r k inizia a crescere al valore che aveva prima dell inizio della crescita, Figura 5.9. La successione x 0, x 1, x 2, x 3, x 4,... generata in questo modo converge alla soluzione u. Questa variante del metodo di Newton-Raphson prende il nome di metodo di Newton-Raphson modificato. Esso converge più lentamente del metodo di Newton-Raphson. Una volta superato l impantanamento si può riattivare il metodo di Newton-Raphson se si vuole una velocità di convergenza maggiore.

14 Figura 5.9 Metodo di Newton-Raphson modificato: le rette M k con k = 3, 4,... hanno la stessa pendenza della retta R 2. Si noti che r x 3! Esercizio 5.6 ( ) > r ( x 2 ). Risolvere il problema descritto nell Esercizio 5.1 con il metodo di Newton-Raphson modificato. Confrontare la velocità di convergenza del Newton-Raphson modificato con la velocità di convergenza del metodo di Newton-Raphson riportando l andamento del residuo in funzione del numero di iterazioni. 5.1.2.2 Metodo della continuazione Si consideri l equazione f ( u;! ) = 0 (5.31) e si assuma che la soluzione u vari con continuità al variare del parametro!. Si assuma, inoltre, che per un dato valore di!, che indichiamo con! 0, sia nota la soluzione dell equazione (5.31) e indichiamola con u 0. Attraverso il metodo di Newton-Raphson possiamo determinare la funzione a partire dalla soluzione u 0 = u (! 0 ). u = u (!) (5.32)

15 Figura 5.10 Metodo della continuazione Si consideri la soluzione u 1 dell equazione (5.31) per! 1 =! 0 + "! 1. Se!" 1 è sufficientemente piccolo, la soluzione u 1 è sufficientemente vicina alla soluzione u 0 e, quindi, può essere determinata con il metodo di Newton-Raphson assumendo come dato iniziale proprio u 0, Figura 5.10. In questo caso, indipendentemente dalle proprietà della funzione f, l iterazione non solo converge alla soluzione, ma converge anche rapidamente. Una volta determinata u 1 possiamo determinare la soluzione u 2 dell equazione (5.31) per! 2 =! 1 + "! 2 applicando di nuovo il metodo di Newton- Raphson e assumendo, questa volta, come dato iniziale proprio u 1. Se!" 2 è sufficientemente piccolo, la soluzione u 2 è sufficientemente vicina a u 1 e, quindi, l iterazione converge rapidamente alla soluzione. Iterando questa procedura possiamo determinare le soluzioni dell equazione (5.31) per! appartenente a un dato intervallo. Questo è il metodo della continuazione. La soluzione u = u (!) è costruita per continuazione analitica a partire dalla soluzione u 0 = u (! 0 ). Si osservi che, nella procedura della continuazione possiamo utilizzare un qualsiasi metodo iterativo per la soluzione dell equazione (5.31) purché sia garantita la convergenza alla soluzione quando il dato iniziale è sufficientemente vicino ad essa. Problema 5.3 Risolvere i Problemi 5.1 e 5.2 con il metodo della continuazione e il metodo di Newton-Raphson.

16 5.1.4 Metodo di Picard Il metodo di Picard si basa sulla riformulazione della (5.4) in un equazione del tipo u =!( u), (5.33) quindi la soluzione dell equazione (5.4) è determinata cercando il punto fisso u della funzione di iterazione! x ( ). Una possibile funzione di iterazione è!( x) = x + f ( x). (5.34) E evidente che questa non è l unica possibile, la scelta è molto più ampia. Questo è un punto molto importante e su di esso torneremo in seguito. Il punto fisso della funzione di iterazione! x ( ) può essere determinato attraverso lo schema iterativo x k +1 =!( x k ), (5.35) che graficamente si interpreta come in Figura 5.11. Questo è il metodo di Picard (o metodo del punto fisso). Figura 5.11 Iterazione di punto fisso: l iterazione converge al punto per qualsiasi valore di x 0 (a) e per nessun valore di x 0 (b). Non tutte le funzioni di iterazione! x ( ) garantiscono la convergenza verso il punto fisso u. In Figura 5.11 sono riportati due casi: in Figura 5.11a l iterazione converge al punto fisso u indipendentemente dal valore di x 0, mentre nel caso rappresentato in

17 Figura 5.11b l iterazione diverge comunque si scelga il valore di x 0, anche quando x 0 è arbitrariamente vicino al punto fisso. Esercizio 5.7 Verificare che l iterazione converge al punto fisso se! < 1. x k =!x k "1 + b (5.36) u = b 1! " (5.37) Rispetto al metodo di Newton-Raphson il metodo di Picard è più semplice da implementare (in particolare, come poi vedremo, per le equazioni vettoriali), ma come abbiamo appena visto può non convergere alla soluzione anche quando il valore iniziale x 0 è arbitrariamente vicino alla soluzione. Inoltre, come in seguito vedremo, quando il metodo di Picard converge esso converge più lentamente del metodo di Newton- Raphson. Esercizio 5.8 Verificare che con questa scelta della funzione di iterazione ( ) = x " f ( x) f #( x) con f!( x) " 0, (5.38)! x il metodo di Picard dà il metodo di Newton-Raphson. Per il metodo di Picard si possono utilizzare gli stessi criteri di arresto introdotti per il metodo di Newton-Raphson. Il residuo dell iterazione è dato da r k =!( x k ) " x k. (5.39) Essendo!( x k ) = x k +1, nel metodo di Picard il residuo definito in base alla (5.39) è uguale all incremento r k =!x k. (5.40)

18 Nel Programma 5.3 è riportata una implementazione in ambiente MATLAB del metodo di Picard utilizzando come criterio di arresto il controllo della variazione della soluzione. Le variabili di ingresso sono: f è la stringa che rappresenta, in forma simbolica, la funzione di iterazione, x0 è il dato iniziale, toll è l errore! e nmax è il numero massimo di iterazioni accettate. Le variabili di uscita sono: zero contiene il punto fisso e niter il numero di iterazioni effettuate per determinarla secondo il criterio di arresto (5.27). Programma 5.3: Picard function [zero,niter]=picard1d(f,x0,toll,nmax) % Metodo di Picard x=x0; fx=eval(f); niter=0; diff=toll+1; while diff>=toll&niter<=nmax niter=niter+1;diff=fx; x=x+fx; diff=abs(diff); fx=eval(f); end; zero=x; return Esercizio 5.9 L equazione cos x! x = 0 (5.41) ha una sola soluzione. Determinarla con il metodo di Picard. Risolvere la stessa equazione con il metodo della bisezione e il metodo di Newton-Raphson, e studiare la velocità di convergenza dei tre metodi rappresentando l andamento dei residui al variare del numero di iterazioni. Quale è il metodo più veloce? Esercizio 5.10 Verificare che non è possibile risolvere il problema dell Esercizio 5.1 con il metodo di Picard perché l iterazione non converge per nessun valore del dato iniziale. Nella prossima sezione ci occuperemo del problema della convergenza e, in particolare, del problema della convergenza del metodo di Picard. Il metodo di Picard può essere riformulato in modo tale da evitare il problema incontrato nell Esercizio 5.10.

19 5.2 Proprietà di convergenza dei metodi iterativi scalari Si assuma che l equazione (5.4) abbia una sola soluzione u in [ a,b]. Sia x 0, x 1, x 2,..., x k,... (5.42) la successione generata risolvendo l equazione (5.4) attraverso uno dei tre metodi iterativi (bisezione, Picard, Newton-Raphson) che abbiamo descritto nel precedente paragrafo. Ora affronteremo le seguenti questioni (fondamentali per ogni metodo iterativo): i) la successione converge alla soluzione u? ii) con quale velocità l errore decresce? iii) che errore si commette arrestando l iterazione dopo un numero assegnato di passi? L errore assoluto e k al passo k è definito nella (5.16), l incremento!x k è definito nella (5.25) e il residuo r k è definito nella (5.26). Se lim e k = 0 (5.43) k!" l iterazione converge alla soluzione u. In queste condizioni si ha immediatamente che e lim r k = 0 (5.44) k!" lim #x k = 0. (5.45) k!" Se l iterazione converge alla soluzione al crescere di k l errore diminuisce. Si consideri a tal proposito il rapporto tra l errore in valore assoluto al passo k e l errore, sempre in valore assoluto, al passo k! 1, Se esiste un intero p e una costante positiva C tali che! k " e k e k #1. (5.46) ( p$1) lim # k = C e k $1 k!" (5.47) p prende il nome di ordine di convergenza del metodo iterativo e C prende il nome di costante asintotica di errore. Dalla (5.47) si ha che per N sufficientemente grande (errore asintotico)

20 e N p! C e N "1. (5.48) La (5.48) è la legge che governa l andamento asintotico dell errore. L errore di un metodo iterativo con ordine di convergenza p più elevato si riduce più velocemente dell errore di un metodo con p più basso. I criteri di arresto che abbiamo impiegato nel metodo di Picard e nel metodo di Newton-Raphson si basano sul controllo del valore assoluto dell incremento!x k o sul controllo del residuo r k. Pertanto, è importante cercare una relazione tra l errore e k e questi due parametri. Analizzeremo insieme le iterazioni generate con il metodo di Picard e il metodo di Newton-Raphson perché, come abbiamo già visto, l iterazione di Newton-Raphson può essere interpretata come un particolare metodo di Picard. L iterazione generata attraverso la bisezione sarà trattata separatamente perché, a differenza degli altri due metodi, con questo metodo è possibile avere una stima diretta dell errore. 5.2.1 Metodo della bisezione Nel metodo della bisezione attraverso la relazione (5.17) è possibile stimare il valore assoluto dell errore e k. Essendo, per costruzione, I k = 1 2 I k!1 (5.49) si ha! I k = 1 $ " # 2% & 1! I k '1 = 1 $ " # 2% & 2! I k '2 =... = 1 $ " # 2% & k I 0 (5.50) dove I 0 = ( b! a). Combinando le (5.17) e (5.50) otteniamo " e k! 1 % # $ 2& ' k +1 ( b ( a). (5.51) Essendo lim ( )k = 0, dalla (5.51) si ha che lim k!" 0.5 dalla bisezione converge alla soluzione u. e k k!" = 0 e, quindi, l iterazione generata Esercizio 5.11 Verificare che il numero di iterazioni N che garantisce e N positivo assegnato, è dato da! ", dove! è un numero

21 ) # N > + log 2 $ % * b! a " &, ' (! 1. -. (5.52) Se considerassimo la (5.17) con il segno di eguaglianza avremmo una sovrastima dell errore. Indichiamo con!e k questa sovrastima. Per essa abbiamo!e k = 1 2 I k. (5.53) Utilizzando la (5.49) dalla (5.53) otteniamo!e k!e k!1 = 1 2. (5.54) Di conseguenza l ordine di convergenza del metodo della bisezione non è inferiore all unità e la corrispondente costante asintotica di errore è uguale a 0.5. In conclusione, il metodo di bisezione è un metodo del primo ordine. 5.2.2 Metodo di Picard Analizziamo ora le proprietà della successione (5.42) generate dall iterazione di punto fisso x k =!( x k "1 ). (5.55) Per ipotesi esiste un solo valore u![ a,b] tale che u =!( u) (5.56) Prima di iniziare a studiare le proprietà di convergenza, enunceremo un teorema che utilizzeremo spesso, il teorema della media per le funzioni scalari. Se la funzione! =!( x) è differenziabile in [ a,b], allora per ogni x, y![ a,b] esiste un 0! t! 1 tale che! $ dove! = x + t ( y " x) 7. Posto!( x) "! y ( ) = #( )( x " y). (5.57) 7 Questo teorema è un caso particolare dell espansione in serie di Taylor: data una funzione f = f x continua e n volte derivabile nell intervallo ( ) [ a, b] esiste un numero reale 0! t! 1 tale che

22 L = sup x! a,b dalla (5.57) si ha che per ogni x, y![ a,b] [ ] #" x ( ) (5.58)!( x) "!( y) # L x " y. (5.59) Essendo, per ipotesi,! differenziabile in [ a,b], la costante L è limitata se l intervallo [ a,b] è limitato. In questo caso si dice che! è lipschitziana 8. Se L < 1 la funzione! si dice che è L-contrattiva in [ a,b]. Esercizio 5.12 Verificare che la funzione di iterazione nell Esercizio 5.9 è L-contrattiva nell intervallo!", +" ( ) (aperto sia a destra che a sinistra). Esercizio 5.13 Verificare che la funzione di iterazione nel problema affrontato nell Esercizio 5.10 non è L-contrattiva. 5.2.2.1 Convergenza Sottraendo membro a membro le (5.55) e (5.56) otteniamo Utilizzando la (5.58) dalla (5.60) abbiamo Allora è immediato verificare che f ( x) = f ( a) + f! ( a) x " a R n ( x) = 1 n! f ( n)! 8 Si dice che la funzione f = f x che f ( x)! f y ( ) + 1 2 f!! ( a) ( x " a) 2 +... + 1 e k =!( x k "1 ) "!( u). (5.60) e k! L e k "1. (5.61) ( f ( n"1) n"1 a )! ( )( x " a) 2 + R n ( x) dove! = a + t ( x " a) e ( )( x " a) n. L espressione di R n ( x) è la formula del resto di Lagrange. ( ) è lipschitziana nel dominio [ a,b] se esiste una costante K limitata tale ( ) " K x! y per ogni x, y![ a,b].

23 e k! L k e 0 (5.62) per k = 1,2,.... Se la funzione di iterazione è L-contrattiva in [ a,b] si ha L < 1 e dalla (5.62) segue che lim e k = 0. (5.63) k!" [ ] che In conclusione, se la funzione di iterazione è L-contrattiva nell intervallo a,b contiene il punto fisso u e x 0![ a,b], l iterazione di Picard converge al punto fisso u. La funzione di iterazione è L-contrattiva in a,b [ ]. inferiore a 1 in a,b 5.2.2.2 Velocità di convergenza [ ] se il modulo della sua derivata prima è Dal teorema del valore medio sappiamo che esiste un t k!1 "( 0,1)tale che!( x k "1 ) "!( u) =!#( $ k "1 )( x k "1 " u), (5.64) dove! k "1 = x k "1 + t k "1 ( u " x k "1 ). Allora, combinando le (5.60) e (5.64) otteniamo e k = #" $ k!1 e k!1 ( ). (5.65) Siccome lim k!" x k = u si ha che e, quindi, ( ) lim x k #1 + t k #1 u # x k #1 k!" $% & ' = u (5.66) lim $ % k &1 k!" # Combinando le (5.65) e (5.67) otteniamo ( ) = $ #( u). (5.67) lim k!" e k = % $ u e k #1 ( ). (5.68)

24 Dunque, se "!( u) # 0 l iterazione di Picard ha un ordine di convergenza unitario, quindi è un metodo del primo ordine come quello della bisezione. La costante asintotica di errore è uguale a "! u ( ). 5.2.2.3 Stima dell errore Ora faremo vedere che e k può essere espresso in funzione di!x k +1. Potendo scrivere x k! u = ( x k +1! u)! ( x k +1! x k ) (5.69) abbiamo che ( ) "!( u) e k = #$! x k % & " 'x k +1. (5.70) Dal teorema del valore medio abbiamo che esiste un t k!( 0,1) tale che dove! k = x k + t k u " x k!( x k ) "!( u) =!#( $ k )( x k " u) (5.71) ( ). Sostituendo la (5.71) nella (5.70) abbiamo e k =!x k +1 ( ) % 1. (5.72) #" $ k E evidente, allora, che se "! # +1 in [ a,b] e lim converge al punto fisso u. Esercizio 5.14 #x k = 0, allora lim e k = 0 e l iterazione k!" k!" Dimostrare che lim k!" #x k = 0 se la funzione di iterazione è L-contrattiva nel dominio [ a,b] e x 0![ a,b]. Siccome lim $ % k quindi k!" # " u ( ) = $ #( u), esiste un N tale che per k! N si ha!( ) $!( ), " # k e N! "x N +1 1 # % $ u ( ). (5.73) Questa relazione ci consente di stimare l errore e N per un dato!x N +1.

25 Osservazione Abbiamo mostrato che il metodo di Picard può essere impiegato solo se la funzione di iterazione! è L-contrattiva nel dominio che contiene il punto fisso. Affinché la funzione! data dalla (5.34) sia L-contrattiva è necessario che f!( x) sia minore di zero. Questo vincolo rende praticamente inapplicabile il metodo di Picard per risolvere un equazione del tipo (5.9). Questa limitazione può essere superata osservando che esiste una riformulazione più generale dell equazione (5.4) come problema di punto fisso. L equazione (5.4) può essere riscritta come x = x +! f ( x), (5.74) dove! è un parametro, per il momento arbitrario, diverso da zero. In questo caso la funzione di iterazione è data da!( x) = x + " f ( x). (5.75) Possiamo pensare di scegliere! in modo tale che questa funzione di iterazione sia L- contrattiva. Imponendo che la (5.75) verifichi la condizione "! x La (5.76) è verificata se Esercizio 5.15 1 +! f "!2 < f " ( ) < 1 si ottiene ( x) < 1. (5.76) ( x)# < 0. (5.77) Risolvere il problema dell Esercizio 5.10 con la funzione di iterazione (5.75), scegliendo il valore di! in modo tale che! sia L-contrattiva almeno in un intorno della soluzione. 5.2.3 Metodo di Newton-Raphson La scelta più generale di funzione di iterazione per risolvere l equazione (5.4) è data da dove, ora,! =! x scegliere in modo tale che "! x!( x) = x + " ( x) f ( x) (5.78) ( ) è una funzione diversa da zero e limitata nell intervallo [ a,b], da ( ) < 1 almeno in un intorno della soluzione u. Essendo

26 è conveniente scegliere! in modo tale che "! = 1+ #! f + # f! (5.79)! = " 1 f # (5.80) purché f! " 0 e limitato. Con questa scelta l iterazione di punto fisso (5.55) si riduce proprio all iterazione di Newton-Raphson e In questo caso si ha "! u "! = # f x f! x ( ) ( ). (5.81) ( ) = 0, quindi esiste un intorno J del punto fisso u in cui ( ) < 1. Scegliendo x 0!J l iterazione converge alla soluzione u. "! x Riportiamo un teorema attraverso cui è possibile stimare la regione a cui deve appartenere il dato iniziale per avere un iterazione convergente. Teorema di convergenza globale [5.3] Sia f x ( ) una funzione continua con la sua [ ]. Se: derivata prima e seconda definita nell intervallo chiuso e limitato a,b 1. f a 2. f! 3. f!! 4. ( ) f ( b) < 0 ( x) " 0 #x $ [ a,b] ( x) " 0, oppure f!! ( x) # 0 $x %[ a,b] f ( a) f!( a) < b " a e f ( b) f!( b) < b " a allora il metodo di Newton-Raphson converge all unica soluzione u in a,b scelta di x 0![ a,b]. [ ], per ogni La condizione 4. significa che la tangente negli estremi dell intervallo [ a,b] interseca l asse x all interno dell intervallo. Problema 5.4 Dimostrare il Teorema di convergenza globale per il metodo di Newton-Raphson.

27 Ora mostreremo che l ordine di convergenza per il metodo di Newton-Raphson è uguale a 2. Il metodo di Newton-Raphson è un metodo del secondo ordine. Sviluppiamo la funzione! nell intorno di x = u utilizzando l espansione di Taylor al secondo ordine. Esiste un 0! t! 1 tale che!( x) =!( u) +!"( u) ( x # u) + 1 2!"" ( $ ) x # u ( )2 (5.82) dove! = x + t ( u " x). Essendo!( u) = u e "!( u) = 0 dalla (5.82) otteniamo ( ) " u = 1 2 ## ( )( x k " u) 2, (5.83)! x k! $ k ovvero e k +1 = 1 2 "!! ( # k )e 2 k. (5.84) Essendo lim k!" # k = u, dalla (5.84) otteniamo lim k!" e k +1 = 1 e k 2 $ ## u ( ) e k. (5.85) Pertanto, l ordine di convergenza del metodo di Newton-Raphson è uguale a 2. La costante asintotica di errore è uguale a 0.5 "!! u ( ). E immediato verificare che "!! ( u) = f!! f! ( u) u ( ). (5.86) Dalla (5.85) segue che e k = 1 K Ke M 2k per k! M (5.87) dove K = 0.5 "!! ( u) e M è un numero intero sufficientemente elevato. E evidente, allora, che l errore tende a zero solo se e M < 1 / K. Ciò è in accordo con il fatto che l iterazione di Newton-Raphson converge alla soluzione solo se il punto di partenza è ad essa sufficientemente vicino. Infine, resta da determinare la relazione tra l errore e k e l incremento!x k +1 nell intorno della soluzione. Dalla (5.73) si ha

28 e N! "x N +1 (5.88) perché in questo caso "!( u) = 0. 5.3 Sistemi di equazioni algebriche non lineari Il metodo di Picard e il metodo di Newton-Raphson si estendono senza alcuna difficoltà ai sistemi di equazioni algebriche non lineari. L estensione del metodo della bisezione, invece, presenta difficoltà insormontabili. In questo paragrafo estenderemo il metodo di Picard e il metodo di Newton-Raphson alla soluzione di un sistema del tipo (5.3). Esempio 5.2 Si consideri il circuito resistivo non lineare illustrato in Figura 5.12. Risolviamolo applicando il metodo dei potenziali ai nodi. Il funzionamento del transistore è descritto attraverso il modello di Ebers-Moll. Si ha i b = g b ( w b,w c ) = 1! " F i c = g c ( ) I ES e w b /V T! 1 ( ) =! F I ES e w b /V T " 1 w b,w c ( ) + 1! " R ( ) " I CS e w b "w c ( )/V ( T! 1) (5.89) ( )/V ( T " 1) (5.90) ( ) I CS e w b!w c dove V T = 26 mv,! R = 0.5 0.8,! F = 0.99, I ES! I CS! 10 "12 10 "10 A a 25 C. Per ispezione diretta del circuito otteniamo le equazioni i b = E 1! w b R 1, (5.91) i c = E 2! w c R 2. (5.92) Combinando le equazioni (5.89)-(5.92) otteniamo il sistema di due equazioni algebriche non lineari w b " + g b ( w b,w c )! E 1 = 0 $ R 1 R 1 # $ g c ( w b,w c ) + w c! E 2 = 0. % $ R 2 R 2 (5.93)

29 Figura 5.12 Circuito di polarizzazione per la configurazione di emettitore comune. Prima di estendere il metodo di Picard e il metodo di Newton-Raphson ai sistemi di equazioni, vogliamo fare qualche ulteriore considerazione sull esistenza e unicità della soluzione dell equazione (5.3). Una funzione f : D! R n " C! R n è strettamente monotona in D se ( )! f ( y) "# f x $% T x! y ( ) > 0,!x " y #D. (5.94) Se f è strettamente monotona in D, allora essa definisce una corrispondenza biunivoca tra il dominio di definizione D e il codominio C. In conclusione, se C contiene lo zero e f è strettamente monotona, allora l equazione (5.3) ha una ed una sola soluzione in D. La funzione f è strettamente monotona in D se la matrice jacobiana J f ( x) "f 1 / "x 1 "f 1 / "x 2... "f 1 / "x n J f ( x)! "f 2 / "x 1 "f 2 / "x 2... "f 2 / "x n............ (5.95) "f n / "x 1 "f n / "x 2... "f n / "x n è definita positiva per ogni x!d, [5.1]. Lasciamo al Lettore la dimostrazione di questa proprietà. Pertanto, se il codominio di f contiene lo zero e J f ( x) è definita positiva in D, la soluzione dell equazione (5.3) esiste ed è unica. Esiste un altro importante risultato sull esistenza e unicità della soluzione dell equazione (5.3). Esso deriva dal teorema di Hadamard, [5.1]. Se f è continua e differenziabile in! n e J!1 f ( x) " # < $ per ogni x!" n, allora f è un omeomorfismo di! n in! n. Di conseguenza esiste ed è unica la soluzione dell equazione (5.3). Se ( x) diventa singolare in qualche punto di D, allora la soluzione può non essere unica. J f

30 5.3.1 Metodo di Picard Come nel caso scalare, è sempre possibile riscrivere il sistema di equazioni algebriche non lineari (5.3) nella forma u =!( u) " ( ) ( ) # u 1 =! 1 u 1,u 2,...,u n % u 2 =! 2 u 1,u 2,...,u n $ %... & % u n =! n u 1,u 2,...,u n ( ) (5.96) dove! : R n " R n è una funzione di iterazione vettoriale opportuna. Una scelta possibile per la funzione di iterazione è!( x) = x + f ( x). (5.97) Ovviamente, come nel caso scalare, altre scelte sono possibili, in seguito le considereremo. La soluzione u del sistema (5.3) è il punto fisso della funzione di iterazione!. Come nel caso scalare, consideriamo la successione generata da x ( 1),x ( 2),...,x ( k),... (5.98) x k ( ) =! x k "1 ( ( ) ) (5.99) con x ( 0) assegnato. Sotto opportune condizioni sulla funzione di iterazione! la successione (5.98) converge al punto fisso u. Assumiamo che il metodo di Picard converga. Posto!x = x ( k +1) " x ( k) (5.100) e ( ) =! x k r k ( ( ) ) " x k ( ) (5.101) per arrestare l iterazione possiamo utilizzare uno dei due criteri!x ( N ) " #, (5.102) r ( N )! ", (5.103)

31 dove con x indichiamo una norma del vettore x (vedi Appendice A2), ad esempio, la norma euclidea n 2 x 2 =! x i (5.104) ed! è un parametro dato. Se si sceglie la (5.97) come funzione di iterazione si ha i=1!x ( N +1) = r ( N ). (5.105) Nel Programma 5.4 è riportata una implementazione in ambiente MATLAB del metodo di Picard per un sistema di equazioni utilizzando come funzione di iterazione la (5.97) e come criterio di arresto il controllo della variazione della soluzione (5.102). Le variabili di ingresso sono: x0 è il dato iniziale, toll è l errore! e nmax è il numero massimo di iterazioni accettate (è impiegata la norma euclidea per valutare l errore). Le variabili di uscita sono: zero contiene la soluzione calcolata, niter il numero di iterazioni effettuate per determinarla secondo il criterio di arresto (5.102). La funzione di iterazione! è costruita attraverso la function fun(y). Programma 5.4: Picard vettoriale function [zero,niter,resrel]=picard(x0,toll,nmax) % Metodo di Picard vettoriale. % Attenzione: y è un vettore colonna. y=x0; [fx]=fun(y); niter=0; diff=toll+1; while diff>=toll&niter<=nmax niter=niter+1; diff=fx; y=y+diff; diff=norm(diff); [fx]=fun(y); end; zero=y; return 5.3.2 Metodo di Newton-Raphson In analogia con il caso scalare, sostituiamo la funzione f x serie di Taylor nell intorno di x ( k) arrestato al termine lineare, ( ) con il suo sviluppo in

32 f i ( ( ) ) + ( x)! f i x k "f i n # x=x k j =1 "x j ( ) ( ) i = 1,2,...,n. (5.106) ( ) x j $ x j k Le n relazioni (5.106) possono essere rappresentate sinteticamente in forma vettoriale in questo modo ( )! f x k f x ( ( ) ) + J f x ( k) ( )( x " x ( k) ) (5.107) ( ) è la matrice jacobiana di f ( x) la cui espressione è data dalla (5.95). La legge dove J f x che governa l iterazione di Newton-Raphson è determinata sostituendo il segno! con il segno = nella (5.106) e sostituendo l espressione di f così ottenuta nell equazione (5.3), J f ( x ( k) ) x k +1 ( ( )! x ( k) ) =!f x k ( ( ) ). (5.108) Ad ogni passo dell iterazione bisogna risolvere un sistema di equazioni algebriche lineari nell incognita x ( k +1)! x ( k) ( ). Per questa ragione il costo computazionale per del metodo di Newton-Raphson è più alto di quello per il metodo di Picard. Risolvendo simbolicamente il sistema (5.108) si ha x ( k +1) = x ( k)! J!1 f ( x ( k) )f x k ( ( ) ). (5.109) Questa è la legge che governa l iterazione di Newton-Raphson per un sistema di equazioni algebriche non lineari. Se si blocca il valore della matrice jacobiana al valore che essa ha assunto a una precedente iterazione si ha il metodo di Newton-Raphson modificato. In questo caso bisogna invertire una sola volta la matrice jacobiana. Osservazione Se si sceglie come funzione di iterazione nel metodo di Picard la funzione!( x) = x " J "1 f ( x)f ( x) (5.110) si ottiene il metodo di Newton-Raphson. L iterazione di Newton-Raphson può essere arrestata utilizzando i criteri (5.102) e (5.103) che abbiamo introdotto per i metodo di Picard. Essendo

33 ( ) = J f x k f x ( k) e Ay! A y (vedi Appendice 2), si ha ( ( ) )!x k +1 ( ) (5.111) ( )! J f ( x ( k) ) "x k +1 f x ( k) ( ). (5.112) La (5.109) dà un maggiorante della norma del residuo in termini della norma dell incremento tra due iterate consecutive. Programma 5.5: Newton-Raphson vettoriale function [zero,niter]=newton(x0,toll,nmax) % Metodo di Newton-Raphson vettoriale % Attenzione: y è un vettore colonna y=x0; [fx,dfx]=fun(y); niter=0; diff=toll+1; while diff>=toll&niter<=nmax niter=niter+1; diff=-dfx\fx'; y=y+diff; diff=norm(diff); [fx,dfx,fl]=fun(y); end; zero=y; return Nel Programma 5.5 è riportata una implementazione in ambiente MATLAB del metodo di Newton-Raphson per un sistema di equazioni utilizzando come criterio di arresto il controllo della variazione della soluzione (5.102). La funzione f e la corrispondente matrice jacobiana sono costruite attraverso la chiamata alla function fun(y). Per la soluzione del sistema (5.108) si utilizza la fattorizzazione LU. Le variabili di ingresso sono: x0 è il dato iniziale, toll è l errore! e nmax è il numero massimo di iterazioni accettate. Le variabili di uscita sono: zero contiene la soluzione calcolata e niter il numero di iterazioni effettuate per determinarla secondo il criterio di arresto (5.102). Esempio 5.3 Risolviamo il sistema (5.93) sia con il metodo di Picard (Programma 5.4), sia con il metodo di Newton-Raphson (Programma 5.5). Si assumano i seguenti valori per i parametri: R 1 = 2!, R 2 = 1!, E 1 = 1V, E 2 = 0.5V,! R = 0.8,! F = 0.9, I ES = I CS = 1pA, V T = 26mV. L iterazione di Picard non converge mai alla soluzione, comunque si scelga x ( 0). L iterazione di Newton-Raphson con x ( 0) = 0, toll = 10!3

34 converge dopo 38 iterazioni alla soluzione w b = 0.722V, w c = 0.015V. In corrispondenza di questi valori si ha f = 1.94!9,7 µa. Con altri valori dei parametri l iterazione di Newton-Raphson con x ( 0) = 0 può non convergere. Ad esempio, con R 1 = 500!, R 2 = 200k!, E 1 = 0.5V, E 2 = 10V dopo tre iterazioni si ha NaN (in MATLAB NaN è un non numero, cioè una forma indeterminata del tipo 0 / 0 o! /!, [5.2]; nel caso in esame è del tipo! /! ). Questo problema di convergenza può essere risolto con il metodo della continuazione o con il metodo di Newton-Raphson modificato. 5.4 Il problema della convergenza Si assuma che l equazione (5.3) abbia una ed una sola soluzione u in D!R n. Sia x ( 0),x ( 1),x ( 2),...,x ( k),... (5.113) la successione generata risolvendo l equazione (5.3) attraverso uno dei due metodi iterativi descritti nel precedente paragrafo (Picard, Newton-Raphson). Come nel caso scalare affronteremo le seguenti questioni: i) la successione converge alla soluzione u? ii) con quale velocità l errore decresce? iii) che errore si commette arrestando l iterazione dopo un numero fissato di passi? Analogamente al caso scalare, introduciamo l errore assoluto e ( k) al passo k e ( k)! x ( k) " u. (5.114) L incremento!x ( k) è definito nella (5.100) e il residuo r ( k) è definito nella (5.101). Come nel caso scalare, se lim e ( k) = 0 (5.115) k!" l iterazione converge alla soluzione u. In queste condizioni si ha immediatamente che e lim r ( k) = 0 (5.116) k!" lim #x ( k) = 0. (5.117) k!"

35 Si consideri il rapporto tra la norma dell errore al passo k e la norma dell errore al passo k! 1,! k " e ( k) e ( k #1). (5.118) Si assuma che l iterazione converga alla soluzione u e che esista un intero p e una costante positiva C tali che lim # k = C e ( k) ( p$1). (5.119) k!" Il parametro p non è altro che l ordine di convergenza del metodo iterativo e C la costante asintotica di errore. La legge che governa il comportamento asintotico della norma dell errore è, allora, e ( N +1)! C e ( N ) p. (5.120) Come nel caso scalare, è importante cercare le relazioni che esistono tra la norma dell errore a un certo passo e la norma dell incremento!x o del residuo r. 5.4.1 Iterazione di Picard Analizziamo ora le proprietà della successione (5.113) generate dall iterazione di punto fisso x k =!( x k "1 ) (5.121) nell ipotesi che esiste uno ed un solo valore u nel dominio limitato e convesso 9 D! R n tale che u =!( u) (5.122) e che! sia differenziabile. Il teorema della media nella forma illustrata nel 5.2 non vale per le funzioni vettoriali di variabili vettoriali 10, [5.1]. Prima di iniziare lo studio delle proprietà di 9 Un dominio D si dice convesso se per ogni x, y!d, tutti i punti del segmento definito da s = x + t ( y! x) per 0! t! 1 appartengono a D.

36 convergenza del metodo di Picard, enunceremo un estensione. Per ogni x,y!d esiste un 0! t! 1 tale che [5.1]!( x) "!( y) # J! ( $ ) x " y, (5.123) dove! = x + t ( y " x); J! indica la norma della matrice jacobiana J! (vedi Appendice 2). Posto L = sup x!d J " ( x) (5.124) dalla (5.123) si ha!( x) "!( y) # L x " y (5.125) per ogni x,y!d. Essendo! differenziabile in D si ha che la costante L è limitata, quindi, come nel caso scalare,! è lipschitziana 11. Come nel caso scalare, diciamo che la funzione di iterazione! è L -contrattiva se L < 1. 5.4.1.1 Convergenza Sottraendo membro a membro le equazioni (5.121) e (5.122) otteniamo ( ) =! x k "1 e k ( ( ) ) "! u ( ). (5.126) Utilizzando, ora, la (5.125) dalla (5.126) otteniamo Iterando k volte la (5.127) si ha e ( k)! L e ( k "1). (5.127) e ( k)! L k e ( 0). (5.128) Se L < 1abbiamo che lim L k = 0 e k!" 10 Esso continua a valere per le singole componenti della funzione! : per ogni x, y!d esiste un 0! t i! 1 tale che! i ( x) "! i ( y) = n #! $ i x=s #x i ( x i " y i ) dove s i = x + t i y! x j j=1 ( ), però t i varia al variare di i ( i = 1, 2,..., n). 11 Si dice che la funzione f : R n! R n è lipschitziana in D se esiste una costante finita L tale che per ogni x, y!d si ha che f ( x)! f ( y) " L x! y.

37 lim e ( k) = 0. (5.129) k!" Pertanto, come nel caso scalare, se la funzione di iterazione! è L -contrattiva nel dominio D allora l iterazione di Picard (5.121) converge al punto fisso u. La funzione! è L -contrattiva se J! ( x) < 1 "x #D. (5.130) Per ogni! positivo piccolo a piacere esiste una norma J! ( x) tale che [2] " J! # $ J " (! ) + %, (5.131) dove!( J " ) è il raggio spettrale della matrice J!, che per definizione è e! i ( J " ) è il generico autovalore di J!. Allora se!( J " ) = max # i J " i ( ) (5.132)!( J " ( x) ) < 1 #x $D (5.133) certamente esiste una norma per la quale la (5.130) è verificata e, quindi l iterazione di punto fisso (5.121) converge. Con la funzione di iterazione (5.97) si ha J! = I + J f. (5.134) Allora, gli autovettori di J f sono anche autovettori di J! e per gli autovalori si ha! i ( J " ) = 1+! i ( J f ). (5.135) In termini dello jacobiano della funzione f la condizione (5.133) diventa max 1 +! i J f x i ( ( )) < 1 "x #D. (5.136) Questa condizione può essere verificata solo se gli autovalori di J f sono tutti minori di zero e in modulo minori di uno,

38 Con la funzione di iterazione la condizione (5.133) diventa Osservazione!1 < " i ( J f ( x) ) < 0 #x $D e i = 1,2,...,n. (5.137)!( x) = x " f ( x) (5.138) 0 <! i ( J f ( x) ) < 1 "x #D e i = 1,2,...,n. (5.139) Come nel caso scalare, il metodo di Picard può essere impiegato solo se f verifica una delle due condizioni (5.137), (5.139). Questo vincolo rende praticamente inapplicabile il metodo di Picard per risolvere, ad esempio, un sistema del tipo (5.93). Questo problema può essere risolto come nel caso scalare, osservando che esiste una riformulazione più generale dell equazione (5.3) come problema di punto fisso. L equazione (5.3) può essere riscritta come x = x + Af ( x), (5.140) dove A è matrice invertibile, per il momento arbitrario. In questo caso la funzione di iterazione è data da!( x) = x + Af ( x) (5.141) e J! = I + AJ f. (5.142) Si può pensare di scegliere A in modo tale che Esercizio 5.16 ( ( )) < 1. (5.143) max! i I + AJ f i Verificare che la funzione f del problema (5.93) non soddisfa né la condizione (5.137), né la condizione (5.139); si assumano per i parametri del circuito gli stessi valori utilizzati nell Esempio 5.3. Determinare una matrice A per cui sia verificata la condizione (5.143) e risolvere il sistema il (5.93) con il metodo di Picard.