• Non ci sono risultati.

UN METODO POLINOMIALE PER IL CALCOLO DI FUNZIONI DI MATRICI NON SIMMETRICHE BASATO SUI PUNTI DI LEJA

N/A
N/A
Protected

Academic year: 2021

Condividi "UN METODO POLINOMIALE PER IL CALCOLO DI FUNZIONI DI MATRICI NON SIMMETRICHE BASATO SUI PUNTI DI LEJA"

Copied!
35
0
0

Testo completo

(1)

UN METODO POLINOMIALE PER IL CALCOLO DI

FUNZIONI DI MATRICI NON SIMMETRICHE BASATO

(2)
(3)

Indice

1 Introduzione 5

2 Funzioni di matrici 7

2.1 Tecniche per il calcolo approssimato di funzioni di matrici . . . 8

2.1.1 Serie di Taylor . . . 8

2.1.2 Diagonalizzazione di matrici . . . 9

2.1.3 Decomposizione di Schur . . . 9

2.2 Alcuni esempi di funzioni di matrice . . . 10

2.2.1 Radice quadrata . . . 10

2.2.2 Esponenziale di matrice . . . 11

2.2.3 Logaritmo di matrice . . . 12

3 Approssimazione con i punti di Leja 13 3.1 Weakly Admissible Meshes . . . 14

3.2 Algoritmo DLP . . . 17

4 Descrizione del metodo e risultati 21 4.1 Il metodo . . . 21

4.1.1 Costruzione dell’ellisse . . . 21

4.1.2 Costruzione della mesh . . . 22

4.1.3 Algoritmo DLP: estrazione dei punti di Leja . . . 23

4.1.4 Interpolazione delle funzioni di matrici con il metodo di Newton . . 25

4.2 Risultati: un problema di convezione-diffusione . . . 26

A Codici MATLAB 29 A.1 Codice 1: Costruzione dell’ellisse . . . 29

A.2 Codice 2: Costruzione della mesh . . . 30

A.3 Codice 3: Estrazione dei Punti di Leja . . . 31

A.4 Codice 4: Interpolazione con il metodo di Newton . . . 33

(4)
(5)

Capitolo 1

Introduzione

Data una matrice A ∈ Rn×n, e una funzione di matrice f analitica in una certa regione del piano complesso, ci poniamo il problema di calcolare f (A) ottenendo l’interpolazione polinomiale di f con il metodo di Newton. I nodi di interpolazione saranno i cosiddetti punti di Leja, ottenuti tramite l’algoritmo DLP (Discrete Leja Points). Tali punti vengono definiti asintoticamente ottimi in quanto asintoticamente garantiscono che la convergenza uniforme sia la stessa dei polinomi di miglior approssimazione. Inoltre hanno una costante di Lebesgue che cresce al pi`u linearmente con il grado di interpolazione. Utilizzeremo i punti estratti dall’algoritmo DLP come nodi per il polinomio interpolante, e ricaveremo una ricorrenza a tre termini che permetter`a di calcolare in maniera semplice il valore del polinomio interpolante calcolato in A. Produrremo infine alcuni risultati numerici con delle matrici e delle funzioni test. Le funzioni sui quali effettueremo i test saranno note funzioni analitiche (esponenziale, radice quadrata, logaritmo), sulle quali esistono gi`a degli altri metodi per il loro calcolo numerico, e sulle quali sar`a quindi possibile confrontare i nostri risultati.

Questo metodo, che ovviamente produce un calcolo approssimato di f (A), ha il vantaggio che, dal punto di vista computazionale, ha un costo in operazioni pari a quello di un pro-dotto di matrici ad ogni passo dell’iterazione (mn3, dove n `e la dimensione della matrice e

m `e il numero delle iterazioni del metodo).

Nel Capitolo 2 introduciamo la teoria necessaria sulle funzioni di matrici, ricordando il loro legame con l’Integrale di Cauchy per funzioni di una variabile complessa, e successiva-mente descrivendo le principali tecniche gi`a esistenti per il calcolo approssimato di radice quadrata, esponenziale e logaritmo.

Nel Capitolo 3 vediamo in dettaglio l’approssimazione tramite i punti di Leja discreti. In particolare mostriamo come sono ottenuti numericamente a partire da una discretizzazio-ne di un insieme compatto, detto Mesh debolmente ammissibile, e perch´e sono importanti

(6)

nell’ambito della teoria dell’approssimazione.

Nel Capitolo 4 mostriamo come si possono valutare funzioni di matrici con interpolanti nei punti di Leja, evidenziando la formula ricorsiva ottenuta dal metodo di Newton per l’approssimazione polinomiale.

Successivamente esibiremo i risultati dei test numerici, sulla base di un problema fisico di convezione-diffusione.

(7)

Capitolo 2

Funzioni di matrici

Data una matrice A∈ Rn×ne una funzione scalare f , definiamo l’immagine di f tramite A in modo tale da generalizzare la definizione di funzione in una variabile complessa, f (z), z ∈ C. Ci`o ci fornisce numerosi vantaggi, come la possibilit`a di sostituire l’operazione di di-visione in ambito scalare con la moltiplicazione per la matrice inversa in ambito matriciale. Si consideri ad esempio la funzione scalare

f (z) = 1 + z

2

1− z2, t#= 1 (2.1)

Risulta naturale definire la corrispondente funzione di matrice

f (A) = (I− A)−1(I + A2), 1 /∈ σ(A) (2.2) dove σ(A) corrisponde allo spettro di A, ossia all’insieme degli autovalori di A.

Diamo quindi la definizione di una funzione di matrice come la generalizzazione del Teorema dell’intergrale di Cauchy:

Definizione 1. Data una matrice A ∈ Cn×n di spettro σ(A) e una funzione f che sia

analitica in un insieme compatto K, e tale che K ⊇ σ(A) , definiamo f (A) := 1

2πi !

K

f (z)(zI− A)−1dz (2.3)

Ci poniamo quindi il problema di calcolare numericamente l’immagine tramite f di una generica matrice A. Dal punto di vista computazionale `e un problema molto complesso, sia per la dimensione di A, che pu`o essere molto grande, sia perch´e non sempre `e possibile calcolare esplicitamente l’intergrale di Cauchy.

E’ bene ricordare che esistono altri modi per definire la funzione di matrice. I pi`u noti, oltre a quello appena descritto, sono quelli che sfruttano la forma canonica di Jordan e l’interpolazione di Hermite (cf. [1]). Queste ulteriori definizioni sfruttano delle propriet`a

(8)

