• Non ci sono risultati.

Cenni alla risoluzione numerica di sistemi nonlineari

N/A
N/A
Protected

Academic year: 2021

Condividi "Cenni alla risoluzione numerica di sistemi nonlineari"

Copied!
16
0
0

Testo completo

(1)

Cenni alla risoluzione numerica di sistemi

nonlineari

Alvise Sommariva

Universit`a degli Studi di Padova Dipartimento di Matematica

(2)

Cenni alla risoluzione numerica di sistemi nonlineari

Problema. (Soluzione di sistemi nonlineari)

Data una funzione f : Ω ⊆ Rm→ Rm

si tratta di trovare gli x∗∈ Ω, qualora esistenti, tali che f (x∗) = 0.

Ci proponiamo di introdurre dei metodi numerici per la risoluzione di tali sistemi nonlineari, talvolta scritti nella forma di punto fisso x = φ(x), ad esempio con φ(x) = x − f (x), x ∈ Rm.

Esempio

Si consideri l’equazione f (x1, x2) = (x1−12cos (x2), x2−12sin (x1)) = 0R2,

ovvero



x1−12cos (x2) = 0

x2−12sin (x1) = 0

(1) Si verifica direttamente che ha un’unica soluzione x∗= (x1, x2) con

(3)

Generalizzazione punto fisso e Teorema di Banach

Teorema (Banach)

Sia (X , d ) uno spazio metrico completo (dotato della distanza d ) ed M un sottoinsieme non vuoto e chiuso di X . Se φ : M → M `e L contrattiva cio`e

d (φ(x), φ(y)) ≤ Ld (x, y), L < 1, allora

1 l’equazione x = φ(x) ha una ed una sola soluzione x∗;

2 la successione xk+1= φ(xk) (detta di Banach o di punto fisso) converge alla soluzione x∗per ogni scelta del punto iniziale x

(4)

Punto fisso per sistemi e Teorema di Banach

Teorema (Banach in Rm)

Sia X = Rm(dotato della norma kx kp= (Pm

k=1|xk|p)1/p per p ≥ 1, con kxk∞= maxk=1,...,m|xk|) ed M un sottoinsieme non vuoto e chiuso di Rm. Se φ : M → M `e L contrattiva cio`e

kφ(x) − φ(y)kp≤ Lkx − ykp, L < 1

1 l’equazione x = φ(x) ha una ed una sola soluzione x∗;

2 la successione xk+1= φ(xk) (detta di Banach o di punto fisso) converge alla soluzione x∗per ogni scelta del punto iniziale x0;

3 per k = 0, 1, 2, . . . si ha

kxk− x∗kp≤ Lk(1 − L)−1kx0− x1kp, a priori kxk− x∗kp≤ L(1 − L)−1kxk+1− xkkp, a posteriori

4 per k = 0, 1, 2, . . . si ha

(5)

Esempio punto fisso per sistemi

Esempio

Il sistema (1) `e equivalente a risolvere il problema di punto fisso 

x1= 12cos (x2)

x2= 12sin (x1) (2)

che si scrive come v = φ(v) con v = (x1, x2) e

φ(v) = 1 2cos (x2), 1 2sin (x1)  .

Si dimostra che φ `e L−contrazione con L = 1/2. Per applicare il teorema di punto fisso per sistemi basta porreM = [−1, 1] × [−1, 1] ⊂ R2e osservare che

(6)

Esempio punto fisso per sistemi

Mostriamo che φ : R2→ R2`e una contrazione. Dalla formula di Taylor in R2

φ(v) = φ(v0) + Jφ(ξ)(v − v0), ξ ∈ S(v, v0), i = 1, 2

con S(v, v0) il segmento che congiunge v con v0e φ = (φ1, φ2), con Jφ la matrice Jacobiana di φ valutata in v = (v1, v2). Da Jφ(v) =  0 (−1/2) sin (v1) (+1/2) cos (v2) 0 

essendo kAk∞= maxjP

i|ai ,j|, si ha per un generico τ ∈ R2

