Professional Documents
Culture Documents
Indice
1 Introduzione
2 Funzioni di matrici
2.1 Tecniche per il calcolo approssimato di
2.1.1 Serie di Taylor . . . . . . . . .
2.1.2 Diagonalizzazione di matrici . .
2.1.3 Decomposizione di Schur . . .
2.2 Alcuni esempi di funzioni di matrice .
2.2.1 Radice quadrata . . . . . . . .
2.2.2 Esponenziale di matrice . . . .
2.2.3 Logaritmo di matrice . . . . . .
.
.
.
.
.
.
.
.
7
8
8
9
9
10
10
11
12
13
14
17
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
di Newton
. . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
21
21
21
22
23
25
26
A Codici MATLAB
A.1 Codice 1: Costruzione dellellisse . . .
A.2 Codice 2: Costruzione della mesh . . .
A.3 Codice 3: Estrazione dei Punti di Leja
A.4 Codice 4: Interpolazione con il metodo
.
.
.
.
.
.
.
.
.
.
.
.
29
29
30
31
33
funzioni di matrici
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
di Newton
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
INDICE
Capitolo 1
Introduzione
Data una matrice A Rnn , e una funzione di matrice f analitica in una certa regione
del piano complesso, ci poniamo il problema di calcolare f (A) ottenendo linterpolazione
polinomiale di f con il metodo di Newton. I nodi di interpolazione saranno i cosiddetti
punti di Leja, ottenuti tramite lalgoritmo 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 dallalgoritmo 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 prodotto di matrici ad ogni passo delliterazione (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 lIntegrale di Cauchy per funzioni di una variabile complessa, e successivamente descrivendo le principali tecniche gi`a esistenti per il calcolo approssimato di radice
quadrata, esponenziale e logaritmo.
Nel Capitolo 3 vediamo in dettaglio lapprossimazione tramite i punti di Leja discreti. In
particolare mostriamo come sono ottenuti numericamente a partire da una discretizzazione di un insieme compatto, detto Mesh debolmente ammissibile, e perche sono importanti
5
CAPITOLO 1. INTRODUZIONE
Capitolo 2
Funzioni di matrici
Data una matrice A Rnn e una funzione scalare f , definiamo limmagine 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 loperazione di divisione in ambito scalare con la moltiplicazione per la matrice inversa in ambito matriciale.
Si consideri ad esempio la funzione scalare
f (z) =
1 + z2
, t #= 1
1 z2
(2.1)
(2.2)
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
nellambito 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 ancora, 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
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 Cnn ,
`e definita la f (A) come serie di potenze, cio`e da
f (A) =
"
k=0
ak (A I)k ,
(2.5)
2.1.2
s1
"
k=0
ak (A I)k %
1
ds f
max %(A I)s s (I + t(A I))%.
s! 0t1
dt
(2.6)
Diagonalizzazione di matrici
2.1.3
Decomposizione di Schur
dove i = tii , Sij `e linsieme 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 laltro, delle formule esplicite per il calcolo
delle fij nelle forme canoniche di Jordan e dei blocchi triangolari 2x2 (Teorema di KennyLaub, [6, p. 76]).
10
Il problema di questo metodo consiste nel fatto che ha un costo computazione elevatissimo
(addirittura O(sn )); questo problema `e stato parzialmente risolto dallalgoritmo di Parlett
(cf. [6, p. 86], che riduce il numero di operazioni a O(2n3 /3). Tuttavia, per come `e costruito
lalgoritmo, esso non funziona nel caso in cui la matrice T abbia autovalori ripetuti. Per
ovviare questo problema si usa utilizzare lalgoritmo suddividendo T in blocchi diagonali
2x2.
2.2
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 lunica radice quadrata X definita positiva. Una
tale matrice non `e sempre definita, infatti notiamo che dalla definizione di funzione di
matrice si ha
!
2
A= A
(t2 I + A)1 dt.
(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 lesistenza di radici quadarate reali:
Teorema 4. [6, p. 138] Sia A Rnn 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 dellequazione X 2 = A, e che esista una qualche matrice E tale per cui Y + E = X. Allora
A = (Y + E)2 = Y 2 + Y E + EY + E 2 . Trascurando il termine di secondo ordine E 2
abbiamo la seguente ricorrenza:
X0 , Xk Ek + Ek Yk = A Xk2 , Xk + 1 = Xk + Ek , k = 0, 1, 2, . . .
(2.9)
11
2.2.2
Esponenziale di matrice
e =
"
Ak
k=0
k!
(2.10)
e che la serie di potenze relativa a tale funzione ha raggio di convergenza infinito. Quello dello sviluppo di Taylor `e il metodo usato dallo stesso MATLAB per il calcolo (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
A
eA = lim (I + )s .
(2.11)
s
s
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,
che quindi si amplificano nel valore finale della frazione. Tuttavia, per ottenere un calcolo
pi`
u accurato delle differenze divise, si pu`o utilizzare un risultato dovuto a Opitz [1,pag.
250].
12
2.2.3
Logaritmo di matrice
A2 A3
+
...,
2
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
((I A)(I + A)1 )2k+1 , min )(i (A)) > 0
i
2k + 1
(2.13)
2
+ 2i Avv(log 2 log 1 )
1
(2.14)
1
2
log( 1+z
1z ), concludiamo che
f [1 , 2 ] = t12
2 arctan h(z) + 2U
2 1
(2.16)
Capitolo 3
Vediamo subito come la crescita moderata di n renda i DLP dei buoni punti di approssimazione. Ricordiamo che definito pn il polinomio di miglior approssimazione per la
funzione f , per un noto teorema (cf. [9]) vale la relazione:
%f pn % (1 + n )%f pn %
(3.1)
(3.2)
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
n
(3.3)
14
3.1
n+1
"
cj Pj (ai ) = f (ai ),
i = 1, . . . , n + 1
(3.5)
j=1
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 )]1i,jn+1 `e una matrice di Vandermonde, c `e il vettore dei coefficienti e F `e il vettore dei valori f (ai ). Se i punti di A 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) =
i = 1, . . . , n + 1,
(3.7)
n+1
"
(3.8)
i=1
i=1
zK
i=1
I punti di Fekete, quindi, data la crescita moderata della costante di Lebesgue, costituiscono un buon insieme di punti di interpolazione, e si nota che gli stessi punti e la costante
di Lebesgue sono indipendenti dalla base polinomiale scelta. Il problema `e che, dal punto di vista computazionale, questi punti nel continuo sono difficili da calcolare, perche la
massimizzazione del determinante della matrice di Vandermonde `e un problema di ottimizzazione non lineare da applicare ad una matrice di dimensione arbitrariamente grande
15
p Pn (K)
(3.10)
p Pn (K)
(3.11)
16
Teorema 5. (Pommerenke, [8]) Ogni K C compatto connesso, che non sia un singolo
e
punto, soddisfa la disuguaglianza di Markov per = 2cap(K)
, e = 2, dove cap(K) `e la
1
capacit`
a logaritmica dellinsieme K.
Ricordando che il diametro di un insieme `e la massima distanza tra tutte le coppie di
punti appartenenti a quellinsieme, e dato che per un insieme compatto K vale la relazione
cap(K) diam(K)
, (cf. [10]), `e sufficiente utilizzare un limite inferiore per il diametro di
4
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 C 1 descritta da : [a, b] K, con la condizione che maxt[a,b] | ( (t)| .
Allora gli insiemi
% #
$
&
k(b a)
Mn = a +
: k = 0, . . . , M 1, n N ,
(3.12)
M 1
dove
'
(
C(b a)en2
M=
,
(C 1)diam(K)
(3.13)
a, b R, t [0, 2]
(3.14)
17
3.2
Algoritmo DLP
Siamo finalmente pronti per definire lalgoritmo 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
lalgoritmo 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 leliminazione di Gauss,
che determina i pivot nel seguente modo:
Il primo pivot `e quellelemento Ar1 1 tale che |Ar1 1 | sia massimo con r1 = 1, . . . , n
Ogni riga j #= r1 viene rimpiazzata da s`e stessa meno Aj1 /Ar1 1 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 = A2i,2j , e alle
sottmatrici successive fino ad esaurire la dimensione di A.
Si `e dunque soliti scrivere la decomposizione tramite la formula P A = LU , dove P `e
la matrice di permutazione utilizzata per effettuare gli scambi, mentre U contiene nella
diagonale i pivot precedentemente trovati. Passando ai determinanti, e ricordando che
18
(3.18)
cio`e il prodotto dei pivot. Cerchiamo di capire cosa abbiamo ottenuto: ad ogni passo
delleliminazione di Gauss determiniamo il pivot scegliendo lelemento 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 delliterazione avremo dunque massimizzato il determinante
della matrice A.
Scriviamo quindi ordinatamente lalgoritmo 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)
(3.19)
Lo shift della base, in particolare, ha una valenza fondamentale nel calcolo dei punti e nel
garantire la loro bont`
a. Infatti, se il dominio non `e centrato nellorigine, mentre invece
parte della sua frontiera le si avvicina, si rischia di compromettere la simmetria nel risultato dellestrazione e quindi la bont`
a dei punti di interpolazione. Questo avviene perche
lalgoritmo estrae un maggior numero di punti lontano dallorigine.
19
20
Capitolo 4
Il metodo
Nei capitolo precedente abbiamo visto come si calcolano i DLP. Vediamo ora in che modo
possono essere utilizzati nellambito dellapprossimazione 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 necessario 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 lalgoritmo 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 dellellisse
In questo passo, lunica 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:
21
22
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
dellellisse.
Costruiamo poi lellisse 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
(a) Metodo n2
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, perche i tempi di esecuzione erano
troppo elevati. Nel caso (b) invece landamento 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
Lestrazione 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 dellellisse che abbiamo creato con la
routine precedente, costruisce la matrice di Vandermonde gi`a nella base riscalata e shiftata (si veda il Capitolo 3, Oss. 4), effettua due di fattorizzazioni QR, e poi in base alla
extraction_type scelta applica lalgoritmo DLP (oppure lalgoritmo AFP per gli Approximate Fekete Points) e ci restituisce i punti che utilizzeremo per linterpolazione.
Vediamo ora i risultati. Abbiamo effettuato il test su una mesh di grado 30 per unellisse di assi a = 0.1 e b = 1, centrata nellorigine. Una volta ottenuti i punti sia con
lalgoritmo AFP sia con lalgoritmo DLP, testiamo i nodi di interpolazione su una funzione. 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 .
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, lerrore 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
dellalgoritmo di estrazione, mostriamo anche che se fissiamo un grado (sia questo m) per
linterpolazione, i punti DLP estratti per il grado m sono tali che un suo sottoinsieme dei
primi k elementi `e buono per linterpolazione. 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
DEG :
1
DEG :
2
DEG :
3
DEG :
4
DEG :
5
DEG :
6
DEG :
7
DEG :
8
DEG :
9
DEG : 10
DEG : 11
DEG : 12
DEG : 13
DEG : 14
DEG : 15
DEG : 16
DEG : 17
DEG : 18
DEG : 19
DEG : 20
DEG : 21
DEG : 22
DEG : 23
DEG : 24
DEG : 25
DEG : 26
DEG : 27
DEG : 28
DEG : 29
DEG : 30
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
PTS :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
LEB :
5.00000 e +04
2.99765 e +00
1.28561 e +00
2.98982 e +00
2.35168 e +00
3.96907 e +00
2.75498 e +00
4.82396 e +00
4.81389 e +00
4.66208 e +00
4.71705 e +00
9.52893 e +00
7.10738 e +00
6.81177 e +00
6.79881 e +00
6.01624 e +00
9.85031 e +00
8.10743 e +00
7.69111 e +00
1.29537 e +01
5.84122 e +00
1.03854 e +01
9.12034 e +00
1.06420 e +01
9.07345 e +00
1.20676 e +01
1.01271 e +01
7.88695 e +00
3.20247 e +01
1.62282 e +01
1.81662 e +01
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
WAM
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
CARD .:
511
511
511
511
511
511
511
511
511
511
511
511
511
511
511
511
511
511
511
511
511
511
511
511
511
511
511
511
511
511
511
4.1. IL METODO
25
Landamento delle costanti ci dice che, anche in questo caso, i punti di interpolazione
sono buoni.
Osservazione 6. Si presti attenzione a non confondere lesito di questo test con quello
mostrato nel Paragrafo 4.1.2, in cui per m = 1, . . . , 30 viene calcolata la costante di Lebesgue dei DLP di grado m. In questultimo test, invece, la cardinali`
a della WAM `e fissata,
mentre varia il grado della costante di Lebesgue.
4.1.4
Ricordiamo che il nostro scopo `e l approssimazione delle funzioni test con dei polinomi.
Calcoleremo cio`e
Ym = pm1 (A)
(4.1)
= f (A)
dove pm1 Pm1 (K). Linterpolazione avverr`a tramite il metodo di Newton, che ricordiamo essere definito nella seguente maniera:
pm1 (z) = f0 + f1 (z 1 ) + + fm1 (z 1 ) . . . (z m1 )
(4.2)
dove gli {i }i=1,...,m sono punti distinti del piano complesso (ossia i nostri nodi di interpolazione: 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)
Con queste notazioni, si mostra che la (4.2) soddisfa la seguente ricorrenza a tre termini:
Y0 = O(m+1)(m+1)
Y1 = f 0 I
(4.4)
fm1
Ym = Ym1 +
(A m1 I)(Ym1 Ym2 ), m 2
fm2
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 dellerrore, ossia 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
funzioni expm, logm, sqrtm. Questi programmi sfruttano le tecniche di calcolo spiegate nel
capitolo 2.
4.2
(4.5)
dove U C([0, 1]), e c `e una costante. In forma matriciale otteniamo una matrice tridiagonale A definita positiva che utilizzeremo per il calcolo di radice quadrata e logaritmo di
matrice. Per lesponenziale di matrice, invece, utilizzeremo A, che avr`a tutti gli autovalori negativi (questo per evitare che la matrice diventi troppo grande e dia quindi problemi
nellapprossimazione polinomiale).
I test sono stati effettuati su matrici di dimensione 50 50, mentre il grado m dellinterpolazione si ferma a 45 47 in quanto a gradi superiori si verificano problemi di malcondizionamento 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.
Riportiamo di seguito i risultati con c = 0 e c = 4.
27
28
Appendice A
Codici MATLAB
Alleghiamo di seguito i codici scritti in linguaggio MATLAB utilizzati dal Metodo polinomiale descritto nel Capitolo 4.
A.1
29
30
A.2
a , b : ELLIPSE AXIS .
x0 , y0 : ELLIPSE CENTER .
n : DEGREE .
C : WAM FACTOR .
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 );
%-------------------------------------------------------------------------% WAM_Ellipse
%-------------------------------------------------------------------------function Mn = WAM_Ellipse_nlogn (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
32
[L ,U , Plu ] = lu (B , vector );
ind = Plu (1: size (U ,1));
33
end
% punti di Fekete approssimati corrispondenti
fek = mesh ( ind );
A.4
34
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)
35