algebriche delle matrici che permettono di ricondurre il calcolo di f (A) al calcolo di f (z), cio`e al calcolo di una funzione scalare. Tali definizioni sono comunque equivalenti alla (2.3), pertanto i risultati che otterremo in questo lavoro sono indipendenti dalla definizione di f (A).

Dal punto di vista applicativo, il calcolo di f (A) trova applicazione in numerosi campi, non solo prettamente matematici.

Si pensi ad esempio alla funzione esponenziale, e al ruolo fondamentale che essa gioca nell’ambito della risoluzione delle equazioni differenziali lineari. Oppure, nel campo della probabilit`a e statistica, di notevole interesse `e il calcolo di esponenziale e logaritmo delle matrici stocastiche (particolari matrici con somma di righe e colonne pari a 1). O anco-ra, in algebra lineare, capita spesso il problema di dover calcolare la radice quadrata di una matrice Hermitiana definita positiva (decomposizione di Cholewsky), o di trovare la soluzione di equazioni non lineari del tipo XAX = B.

2.1

Tecniche per il calcolo approssimato di funzioni di

ma-trici

Vediamo brevemente alcune delle tecniche pi`u comunemente utilizzate per approssimare le funzioni di matrici.

2.1.1 Serie di Taylor

Quando la funzione f `e analitica, ossia derivabile un numero infinito di volte nel campo complesso, essa `e sempre sviluppabile come serie di potenze:

f (z) = ∞ " k=0 ak(z− α)k, ak= f(k)(α) k! (2.4)

Vale inoltre il seguente teorema di convergenza, che riportiamo per il caso matriciale: Teorema 1. [6, p. 76] Sia f una funzione analitica con espansione in serie di potenze (o di Taylor) come in (2.1) e con raggio di convergenza r. Data allora una matrice A∈ Cn×n, `e definita la f (A) come serie di potenze, cio`e da

f (A) =

"

k=0

ak(A− αI)k, (2.5)

se e solo se ognuno degli autovalori λi di A soddisfa una delle seguenti condizioni:

• |λi− α| < r