kJφ(τ )k∞= max

j X

i

| (Jφ(τ ))i ,j| = max (|(−1/2) sin (τ1)|, |(+1/2) cos (τ2)|) ≤1 2 Quindi φ : R2→ R2`e una L-contrazione con L = 1/2 poich´e, posto nella precedente τ = ξ, essendo la k · k∞di tipo indotto

kφ(v) − φ(v0)k∞= kJφ(ξ)(v − v0)k∞≤ kJφ(ξ)k∞kv − v0k∞≤1

(7)

Metodo Punto fisso per sistemi, in Matlab

f u n c t i o n [ x ,f l a g]= p u n t o _ f i s s o ( x0 , maxit , tol , g )

% INPUT .

% x0 : P U N T O I N I Z I A L E (VETTORE COLONNA) . % m a x i t : NUMERO MASSIMO DI ITERAZIONI . % t o l : TOLLERANZA CRITERIO DI ARRESTO . % g : EQUAZIONE DA RISOLVERE x=g ( x ) % OUTPUT .

% x : ITERAZIONI PUNTO FISSO .

% f l a g : 0 : TERMINAZIONE CORRETTA, 1 : NON CORRETTA .

x=x0 ; f l a g=0; f o r i n d e x =1: m a x i t

x ( : ,end+1)=f e v a l( g , x ( : ,end) ) ;

(8)

Esempio punto fisso per sistemi

La successione punto fisso, definita dai punti xk = (xk,1, xk,2) tali

che xk+1,1 = 1 2cos (xk,2), xk+1,2= 1 2sin (k,1), fornisce le seguenti iterazioni:

(9)

Metodo Newton per sistemi

Supponiamo di dover risolvere f (x) = 0 con f : Ω ⊆ Rm→ Rm.

Porremo di seguito, per notazione, fi(x) = (f (x))i.

La successione di Newton viene descritta come    Jf (xk)) · hk+1= −f (xk), xk+1:= xk+ hk+1, k = 0, 1, . . . x0 assegnato (3)

dove Jf `e la matrice Jacobiana di f cio`e se x = (x1, . . . , xm) allora

(Jf (x)))i ,j =

∂fi(x)

∂xj

, i , j = 1, . . . , m.

(10)

Esempio Newton per sistemi

Proponiamo di seguito, un teorema di convergenza globale e uno di locale, in cui appare immediato capire tanto la generalit´a quanto la difficolt´a del verificare le rispettive ipotesi.

Teorema (Convergenza globale del metodo di Newton)

Se f = (fi) : K ⊂ Rm→ Rm, f ∈ C2(K ) dove

K `e la chiusura di un aperto convesso e limitato contenente una soluzione x∗,

la Jacobiana JF (x∗) `e invertibile, le iterazioni xn siano tutte in K ,

posto en= kx∗− xnk2, vale la seguente stima (convergenza almeno quadratica)

en+1≤ Cen2, n ≥ 0 con C = √ m 2 maxx∈Kk(Jf (x)) −1 k2 max i =1,...,mmaxx∈KkHfi(x )k2

(11)

Esempio Newton per sistemi

Teorema (Convergenza locale del metodo di Newton)

Se f = (fi) : K ⊂ Rm→ Rm, f ∈ C2(K ) dove

K = B2(x∗, r ) ovvero la palla chiusa centrata in x∗, avente raggio r , relativamente alla norma euclidea k · k2,

Jf (x∗) `e invertibile in K , C = √ m 2 maxx∈Kk(Jf (x)) −1k 2maxi =1,...,mmaxx∈KkHfi(x )k2 scelto x0 tale che e0< min{1/C , r }, il metodo di Newton ´e convergente e vale la seguente stima dell’errore

Cen≤ (Ce0)2 n

(12)

Esempio Newton per sistemi

Esempio

Consideriamo il precedente esempio, come f (x ) = 0.

(13)

Metodo Newton per sistemi, in Matlab

