non ti svegliare pdf free

Algebra Lineare Numerica
Esercitazione n◦ 7
• Esercizio 1
Si consideri il seguente codice MATLAB
f(1)=1; f(2)=1; for i=2:n-1
f(i+1)=f(i)+f(i-1);
end g(n)=f(n); g(n-1)=f(n-1); for i=(n-1):-1:2
g(i-1)=g(i+1)-g(i);
end
Al variare di n il programma calcola i primi n numeri di Fibonacci e successivamente calcola la stessa sequenza in ordine inverso.
Qual `e l’indice del pi`
u grande numero di Fibonacci che pu`o essere rappresentato esattamente come numero a doppia precisione di MATLAB senza essere affetto da errore di
roundoff ?
Qual `e l’indice del pi`
u grande numero di Fibonacci che pu`o essere approssimato come
numero a doppia precisione MATLAB senza overflow ?
Per valori di n compresi tra i due valori trovati, f(i) e g(i) sono molto diversi. Si dia
una spiegazione del perch´e ci`
o accada.
Si ricorda che MATLAB usa lo standard IEEE a doppia precisione.
• Esercizio 2
Si considerino la matrice A e il vettore b


1
1




1.0001 ,
A = 1


1
1.0001

2





b = 0.0001 .


4.0001
1. Si calcolino esattamente A+ e P = AA+ .
Suggerimento. Potrebbe essere utile servirsi del toolbox simbolico di Matlab. Per
esempio
>>
>>
>>
>>
>>
a= sym(’a’,’real’)
A=[1 1; 1 1+a; 1+a];
b=[2; a; 4+a];
Ap=simple((A’*A)\A’);
...
1
2. Si trovi la soluzione esatta x e il termine y = Ax del problema ai minimi quadrati
Ax ≈ b.
3. Si calcolino numericamente le quantit`a, viste a lezione, κ(A), η, θ.
4. Si calcolino i numeri di condizionamento κx(A) ,κx(b) , κy(A) ,κy(b) definiti come segue
κx(A) = κ(A) +
κy(A) =
κ(A)2 tan θ
,
η
κ(A)
,
cos(θ)
κx(b) =
κ(A)
,
η cos(θ)
κy(b) =
1
.
cos(θ)
• Esercizio 3 (TB Ch. 19)
Si consideri la funzione f (x) = esin(4t) per t ∈ [0, 1], campionata in 100 punti equispaziati
su tale intervallo. Si consideri il suo approssimante ai minimi quadrati di grado 14, T14 (x).
1. Si costruisca la matrice di Vandermonde A e il termine noto b corrispondenti e si
calcoli la soluzione x del sistema Ax = b con il comando Matlab \. Quanto vale il
coefficiente del termine di grado 14 di T14 (x)?
2. Si disegni la funzione esin(4t) e l’approssimante T14 (x).
3. Affinch´e il coefficiente x15 (coefficiente del termine di grado 14) sia uguale a 1, in
modo da rendere pi`
u semplice i confronti, si usi la seguente normalizzazione b =
b/2006.787453080206. Si risolva il nuovo problema usando il comando \.
4. Si calcoli K(A) con il comando cond. Cosa si pu`o dedurre circa il condizionamento
di A? Si calcoli inoltre la quantit`
a
θ = cos−1
||y||
.
||b||
Si osservi, a tale proposito, che la formula implementata da Matlab per il calcolo di
cos−1 `e
p
cos−1 (z) = −i log z − i(1 − z 2 ) .
||y||
per il problema in esame? Cosa comporta nella formula del
||b||
calcolo di cos−1 ? Si consideri quindi per il calcolo di θ l’espressione
Quanto vale z =
θ = sin−1
||b − y||
.
||b||
Si calcoli poi la quantit`
a
η=
2
||A|| ||x||
||Ax||
e i numeri di condizionamento κx(A) ,κx(b) , κy(A) ,κy(b) usando le definizioni date nell’esercizio 2.
5. Si risolva il problema ai minimi quadrati usando l’istruzione qr di Matlab (Householder) e si commenti l’accuratezza della soluzione xqr, riferendosi in particolare al
termine xqr(15).
6. Si risolva il problema ai minimi quadrati utilizzando l’algoritmo di Gram-Schmidt
modificato per il calcolo della fattorizzazione QR di A. Cosa si osserva? Ci si riferisca
in particolare al termine xgsm(15)
7. Si risolva il problema ai minimi quadrati risolvendo le equazioni normali, ovvero
calcolando
>>xn=(A’*A)\(A’*b);
Cosa si osserva? Ci si riferisca in particolare al termine xn(15)
8. Si risolva il problema ai minimi quadrati usando la SVD. Cosa si osserva? Ci si
riferisca in particolare al termine xsvd(15).
3
Algebra Lineare Numerica
Lab nr. 7
• Exercise 1
Consider the MATLAB program
f(1)=1; f(2)=1; for i=2:n-1 f(i+1)=f(i)+f(i-1); end g(n)=f(n);
g(n-1)=f(n-1); for i=(n-1):-1:2 g(i-1)=g(i+1)-g(i); end
For any input n, the program computes the first n Fibonacci numbers in the normal order
and it the compute the same sequence in reverse order.
What is the index of the largest Fibonacci number that can be represented exactly as a
MATLAB double-precision quantity without roundoff error?
What is the index of the largest Fibonacci number that can be represented approximately
as a Matlab double-precision quantity without overflowing?
Finally, for values of n between those found, the f(i) differs very much from the g(i).
Provide an explanation.
Note that MATLAB uses IEEE double precision.
• Esxercise 2
Consider the matrix A and the vector b


1
1




1.0001 ,
A = 1


1
1.0001

2





b = 0.0001 .


4.0001
1. What are the matrices A+ and P = AA+ ? Give the exact answers.
Hint. It could be useful the Symbolic Math Toolbox. For example
>>
>>
>>
>>
>>
a= sym(’a’,’real’)
A=[1 1; 1 1+a; 1+a];
b=[2; a; 4+a];
Ap=simple((A’*A)\A’);
...
2. Find the exact solutions x and y = Ax to the least squares problem Ax ≈ b.
3. Compute numerically κ(A), η, θ.
4
4. Compute the condition numbers κx(A) ,κx(b) , κy(A) ,κy(b) defined as
κx(A) = κ(A) +
κy(A) =
κ(A)2 tan θ
,
η
κ(A)
,
cos(θ)
κx(b) =
κ(A)
,
η cos(θ)
κy(b) =
1
.
cos(θ)
• Exercise 3 (TB Ch. 19)
Consider the function f (x) = esin(4t) for t ∈ [0, 1], evaluated in 100 points equally spaced
from 0 to 1. Consider its least squares approximation by a polynomial of degree 14, T14 (x).
1. Build the Vandermonde matrix A and the corresponding right-hand side b and compute the solution x of the linear system Ax = b by the Matlab command \. What
are the coefficient related to degree 14 of T14 (x)?
2. Plot esin(4t) and T14 (x)
3. In order to have x15 = 1, making the following comparisons easier to follow, use the
normalization b = b/2006.787453080206. Solve the new least squares problem with \.
4. Compute K(A) with the command cond. Comment on the result. Compute
θ = cos−1
||y||
,
||b||
and observe that Matlab compute cos−1 through the following formula
p
cos−1 (z) = −i log z − i(1 − z 2 ) .
||y||
? So, what does it involve in the calculation
||b||
of cos−1 ? Thus, consider the following expression for θ
In our case, what is the value of z =
θ = sin−1
||b − y||
.
||b||
Compute
η=
||A|| ||x||
||Ax||
and the condition numbers κx(A) ,κx(b) , κy(A) ,κy(b) using the definitions given in the
Exercise 2.
5. Solve the least squares problem with Matlab qr ( that is Householder) and comment
on the accuracy of the solution xqr, in particular refer on xqr(15).
5
6. Solve the least squares problem by modified Gram-Schmidt, in order to compute QR
factorization of A. What do you observe? In particular refer on xgsm(15).
7. Solve the least squares problem by the solution of the normal equation, that is
computing
>>xn=(A’*A)\(A’*b);
What do you observe? In particular refer on xn(15).
8. Solve the least squares problem using the SVD. What do you observe? In particular
refer on xsvd(15).
6