• |λi − α| = r e la serie fni−1(λ) (dove ni `e l’indice di λi) `e convergente nel punto

(9)

2.1. TECNICHE PER IL CALCOLO APPROSSIMATO DI FUNZIONI DI MATRICI 9 Il problema dell’approssimazione tramite la serie di Taylor `e dovuta al fatto che si ha a che fare con delle somme infinite che sono, ovviamente, incalcolabili. Pertanto si utilizzano le somme parziali, utilizzando un numero finito ma sufficientemente grande di termini. A tal proposito, il seguente teorema fornisce un limite superiore all’errore dovuto al troncamento della serie di Taylor:

Teorema 2. [6, p. 77] Sia f sviluppabile in serie di potenze come in (2.1), con raggio di convergenza r. Se A ∈ Cn×n, con ρ(A− α(I)) < r, allora definita una qualunque norma matriciale vale la seguente disuguaglianza:

%f(A) − s−1 " k=0 ak(A− αI)k% ≤ 1

s!0max≤t≤1%(A − αI) sdsf

dts(αI + t(A− αI))%. (2.6)

2.1.2 Diagonalizzazione di matrici

Se la matrice A `e diagonalizzabile, cio`e se esiste una matrice diagonale D = diag(λi),

tale che A = ZDZ−1, dove i λi sono gli autovalori di A e la matrice Z ha per colonne

gli autovettori di A, allora il calcolo di f (A) si riduce al calcolo di f (λi), poich´e vale

f (A) = Z diag(f (λi))Z−1. Tuttavia questo metodo funziona molto bene solo con una certa

classe di matrici, ossia le matrici normali (matrici che commutano con la propria trasposta coniugata, tra cui le matrici simmetriche) altrimenti ci possono essere dei problemi di condizionamento.

2.1.3 Decomposizione di Schur

Data una matrice A, la sua decomposizione di Schur `e definita come QTAQ = T , con Q

unitaria e T triangolare superiore, con in diagonale gli autovalori di A. Tale decomposizione pu`o essere prodotta con l’algoritmo QR. In questo modo, si ha che f (A) = Qf (T )QT, e quindi il problema del calcolo di f(A) si riduce a quello di calcolare f (T ). Ci viene allora in aiuto il seguente risultato:

Teorema 3. [6, p. 84] Sia T ∈ Cn×n una matrice triangolare superiore, e sia la funzione f definita sullo spettro di T. Allora f (T ) = F `e triangolare superiore con fii= f (tii) e

fij =

"

so,...,sk∈Sij

ts0,s1ts1,s2. . . tsk−1skf [λs0, . . . , λsk], (2.7)

dove λi = tii, Sij `e l’insieme di tutte le successioni crescenti di interi che iniziano in i e

finiscono in j, e f [λs0, . . . , λsk] `e la differenza divisa di ordine k di f in λs0, . . . , λsk.

Il teorema appena enunciato produce, tra l’altro, delle formule esplicite per il calcolo delle fij nelle forme canoniche di Jordan e dei blocchi triangolari 2x2 (Teorema di

(10)

Il problema di questo metodo consiste nel fatto che ha un costo computazione elevatissimo (addirittura O(sn)); questo problema `e stato parzialmente risolto dall’algoritmo di Parlett (cf. [6, p. 86], che riduce il numero di operazioni a O(2n3/3). Tuttavia, per come `e costruito l’algoritmo, esso non funziona nel caso in cui la matrice T abbia autovalori ripetuti. Per ovviare questo problema si usa utilizzare l’algoritmo suddividendo T in blocchi diagonali 2x2.

2.2

Alcuni esempi di funzioni di matrice

In questa sezione vedremo brevemente come vengono utilizzati alcuni di questi metodi per le funzioni di matrice quadrata, esponenziale e logaritmo.

2.2.1 Radice quadrata

La radice quadrata di una matrice non `e, in genere, unica. Generalmente tuttavia, data una matrice A si `e interessati a calcolare l’unica radice quadrata X definita positiva. Una tale matrice non `e sempre definita, infatti notiamo che dalla definizione di funzione di matrice si ha √ A = 2 πA ! 0 (t2I + A)−1dt. (2.8)

Vediamo subito quindi che una delle condizioni per poter calcolare questa funzione di matrice `e che lo spettro di A non contenga autovalori con parte reale negativa.

Vale inoltre il seguente Teorema riguardante l’esistenza di radici quadarate reali:

Teorema 4. [6, p. 138] Sia A ∈ Rn×n non singolare. Se A possiede autovalori negativi, allora non possiede radici quadrate reali definite positive. Se A non ha autovalori reali negativi, allora esistono esattamente 2r+c radici quadrate di A, dove r `e il numero di autovalori reali distinti di A, mentre c `e il numero di coppie distinte di autovalori complessi coniugati.

I principali metodi utilizzati per calcolare la radice quadrata di A sono basati sulla decomposizione di Schur, gi`a vista nel precedente paragrafo, e il metodo di Newton. Il metodo di Schur, in particolare, prevede la suddivisione della matrice in blocchi 2x2. Nel metodo di Newton, invece, si suppone che Y sia una soluzione approssimata dell’e-quazione X2 = A, e che esista una qualche matrice E tale per cui Y + E = X. Allora

A = (Y + E)2 = Y2 + Y E + EY + E2. Trascurando il termine di secondo ordine E2 abbiamo la seguente ricorrenza:

(11)

2.2. ALCUNI ESEMPI DI FUNZIONI DI MATRICE 11 In questa forma, il metodo di Newton `e decisamente dispendioso, dovendo ad ogni iterazione risolvere un equazione nell’incognita Ek. Con il seguente lemma tuttavia siamo in grado

di ridurre notevolmente il numero di conti:

Lemma 1. [6, p. 139] Supponiamo che nell’iterazione di Newton X0 commuti con la

ma-trice A, e che le iterate Xk siano tutte ben definite. Allora, per ogni k, Xk commuta con

A e Xk+1 = 12(Xk+ Xk−1A).

Questo ci permette di riscrivere in maniera pi`u semplice il metodo sopra descritto, ponendo X0 = A, che commuta ovviamente con se stessa.

Osservazione 1. Per poter usare questo metodo, che sfrutta l’inversa della matrice A dobbiamo richiedere che lo spettro non contenga l’autovalore 0; questa sar`a l’ipotesi che richiederemo anche nel metodo polinomiale che spiegheremo nei capitoli successivi. Esisto-no comunque degli altri metodi iterativi che garantiscoEsisto-no la convergenza anche per matrici singolari.

2.2.2 Esponenziale di matrice

Ricordiamo che la matrice esponenziale `e definita nella seguente maniera:

eA= ∞ " k=0 Ak k! (2.10)

e che la serie di potenze relativa a tale funzione ha raggio di convergenza infinito. Quello del-lo sviluppo di Taydel-lor `e il metodo usato daldel-lo stesso MATLAB per il calcodel-lo (approssimato) della matrice esponenziale tramite il comando expm, che utilizzeremo successivamente per la verifica dei nostri risultati numerici. Un altra possibilit`a `e la rappresentazione tramite il limite eA= lim s→∞(I + A s) s. (2.11)

Anche per questa funzione, inoltre, esistono degli algoritmi basati sulla decomposizione di Schur. Uno di questi in particolare utilizza le differenze divise di Newton per il calcolo di f (T ) (si veda il paragrafo 2.1.3). Il problema che si presenta nel calcolo delle differenze divise si ha quando, ad esempio, i nodi di interpolazione λi e λi+1 sono molto vicini tra di

loro. Dato quindi che la differenza divisa f [λi, λi+1] si calcola come f [λi, λi+1] = (f (λi+1)−

f (λi))/(λi+1−λi), possono verificarsi problemi di accuratezza nel calcolo del denominatore,

(12)

2.2.3 Logaritmo di matrice

Il logaritmo di A∈ Rn×n`e qualunque matrice X tale che eX = A. Se A `e non singolare, essa possiede infiniti logaritmi, questo perch´e nel campo complesso il logaritmo `e una funzione periodica di periodo 2πi. Quello che calcoleremo sar`a quindi il logaritmo principale di A, ossia la matrice X il cui spettro `e contenuto nella striscia {z : −π < ((z) < π}. Per poter definire il logaritmo di A, inoltre, `e necessario che i suoi autovalori abbiano parte reale non negativa. Un primo metodo per il calcolo del logaritmo sfrutta le serie di Taylor. Ricordiamo che valgono le seguenti relazioni:

log(I + A) = A−A

2

2 + A3

3 − . . . , ρ(A) < 1 (2.12) e la cosiddetta Serie di Gregory (1668), che si costruisce a partire dal caso scalare sottraendo gli sviluppi di Taylor di log(1 + x) e di log(1− x):

log(A) =−2 ∞ " k=0 1 2k + 1((I− A)(I + A) −1)2k+1, min i )(λi(A)) > 0 (2.13)

Notiamo subito che la Serie di Gregory ha un raggio di convergenza molto pi`u grande rispetto alla serie di Taylor, e in particolare essa converge per qualunque matrice hermitiana definita positiva. Tuttavia la convergenza pu`o essere molto lenta se A non `e abbastanza vicina all’identit`a.

Altri metodi per il calcolo del logaritmo sfruttano la decomposizione di Schur. Come nel caso dell’esponenziale, anche qui si ripresenta il problema del calcolo della differenza divisa f [λ1, λ2], quando λ1 e λ2 sono vicini tra loro. Per evitare questo problema si opera una

sostituzione di questo tipo:

log λ2− log λ1 = logλ2

λ1

+ 2πi Avv(log λ2− log λ1) (2.14)

dove Avv `e l’indice di avvolgimento. Poniamo Avv(log λ2 − log λ1) = U e z = (λ2 −

λ1)/(λ2+ λ1) e otteniamo che la (2.11) equivale a

log # 1 + z 1− z $ + 2U (2.15)

Infine, ricordando che arctan h(z) = 12log(1+z1−z), concludiamo che f [λ1, λ2] = t12

2 arctan h(z) + 2U λ2− λ1

(13)

Capitolo 3

Approssimazione con i punti di

Leja

In questo capitolo descriveremo un algoritmo efficiente per l’interpolazione polinomiale, da applicare poi alle funzioni di matrici. Come visto nel Capitolo 2, possiamo ricondurci al caso delle funzioni scalari complesse in una variabile.

L’algoritmo che utilizzeremo ci fornir`a i Discrete Leja Points (di seguito abbreviato con DLP), i cui vantaggi sono i seguenti:

• la costante di Lebesgue Λn cresce moderatamente con n (vedi paragrafo successivo);

• se {zj}j=1,...,n`e un set di punti di Leja di grado n−1 per il dominio Ω ⊂ C, allora le

co-stanti di Lebesgue del sottoinsieme{zj}j=1,...,m crescono anch’esse “moderatamente”

per m≤ n.

Vediamo subito come la crescita moderata di Λn renda i DLP dei buoni punti di

ap-prossimazione. Ricordiamo che definito p∗n il polinomio di miglior approssimazione per la funzione f , per un noto teorema (cf. [9]) vale la relazione:

%f − pn% ≤ (1 + Λn)%f − p∗n% (3.1)

per ogni polinomio pn∈ Pn(K). Sia quindi pn il polinomio interpolante nei punti di Leja;

estraendo la radice n-esima e passando ai limiti otteniamo lim n→∞%f − pn% 1/n ≤ lim n→∞(1 + Λn) 1/n%f − p∗ n%1/n (3.2)

che, vista la crescita moderata della costante di Lebesgue con n, equivale a lim n→∞%f − pn% 1/n ≤ lim n→∞(1 + n) 1/n%f − p∗ n%1/n = limn→∞%f − p∗n%1/n (3.3)

Dato che p∗n`e il polinomio di miglior approssimazione, non pu`o verificarsi la disuguaglianza stretta, quindi il polinomio pn, che interpola sui DLP, `e asintotico al polinomio di miglior

approssimazione.

(14)

3.1

Weakly Admissible Meshes

Dato un insieme compatto K ⊂ C, i polinomi di grado massimo n ristretti a K formano uno spazio vettoriale Pn(K) di dimensione n + 1. Preso quindi un sottoinsieme di punti

distinti di K,A= {a1, . . . , an+1}, e una funzione f : K → C, vogliamo trovare un polinomio

pn∈ Pn(K) tale che

pn(ai) = f (ai), i = 1, . . . , n + 1 (3.4)

Ci`o equivale a risolvere il seguente sistema di n + 1 equazioni lineari: pn(ai) =

n+1" j=1

cjPj(ai) = f (ai), i = 1, . . . , n + 1 (3.5)

dove le costanti cj ∈ C sono le incognite del sistema, e i Pj sono i polinomi che costituiscono

una base di Pn(K). In forma matriciale questo sistema si scrive nella forma

V (a; P )c = F, (3.6)

dove V (a; P ) = [Pj(ai)]1≤i,j≤n+1 `e una matrice di Vandermonde, c `e il vettore dei

coeffi-cienti e F `e il vettore dei valori f (ai). Se i punti diA sono a due a due distinti, la matrice

di Vandermonde `e non singolare, e quindi possiamo definire il polinomio interpolatore di Lagrange come

li(z) = det V (a1, . . . , aj−1, z, aj+1, . . . , an+1; P )

det V (a; P ) , i = 1, . . . , n + 1, (3.7) con li(aj) = δij, e da cui otteniamo il polinomio interpolante i punti dell’insieme A

pn(z) = n+1"

i=1

f (ai)li(z). (3.8)

Ora, se l’insieme dei punti A ⊂ K, di cardinalit`a n + 1, `e tale da massimizzare il valore assoluto del determinante della matrice V (a; P ) — tali punti sono detti punti di Fekete, (cf [2]) — dato che |li(z)| ≤ 1 e li(ai) = 1, la costante di Lebesgue (cf. [11]), per definizione

sar`a ΛA:= max z∈K n+1 " i=1 |li(z)| ≤ max z∈K n+1 " i=1 1 = n + 1 (3.9)

(15)

3.1. WEAKLY ADMISSIBLE MESHES 15 e che coinvolge n + 1 variabili complesse. Tale problema `e classificato come NP-hard, e per questo motivo si usa ricavare i punti con degli algoritmi greedy (letteralmente“golosi”) che lavorano su delle discretizzazioni del compatto K, e che ricavano, quindi, dei punti approssimati. E’ chiaro che queste discretizzazioni non possono essere scelte arbitraria-mente, ma dovranno essere sufficientemente grandi e dense tali da approssimare i punti di Fekete, o quantomeno - e nello specifico sar`a questo il nostro caso - da avere la loro stessa distribuzione asintotica al crescere del grado di interpolazione (si veda [1]) . D’altra parte, per ragioni di tipo computazionale, richiederemo che questi insiemi siano di cardi-nalit`a minima indispensabile per raggiungere un buon livello di approssimazione. Un tipo di discretizzazioni che raggiungono lo scopo sono le mesh debolmente ammissibili (Weakly Admissibile Meshes), di cui ricordiamo la definizione di seguito:

Definizione 2. Dato un compatto K ⊂ C, una mesh debolmente ammissibile (di seguito abbreviata con WAM), `e una sequenza di sottoinsiemi discreti Mn⊂ K, tale che valga la

seguente disuguaglianza polinomiale

%p%K≤ Cn%p%Mn, ∀p ∈ Pn(K) (3.10)

dove Cn> 0 e card(Mn) cresce al pi`u in maniera polinomiale in n.

Una mesh si dice ammissibile (di seguito abbreviata con AM) se `e una WAM in cui la successione Cn `e limitata, ossia Cn≤ C, ∀n ∈ N.

Si possono dimostrare una serie di propriet`a interessanti per le (W)AM, di cui ricor-diamo le seguenti quattro:

1. per mappe affini di del dominio, limmagine di una (W)AM `e ancora una (W)AM, con la stessa costante C;

2. ogni sequenza di insiemi contenenti Mn, con cardinalit`a a crescita polinomiale, `e una

(W)AM con la stessa costante Cn;

3. ogni sequenza di insiemi unisolventi di interpolazione la cui costante di Lebesgue cresce al pi`u in modo polinomiale con il grado n `e una WAM, con Cn la costante di

Lebesgue stessa;

4. un’unione finita di(W)AM `e una(W)AM per la corrispondente unione di compatti, con costante Cn il massimo delle corrispondenti costanti.

Prima di descrivere l’algoritmo di estrazione dei punti di Leja, vediamo come costruire delle WAM di cardinalit`a minima da utilizzare come input. Il punto di partenza, dato un compatto K ∈ C `e la disuguaglianza di Markov, che `e soddisfatta se esistono delle costanti ν e µ , entrambe positive, tali che

%p(%K ≤ µ(deg(p))ν%p%K, ∀p ∈ Pn(K) (3.11)

(16)

Teorema 5. (Pommerenke, [8]) Ogni K ∈ C compatto connesso, che non sia un singolo punto, soddisfa la disuguaglianza di Markov per µ = 2cap(K)e , e ν = 2, dove cap(K) `e la capacit`a logaritmica1 dell’insieme K.

Ricordando che il diametro di un insieme `e la massima distanza tra tutte le coppie di punti appartenenti a quell’insieme, e dato che per un insieme compatto K vale la relazione cap(K) diam(K)4 , (cf. [10]), `e sufficiente utilizzare un limite inferiore per il diametro di K, e applicare la seguente

Proposizione 1. (Piazzon, Vianello, [7]) Sia C > 1 e sia K ∈ C compatto connesso che soddisfa la disuguaglianza di Markov come nel Teorema 1. Sia la frontiera di K data da una curva C1 descritta da γ : [a, b] → ∂K, con la condizione che max

t∈[a,b]|γ((t)| ≤ α .

Allora gli insiemi Mn= % γ # a +k(b− a) M − 1 $ : k = 0, . . . , M − 1, n ∈ N∗ & , (3.12) dove M = ' C(b− a)αen2 (C− 1)diam(K) ( , (3.13)

formano una mesh ammissibile per K.

Da questo risultato discende un corollario che utilizzeremo per i nostri esperimenti numerici. In buona sostanza non facciamo altro che applicare la Proposizione 1 al caso dell’ellisse, che come noto pu`o essere scritta come curva parametrica tramite la relazione

γ(t) = a sin(t) + ib cos(t), a, b∈ R, t ∈ [0, 2π] (3.14) dove a e b sono le lunghezze in modulo dei suoi semiassi.

Corollario 1. Data un’ellisse parametrizzata come in (3.11) essa soddisfa alle ipotesi della Proposizione 1 e pertanto la successione di insiemi Mn, definita come sopra, forma una

mesh ammissibile di costante C, e con diam(K) = max{a, b}, e α = 2 · max{a, b}.

Dimostrazione. La curva γ definita in (3.11) che descrive l’ellisse, non solo `e di classe C1 ma addirittura di classe C∞ in quanto somma di funzioni di classe C∞. Inoltre

|γ((t)| = |a sin(t) + ib cos(t)| ≤ |a sin(t)| + |i||b cos(t)| ≤ |a| + |b| ≤ 2 max{a, b} =: α (3.15) Possiamo quindi applicare la Proposizione 1, ricordando che diam(K) altri non `e che l’asse maggiore, e quindi risulta

M = ' 4πCen2 C− 1 ( (3.16)

(17)

3.2. ALGORITMO DLP 17 Osservazione 2. Per ridurre ulteriormente la cardinalit`a della mesh senza comprometter-ne la funzionalit`a, nei codici MATLAB useremo la seguente parametrizzazione equivalente dell’ellisse: γ(t) = a2sin(t) + i2bcos(t). Questo ci permetter`a di ridurre α alla quantit`a max{a, b} e quindi di ridurre ulteriormente la cardinalit`a M della mesh.

Osservazione 3. Grazie alla Proposizione 1 abbiamo costruito una mesh che cresce in maniera quadratica rispetto al grado massimo del polinomio. Sperimentalmente si verifica che `e possibile creare delle mesh di cardinalit`a inferiore, ma che discretizzano comunque bene il compatto K. Nei nostri programmi faremo un confronto fra una mesh di cardinalit`a che cresce con n2, e una che invece cresce con n log n. Vi `e inoltre evidenza sperimentale

del fatto che `e possibile costruire delle buone mesh di cardinalit`a 2n e 3n.

Per il caso n2, invece, un’ulteriore riduzione dei punti della mesh che utilizzeremo nei codici sar`a inoltre motivata dal fatto che, nel caso specifico dell’ellisse, vale 2cap(K) > diam(K), e quindi si porr`a

M = '

4πCnmax{a, b}en2

(Cn− 1)(a + b)

(

(3.17)

3.2

Algoritmo DLP

Siamo finalmente pronti per definire l’algoritmo di estrazione dei punti discreti di Leja, che di seguito chiameremo algoritmo DLP (Discrete Leja Points). Come detto in precedenza, tale algoritmo prende in input la nostra WAM, crea la matrice rettangolare di Vandermonde A = V (a; P ) nella base scelta P , e di seguito estrae i punti di Leja in un vettore ξ. Ricordiamo che il nostro scopo `e massimizzare il determinante di tale matrice; per farlo l’algoritmo DLP effettua la decomposizione LU della matrice, ossia decompone la matrice A nel prodotto di una matrice triangolare inferiore L con diagonale unitaria e di una matrice triangolare superiore U . Questa decomposizione avviene tramite l’eliminazione di Gauss, che determina i pivot nel seguente modo:

• Il primo pivot `e quell’elemento Ar11 tale che |Ar11| sia massimo con r1 = 1, . . . , n

• Ogni riga j #= r1viene rimpiazzata da s`e stessa meno Aj1/Ar11 volte la r1-esima riga.

In questo modo otteniamo una matrice equivalente alla prima con il pivot in posizione {r1, 1}, e le entrate aj1 = 0 per j #= r1. Infine con una semplice permutazione, si

scambia la prima riga con quella contenente il pivot.

• Si applica quindi lo stesso procedimento alla sottomatrice A1 = A2≤i,2≤j, e alle

sottmatrici successive fino ad esaurire la dimensione di A.

(18)

le matrici di permutazione hanno determinante ±1, mentre le matrici triangolari hanno determinante pari al prodotto degli elementi in diagonale, otteniamo che

| det(P A)| = | det(A)| = | det(LU)| = | det(U)|, (3.18) cio`e il prodotto dei pivot. Cerchiamo di capire cosa abbiamo ottenuto: ad ogni passo dell’eliminazione di Gauss determiniamo il pivot scegliendo l’elemento di modulo massimo nella prima colonna della (sotto)matrice considerata. Questo pivot viene inserito nella diagonale della matrice U , ed essendo questa triangolare contribuisce a renderne massimo il determinante. Al termine dell’iterazione avremo dunque massimizzato il determinante della matrice A.

Scriviamo quindi ordinatamente l’algoritmo DLP, usando uno pseudo-codice in MATLAB: Algoritmo DLP

• a = An={a1, . . . , aM};

• A = V (a; P );

• [L, U, σ] = LU(A,’vector’); % σ vettore di permutazione • ind = σ(1 : N); ξ = a(ind) % Estrazione dei punti

Osservazione 4. Si presti attenzione alla possibilit`a che ci siano dei problemi di malcondi-zionamento della matrice di Vandermonde. Ci`o `e dovuto all’utilizzo della base monomiale, che rischia di far terminare l’algoritmo per singolarit`a della matrice. Per risolvere il pro-blema, normalmente, `e sufficiente eseguire un paio di fattorizzazioni QR sulla matrice A, che sostituiscono la base monomiale con una base ortogonale. Questo sistema, tuttavia, funziona bene solo fino a gradi di interpolazione non troppo elevati, e in ogni caso l’algorit-mo perde parte della sua efficienza. Pertanto si `e soliti (lo vedrel’algorit-mo anche nei nostri codici) cambiare la base monomiale standard (la indichiamo ad esempio con{1, z, . . . , zn}) con una

base monomiale shiftata nel baricentro b della mesh e scalata del valore S = max|zi − b|

(gli zi sono i nodi della mesh), ossia

(19)
(20)
(21)

Capitolo 4

Descrizione del metodo e risultati

4.1

Il metodo

Nei capitolo precedente abbiamo visto come si calcolano i DLP. Vediamo ora in che modo possono essere utilizzati nell’ambito dell’approssimazione delle funzioni di matrici. Data una funzione di matrice f e una matrice A di spettro σ(A), tale per cui la definizione di f (A) abbia senso, il nostro metodo di approssimazione polinomiale si articola nel modo seguente:

1. Determinazione del compatto K contenente lo spettro di A. Tale passaggio `e ne-cessario dalla definizione di funzione di matrice. Quello che faremo, quindi, data una generica matrice quadrata A, sar`a approssimare gli autovalori e costruire la pi`u piccola ellisse che li contiene.

2. A partire dal bordo di questa ellisse costruiremo una WAM da utilizzare per ricavarci i nodi di interpolazione.

3. Estraiamo dalla WAM i punti di Leja con l’algoritmo DLP.

4. Con il metodo di Newton determiniamo il polinomio interpolante, e il valore della funzione con una ricorrenza a tre termini.

Per ognuno dei passi del metodo abbiamo prodotto delle routine in MATLAB, il cui codice `e riportato in appendice, con le quali abbiamo effettuato i test e ricavato i risultati numerici, che descriveremo di seguito.

4.1.1 Costruzione dell’ellisse

In questo passo, l’unica cosa cui bisogna stare attenti `e la scelta della matrice A, dato che le funzioni radice quadrata, esponenziale e logaritmo richiedono delle caratteristiche particolari sullo spettro. In particolare:

(22)

• per la radice quadrata e il logaritmo di matrice sceglieremo la matrice A con lo spettro σ(A) contenuto tutto nel semipiano complesso destro, ossia tutti con tutti gli autovalori con parte reale positiva.

• per l’esponenziale di matrice sceglieremo la matrice A con ρ(A) < 1. Se fosse infatti ρ(A)≥ 1 l’esponenziale tenderebbe, in modulo, ad esplodere, e quindi con il metodo polinomiale non otterremmo una buona approssimazione.

Una volta ricavato lo spettro, si considerano gli autovalori con massima e minima parte reale, e quello con massima parte immaginaria, e si determinano cos`ı assi e centro dell’ellisse.

Costruiamo poi l’ellisse con una semplice function (vedi Codice 1) che prende in input i semiassi e le coordinate del centro, e utilizza la parametrizzazione definita in (3.11).

4.1.2 Costruzione della mesh

Il programma afek_ellipse.m (vedi Codice 2) richiede quali input i parametri dell’ellisse (semiassi, centro) e il grado di interpolazione e costruisce la mesh da cui poi verranno estratti i punti di Leja. Come anticipato nel precedente capitolo, sono presenti due metodi per il calcolo delle mesh: il primo (selezionabile ponendo la variabile extraction_type=1), utilizza la formula ottenuta nel Corollario 1, e quindi genera una mesh che ha crescita quadratica con n; il secondo invece crea una mesh di cardinali`a che cresce con n log n. Le costanti C sono state ricavate sperimentalmente.

Il seguente grafico mostra come cresce la costante di Lebesgue in funzione del grado di interpolazione rispetto alla crescita di tipo lineare, sia nel caso del metodo n2, sia nel caso del metodo n log n.

(23)

4.1. IL METODO 23 Notiamo che nel caso (a) la precisione `e sicuramente maggiore, ma nei nostri test ci siamo dovuti arrestare al grado di interpolazione 10, perch´e i tempi di esecuzione erano troppo elevati. Nel caso (b) invece l’andamento della costante di Lebesgue `e oscillante, ma comunque in media `e sub-lineare. Inoltre i tempi di esecuzione sono notevolmente pi`u lenti. Quindi il metodo n log n assicura non solo una crescita moderata della costante di Lebesgue, ma anche un notevole risparmio in termini di operazioni macchina.

4.1.3 Algoritmo DLP: estrazione dei punti di Leja

L’estrazione dei punti viene eseguita tramite la routine approx_fekete.m. (vedi Codice 3) Si noti che con tale programma `e possibile estrarre anche i punti approssimati di Fekete, che non sono oggetto di questo lavoro, ma che ci tornano utili per confrontare i risultati numerici. I punti approssimati di Fekete sono dei punti che approssimano i punti di Fekete nel continuno, e, come i punti di Leja, sono considerati dei buoni punti di interpolazione. Come si pu`o vedere, il programma prende la mesh dell’ellisse che abbiamo creato con la routine precedente, costruisce la matrice di Vandermonde gi`a nella base riscalata e shif-tata (si veda il Capitolo 3, Oss. 4), effettua due di fattorizzazioni QR, e poi in base alla

extraction_typescelta applica l’algoritmo DLP (oppure l’algoritmo AFP per gli Approxi-mate Fekete Points) e ci restituisce i punti che utilizzeremo per l’interpolazione.

Vediamo ora i risultati. Abbiamo effettuato il test su una mesh di grado 30 per un’el-lisse di assi a = 0.1 e b = 1, centrata nell’origine. Una volta ottenuti i punti sia con l’algoritmo AFP sia con l’algoritmo DLP, testiamo i nodi di interpolazione su una funzio-ne. Ci limiteremo per ora al caso scalare; per i risultati nel caso matriciale rimandiamo la trattazione alla sezione successiva. La funzione da interpolare che utilizzeremo come test `e una funzione esponenziale definita da y(z) = e5z.

(a) Costanti di Lebesgue, rispetto alla crescita lineare: gli asterischi rappresentano gli AFP, i triangoli i DLP

(24)

Di nuovo, notiamo come la crescita della costante di Lebesgue sia molto pi`u lenta negli AFP che non nei DLP, pur mantenendosi questa, in media, al di sotto della crescita di tipo lineare (si confronti con la linea rossa). Osserviamo per`o che, in ogni caso, l’errore di interpolazione dei DLP a gradi alti `e per la nostra funzione test quasi indentico.

Facendo riferimento a quanto visto nel paragrafo 3.2, in cui spiegavamo il funzionamento dell’algoritmo di estrazione, mostriamo anche che se fissiamo un grado (sia questo m) per l’interpolazione, i punti DLP estratti per il grado m sono tali che un suo sottoinsieme dei primi k elementi `e buono per l’interpolazione. Vediamo di seguito un esempio con m = 30, in cui calcoliamo le costanti di Lebesgue dei set di punti{x1, . . . , xk} per k = 1, . . . m. (Si

veda a tal proposito il Codice 4).

N log ( N ) METHOD . >> DLP .

DEG : 0 PTS : 1 LEB : 5.00000 e +04 WAM CARD .: 511

DEG : 1 PTS : 2 LEB : 2.99765 e +00 WAM CARD .: 511

DEG : 2 PTS : 3 LEB : 1.28561 e +00 WAM CARD .: 511

DEG : 3 PTS : 4 LEB : 2.98982 e +00 WAM CARD .: 511

DEG : 4 PTS : 5 LEB : 2.35168 e +00 WAM CARD .: 511

DEG : 5 PTS : 6 LEB : 3.96907 e +00 WAM CARD .: 511

DEG : 6 PTS : 7 LEB : 2.75498 e +00 WAM CARD .: 511

DEG : 7 PTS : 8 LEB : 4.82396 e +00 WAM CARD .: 511

DEG : 8 PTS : 9 LEB : 4.81389 e +00 WAM CARD .: 511

DEG : 9 PTS : 10 LEB : 4.66208 e +00 WAM CARD .: 511

DEG : 10 PTS : 11 LEB : 4.71705 e +00 WAM CARD .: 511

DEG : 11 PTS : 12 LEB : 9.52893 e +00 WAM CARD .: 511

DEG : 12 PTS : 13 LEB : 7.10738 e +00 WAM CARD .: 511

DEG : 13 PTS : 14 LEB : 6.81177 e +00 WAM CARD .: 511

DEG : 14 PTS : 15 LEB : 6.79881 e +00 WAM CARD .: 511

DEG : 15 PTS : 16 LEB : 6.01624 e +00 WAM CARD .: 511

DEG : 16 PTS : 17 LEB : 9.85031 e +00 WAM CARD .: 511

DEG : 17 PTS : 18 LEB : 8.10743 e +00 WAM CARD .: 511

DEG : 18 PTS : 19 LEB : 7.69111 e +00 WAM CARD .: 511

DEG : 19 PTS : 20 LEB : 1.29537 e +01 WAM CARD .: 511

DEG : 20 PTS : 21 LEB : 5.84122 e +00 WAM CARD .: 511

DEG : 21 PTS : 22 LEB : 1.03854 e +01 WAM CARD .: 511

DEG : 22 PTS : 23 LEB : 9.12034 e +00 WAM CARD .: 511

DEG : 23 PTS : 24 LEB : 1.06420 e +01 WAM CARD .: 511

DEG : 24 PTS : 25 LEB : 9.07345 e +00 WAM CARD .: 511

DEG : 25 PTS : 26 LEB : 1.20676 e +01 WAM CARD .: 511

DEG : 26 PTS : 27 LEB : 1.01271 e +01 WAM CARD .: 511

DEG : 27 PTS : 28 LEB : 7.88695 e +00 WAM CARD .: 511

DEG : 28 PTS : 29 LEB : 3.20247 e +01 WAM CARD .: 511

DEG : 29 PTS : 30 LEB : 1.62282 e +01 WAM CARD .: 511

(25)

4.1. IL METODO 25

L’andamento delle costanti ci dice che, anche in questo caso, i punti di interpolazione sono buoni.

Osservazione 6. Si presti attenzione a non confondere l’esito di questo test con quello mostrato nel Paragrafo 4.1.2, in cui per m = 1, . . . , 30 viene calcolata la costante di Lebe-sgue dei DLP di grado m. In quest’ultimo test, invece, la cardinali`a della WAM `e fissata, mentre varia il grado della costante di Lebesgue.

4.1.4 Interpolazione delle funzioni di matrici con il metodo di Newton

Ricordiamo che il nostro scopo `e l’ approssimazione delle funzioni test con dei polinomi. Calcoleremo cio`e

Ym= pm−1(A) ∼= f (A) (4.1)

dove pm−1 ∈ Pm−1(K). L’interpolazione avverr`a tramite il metodo di Newton, che

ricor-diamo essere definito nella seguente maniera:

pm−1(z) = f0+ f1(z− ξ1) +· · · + fm−1(z− ξ1) . . . (z− ξm−1) (4.2)

dove gli {ξi}i=1,...,m sono punti distinti del piano complesso (ossia i nostri nodi di

in-terpolazione: i punti di Leja), e dove le fk sono le note differenze divise del metodo di

Newton:

f0 = f [ξ1], fk = f [ξ1, . . . , ξk+1], k = 1, . . . , m− 1 (4.3)

(26)

che sar`a quella che useremo nei nostri codici. La routine che implementa la ricorrenza `e riportata nel Codice 4. Ai risultati numerici affiancheremo una stima dell’errore, os-sia confronteremo il valore di Ym con il valore ottenuto usando le funzioni gi`a presenti in

MATLAB per il calcolo di esponenziale, logaritmo e matrice quadrata di matrice, ossia le funzioniexpm, logm, sqrtm. Questi programmi sfruttano le tecniche di calcolo spiegate nel capitolo 2.

4.2

Risultati: un problema di convezione-diffusione

Produrremo le matrici test a partire da un classico problema fisico di convezione-diffusione. Tale matrice si ricava dalla discretizzazione dell’operatore

L(U) = −U((+ c U( (4.5)

dove U ∈ C([0, 1]), e c `e una costante. In forma matriciale otteniamo una matrice tridia-gonale A definita positiva che utilizzeremo per il calcolo di radice quadrata e logaritmo di matrice. Per l’esponenziale di matrice, invece, utilizzeremo −A, che avr`a tutti gli autova-lori negativi (questo per evitare che la matrice diventi troppo grande e dia quindi problemi nell’approssimazione polinomiale).

I test sono stati effettuati su matrici di dimensione 50× 50, mentre il grado m dell’inter-polazione si ferma a 45÷ 47 in quanto a gradi superiori si verificano problemi di malcondi-zionamento che, probabilmente, potrebbero essere risolti con una scelta migliore della base polinomiale della matrice di Vandermonde. Questo ci permetterebbe di raggiungere una migliore convergenza del metodo che, soprattutto per la radice quadrata e il logaritmo, osserviamo essere un po’ lenta.

(27)

4.2. RISULTATI: UN PROBLEMA DI CONVEZIONE-DIFFUSIONE 27

(a) Esponenziale di matrice, c=0 (b) Esponenziale di matrice, c=4

(c) Radice quadrata di matrice, c=0 (d) Radice quadrata di matrice, c=4

(28)
(29)

Appendice A

Codici MATLAB

Alleghiamo di seguito i codici scritti in linguaggio MATLAB utilizzati dal Metodo polino-miale descritto nel Capitolo 4.

A.1

Codice 1: Costruzione dell’ellisse

% -% Input : matrice q u a d r a t a A

% Output : a u t o v a l o r i di A , s e m i a s s i e centro dell ’ ellisse

% che c o n t i e n e lo spettro di A

% -spect = eig ( A );

re_min = min ( real ( spect )); re_max = max ( real ( spect )); im_max = max ( imag ( spect )); im_min = min ( imag ( spect )); a = abs (( re_max - re_min )/2)*2; b = abs (( im_max - im_min )/2)*2; x0 =( re_max + re_min )/2 y0 =0; % -% Ellipse % -f u n c t i o n z = ellipse ( theta ,a ,b , x0 , y0 )

z =( a /2)* cos ( theta )+( b /2)* i * sin ( theta )+ x0 + i * y0 ;

(30)

A.2

Codice 2: Costruzione della mesh

f u n c t i o n [ fek , mesh_ellipse ,C , ind ]= a f e k _ e l l i p s e (a ,b , x0 , y0 , deg , e x t r a c t i o n _ t y p e ) w a m _ t y p e =2; switch w a m _ t y p e case 1 fprintf ( ’\ n \ t N ^2 METHOD . ’); m e s h _ e l l i p s e = W A M _ E l l i p s e (a ,b , x0 , y0 , deg ); case 2

fprintf ( ’\ n \ t N log ( N ) METHOD . ’); C =5;

m e s h _ e l l i p s e = W A M _ E l l i p s e _ n l o g n (a ,b , x0 , y0 , deg , C ); end

fprintf ( ’\ n \ t WAM D I M E N S I O N : %5.0 f ’ , length ( m e s h _ e l l i p s e )); [ fek ,C , ind ]= a p p r o x _ f e k e t e ( mesh_ellipse , deg , e x t r a c t i o n _ t y p e );

% -% A D D I T I O N A L R O U T I N E S . % % -% W A M _ E l l i p s e % -f u n c t i o n Mn = W A M _ E l l i p s e (a ,b , x0 , y0 ,n , C ) % a , b : ELLIPSE AXIS . % x0 , y0 : ELLIPSE CENTER . % n : DEGREE . % C : WAM FACTOR .

% Mn : WAM ON THE ELLIPSE DEFINED BY a ,b , x0 , y0 , n . if nargin < 6

C =200; end

(31)

A.3. CODICE 3: ESTRAZIONE DEI PUNTI DI LEJA 31 bv =2* pi ; av =0; alpha = max (a , b ); NN =( n ^2)*( bv - av )* alpha * mu /2; M = ceil ( NN * C /( C -1))+1; k =0: M -1; v = k *2* pi /( M -1); Mn = ellipse (v ,a ,b , x0 , y0 ); % -% W A M _ E l l i p s e % -f u n c t i o n Mn = W A M _ E l l i p s e _ n l o g n (a ,b , x0 , y0 ,n , C ) % a , b : ELLIPSE AXIS . % x0 , y0 : ELLIPSE CENTER . % n : DEGREE . % C : WAM FACTOR .

% Mn : WAM ON THE ELLIPSE DEFINED BY a ,b , x0 , y0 , n . if nargin < 6 C =200; end M = ceil ( C * n * log ( n )); k =0: M -1; v = k *2* pi /( M -1); Mn = ellipse (v ,a ,b , x0 , y0 );

A.3

Codice 3: Estrazione dei Punti di Leja

f u n c t i o n [ fek ,C , ind ] = a p p r o x _ f e k e t e ( mesh , deg , e x t r a c t i o n _ t y p e )

% numero di i t e r a z i o n i QR per r i d e f i n i r e la base niter =2;

% shift e r i s c a l a m e n t o della base m o n o m i a l e

b = sum ( mesh )/ length ( mesh ); % b a r i c e n t r o della mesh S = max ( abs ( mesh - b )); S = max ( abs ( mesh - b )); % c o e f f i c i e n t e della r i s c a l a t u r a

(32)

% c o s t r u z i o n e matrice di V a n d e r m o n d e for j =1: deg +1

V (j ,:)= z .^( j -1); % riga j - esima della matrice di V a n d e r m o n d e end ;

% f a t t o r i z z a z i o n i QR B =V ’;

P = eye ( length ( V (: ,1)));

% matrice unitaria , m e m o r i z z a i c a m b i a m e n t i di base for it =1: niter ,

[Q , R ]= qr (B ,0);

U = inv ( R ); % matrice di c a m b i a m e n t o di base

B = B * U ; % matrice di V a n d e r m o n d e nella nuova base P = P * U ; % m e m o r i z z a z i o n e c a m b i a m e n t o di base end ; % s o l u z i o n e sistema lineare C =B ’; m = ones ( length ( C (: ,1)) ,1); switch e x t r a c t i o n _ t y p e case 1 fprintf ( ’\ n \ t >> AFP . ’) % vettore dei termini noti w = C \ m ;

% indice dei pesi non nulli ind = find ( abs ( w ) >0);

case 2

% a l g o r i t m o LU

fprintf ( ’\ n \ t >> DLP . ’)

(33)

A.4. CODICE 4: INTERPOLAZIONE CON IL METODO DI NEWTON 33

end

% punti di Fekete a p p r o s s i m a t i c o r r i s p o n d e n t i fek = mesh ( ind );

A.4

Codice 4: Interpolazione con il metodo di Newton

A titolo di esempio, vediamo la routinem_leja.m nel caso dell’esponenziale.

f u n c t i o n Y = m_leja ( A ) deg =30;

% E s t r a z i o n e punti di fekete / leja

[ fek , mesh_ellipse ,C , ind ]= a f e k _ e l l i p s e (a ,b , x0 , y0 , deg , e x t r a c t i o n _ t y p e ); figure (3)

plot ( real ( fek ) , imag ( fek ) , ’ r * ’)

% I n t e r p o l a z i o n e : calcolo delle d i f f e r e n z e divise XX = fek ;

YY = feval ( ’ exp ’ , XX );

[d , Df , c , f ] = n e w t o n _ i n t e r p o l a t i o n _ v e t t ( XX , YY , XX ); % r i c o r r e n z a a tre termini

m = length ( XX );

Y (: ,: ,1)= zeros ( size ( A )); Y (: ,: ,2)= f (1)* eye ( size ( A )); for i =3: m Y (: ,: , i )= Y (: ,: , i -1)+( d (i -1)/ d (i -2))*( A - XX (i -2)* eye ( size ( A )))*( Y (: ,: , i -1) - Y (: ,: , i -2)); end eA = expm ( A ); for i =1: m E (: ,: , i )= Y (: ,: , i ) - eA ; end for i =1: m norma ( i )= norm ( E (: ,: , i )); end

(34)
(35)

Bibliografia

[1] L. Bos, J.-P. Calvi, N. Levenberg, A. Sommariva, M. Vianello, Geometric Weakly Admissible Meshes, Discrete Least Squares Approximations and Approximate Fekete Points, preprint, 2009.

[2] L. Bos, S. De Marchi, A.Sommariva, M.Vianello Computing multivariate Fekete and Leja points by numerical linear algebra, 2010, preprint.

[3] L. Bos, S. De Marchi, A. Sommariva, M. Vianello, On Multivariate Newton Interpolation at Discrete Leja Points, 2011, to appear.

[4] L. Bos, S. De Marchi, A. Sommariva, M. Vianello Weakly Admissible Meshes and Discrete Extremal Sets, 2011, preprint.

[5] W. Dijkstra, M.E. Hochstenbach, Numerical approximation of the logarithmic capacity, preprint

[6] Nicolas J. Higham, Function of Matrices: Theory and Computation, Siam, 2008. [7] F. Piazzon, M. Vianello Analytic transformations of admissible meshes

[8] Ch. Pommerenke, On the Derivate of a Polynomial, Michigan Math. J. 6 (373-375), 1959.

[9] A. Sommariva, Apprssimazione di funzioni, Dispense del corso di Analisi Numerica (last rev. 23/10/2010)

[10] M. Tsuji, Potential Theory in Modern Function Theory, Chelsea Publishing Co , 1975. [11] Wikipedia, (Lebesgue Constant interpolation) http://en.wikipedia.org/wiki/

Lebesgue_constant_(interpolation)

Riferimenti

Documenti correlati

ESERCIZIO 1. A) Generare una matrice Q, simmetrica e definita positiva, di dimensione 2 o possibilmente anche più alta (eventualmente seguire il suggerimento posto al fondo degli

Copyright© 1999-2007 owned by Ubaldo Pernigo, please contact: ubaldo@pernigo.com Licenza di questo documento: “GNU Free Documentation License&#34;.. GNU Free Documentation

Come vedi non è sempre facile trovare la radice quadrata di un numero (anche se si può fare una stima del risultato).. Con la calcolatrice è possibile ottenere un numero che

numero più piccolo di quello che hai trovato: invece di 6 scriverai 5. Ti sarai accorto che stai iniziando a fare gli stessi passi con i quali hai iniziato.A questo punto,

Un medico rileva che, dopo 4 giorni, il 20% degli abitanti è malato; quanto vale la costante c in questo casob. Applica la legge per prevedere la percentuale P di persone malate dopo

I quesiti sulle equazioni esponenziali o logarimiche suggeriscono prime sintetiche indicazioni. Equazione esponenziale L’incognita è esponente di una

I quesiti sulle proprietà dei logaritmi suggeriscono di tenere presenti queste proprietà in modo ‘intelligente’1. per saperle scegliere e

Una matrice quadrata, di ordine n , con elementi tutti nulli è detta matrice nulla di ordine n ... Matrice triangolare superiore.. matrice triangolare