f u n c t i o n [ x , steps , f l a g]= n e w t o n _ s i s t e m i ( x , maxit , tol , F , JF )

% INPUT .

% x : P U N T O I N I Z I A L E (VETTORE COLONNA) . % m a x i t : NUMERO MASSIMO DI ITERAZIONI . % t o l : TOLLERANZA CRITERIO DI ARRESTO . % g : EQUAZIONE DA RISOLVERE x=g ( x ) % F : FUNZIONE DI CUI STUDIARE GLI ZERI . % JF : JACOBIANA DI F .

% OUTPUT .

% x : ITERAZIONI NEWTON. % s t e p s : NORMA 2 DEGLI STEP .

% f l a g : 0 : TERMINAZIONE CORRETTA, 1 : NON CORRETTA .

f l a g=0; steps = [ ] ; f o r i n d e x =1: m a x i t

Fv=f e v a l( F , x ( : , index ) ) ; JFv=f e v a l( JF , x ( : , index ) ) ; h=−JFv\Fv ; x ( : , i n d e x +1)=x ( : , i n d e x )+h ;

(14)

Metodo Newton per sistemi, in Matlab

Scriviamo quindi sulla shell di Matlab

>> f o r m a t l o n g e ;

>> x = [ 0 ; 0 ] ; m a x i t =1000; tol =10ˆ( −14) ;

>> [ x , steps , f l a g]= n e w t o n _ s i s t e m i ( x , maxit , tol ,’ F ’,’ JF ’) ; >> x ( : ,end) a n s = 4 . 8 6 4 0 5 1 5 4 6 6 5 9 2 1 3 e−01 2 . 3 3 7 2 5 5 0 1 9 5 8 7 2 0 8 e−01 >> steps ’ a n s = 5 . 5 9 0 1 6 9 9 4 3 7 4 9 4 7 5 e−01 2 . 1 1 3 1 7 1 7 8 9 3 5 1 1 3 8 e−02 7 . 5 2 9 2 8 0 1 4 4 3 5 5 7 7 3 e−05 7 . 7 6 1 5 7 9 6 2 9 5 6 3 8 7 6 e−10 0 >>

(15)

Esempio Newton per sistemi

La successione di elementi xk = (xk,1, xk,2) definita dal metodo di

Newton:



Jf (xk)) · hk+1= −f (xk),

xk+1:= xk+ hk+1

(5) fornisce i seguenti risultati:

(16)

Esercizi in Matlab

Esercizio

Si calcoli la soluzione del sistema nonlineare

x1 = arctan (x1+ x2) · sin (x2)/10

x2 = cos (x1/4) + sin (x2/4) (6)

con il metodo di punto fisso e di Newton.

Riferimenti

Documenti correlati

Universit` a degli Studi di Padova Dipartimento di Matematica. 6

iter: numero di iterazioni impiegate (output); aa,bb: vettori intervalli analizzati da bisez.. Metodo Newton:

Vediamo quanto accurato `e il teorema di Banach nelle sue stime. Il metodo esegue 24 iterazioni.. Punto fisso in Matlab.. ◮ Si osservi che, eccetto nell’ultima riga, la stima

Se intendessi risolvere lo stesso problema col metodo di bisezione (si usi il file demobisezione.m), con intervallo iniziale [0, 1], sarebbero necessarie 47

• il numero di iterazioni iter con solo 6 cifre prima della virgola, nessuna dopo la virgola, in formato decimale; • l’ultimo step step(end) con solo una cifra prima della. virgola,

Uno dei metodi pi` u comunemente utilizzati per la risoluzione di equazioni nonlineari ` e quello delle secanti, che nel caso di sistemi di equazioni nonlineari porta (non

In seguito testi- amo il metodo con diverse combinazioni del punto iniziale x0, della tolleranza richi- esta e del numero massimo di iterazioni e si commentiamo i risultati.. Il

sqrt(a) ) si stimi la velocita’ di convergenza del metodo di Newton (5) per il calcolo della radice quadrata di un numero.. Comincioli, Analisi Numerica, metodi modelli