• Non ci sono risultati.

Laboratorio di Calcolo Numerico A.A. 2007/2008 – II semestre

N/A
N/A
Protected

Academic year: 2021

Condividi "Laboratorio di Calcolo Numerico A.A. 2007/2008 – II semestre"

Copied!
3
0
0

Testo completo

(1)

Corso di Laurea Triennale in Matematica Laboratorio di Calcolo Numerico

A.A. 2007/2008 – II semestre

Esercitazione 3

Creare una cartella <cognome> dove verranno salvati i file creati nella sessione di lavoro.

Appena entrati in MATLAB posizionarsi in <cognome>.

Risolvere in ambiente MATLAB i seguenti esercizi.

RISOLUZIONE DI SISTEMI LINEARI: OPERATORE DIVISIONE A SINISTRA Per la soluzione di sistemi lineari in MATLAB si può usare l’operatore \ o divisione a sinistra:

>> x= A \ b

che calcola la soluzione x del sistema Ax=b con il metodo di eliminazione di Gauss con pivoting in generale. Nei casi particolari di sistemi con matrice A triangolare inferiore o superiore risolve con il metodo di sostituzione in avanti o all’indietro rispettivamente.

FATTORIZZAZIONE LU con pivoting

La funzione MATLAB che esegue la fattorizzazione LU con pivoting è [L,U,P]=lu(A). L’output di questa funzione sono le matrici triangolari L ed U ed una matrice di permutazione P tali che PA=LU .

1. Dopo aver scritto i seguenti sistemi lineari

 

 

=

− + +

= +

=

− +

= +

− +

0 10 5 10 2

0 7 2

0 13 4 3 7 2

0 2 2 6 2

4 3 2

4 2 1

4 3 2 1

4 2 1

x x x

x x x

x x x x

x x x

 

= +

− − =

10 5

4

8 15 12

2 1

2 1

x x

x

x

 

 

= +

− +

= + + +

= +

− +

= + + +

5 4 5

4

1 2

2

2 1 2 3

2

4 3 2 1

4 3 2 1

4 3 2 1

4 3 2 1

x x x x

x x x x

x x x x

x x x x

nella forma matriciale Ax=b, costruire un file script di MATLAB che, presa in input la matrice A dei coefficienti e il vettore b dei termini noti, stabilisca se il sistema ha un’unica soluzione e in caso affermativo, lo risolva con il metodo della divisione a sinistra (utilizzando l’operatore \ che calcola la soluzione con il metodo di eliminazione di Gauss: x = A \b). Provare poi a risolvere il sistema anche negli altri due casi. Cosa si osserva?

2. Assegnato il sistema lineare Ax=b, con

 

 

=

 

 

=

7 . 1

33 . 2

1 . 1 ,

5664 . 73393 8

. 6967 2

. 662

8 . 6967 2

. 662 63

2 . 662 63

6

b A

- trovare il vettore soluzione x;

- perturbare la matrice dei coefficienti della quantità

(2)

 

 

=

0 0 0

0 0 0

0 0 1

* 01 . 0 δ A

quindi calcolare l’errore relativo sulla soluzione e confrontarlo con la perturbazione relativa sui dati di ingresso.

3. Assegnato il sistema lineare Ax=b, con A matrice di Hilbert di ordine 4 e b=[1 1 1 1] T , - trovare il vettore soluzione x;

- perturbare il vettore dei termini noti della quantità

 

 

= −

1 1

1 1

* 01 . 0 δ b

quindi calcolare l’errore relativo sulla soluzione e confrontarlo con la perturbazione relativa sui dati di ingresso.

4. Risolvere il sistema lineare Ax=b con

 

 

= 

 

 

= −

018 . 1

569 . , 1

436 . 2 3454 . 0

5666 . 1 0003 .

0 b

A

nell’aritmetica a 4 cifre con e senza l’uso della strategia pivotale. Confrontare i risultati ottenuti nei due casi. Cosa si osserva?

5. Sia assegnato il sistema lineare Ax=b con

 

 

 +

 =

 

= 

4 , 2

1 1

1 ε

ε b

A

Quando ε=0, tale sistema ha soluzione [2 2] T .

Risolvere il sistema senza far uso della strategia pivotale, per valori di ε pari a 10 -k con k=2:2:18. Confrontare i risultati ottenuti con le soluzioni trovate per i medesimi valori di ε quando è applicata la strategia pivotale.

6. Costruire una funzione MATLAB per il calcolo della soluzione di una generale equazione AX=B, con X, B matrici, che utilizza la fattorizzazione LU.

Utilizzarla poi per il calcolo dell’inversa A-1 delle seguenti matrici:

(3)

 

 

 

 

 

 

 

 

2 1 0 0 0

1 2 1 0 0

0 1 2 1 0

0 0 1 2 1

0 0 0 1 2

, 11 9 5

4 3 2

7 5 3

Confrontare i risultati con la funzione MATLAB inv(A).

7. Sia assegnato il sistema lineare Ax=b con

 

 

= −

 

 

= 

2 9999 . , 0

4 2

9999 . 1

1 b

A

La soluzione esatta di tale sistema è x=[1 -1] T .

Calcolare il residuo relativo alla soluzione [-101 50] T e commentare i risultati.

8. Calcolare la fattorizzazione LU delle seguenti matrici di coefficienti:

,

2 1 0 0 0

1 2 1 0 0

0 1 2 1 0

0 0 1 2 1

0 0 0 1 2

1

 

 

 

 

= A

) 30 ,.

20 , 20 ( 2 sprand A =

30%) al pari nulli non elementi di

densità una

con 20 dimensione di

random sparsa

matrice una

è (A2

n=100;

e=ones(n,1);

b=[e -e 6*e -e 2*e];

d=[-n/2 -1 0 1 n/2];

A3=spdiags(b,d,n,n);

Osservare la struttura di L ed U per la matrice A1 (simmetrica tridiagonale a diagonale

dominante) e le matrici A2, A3 (sparse).

Riferimenti

Documenti correlati

Spiegare perché per valori di x vicini a multipli di π/2 la valutazione della funzione risulta un problema mal condizionato4. Osservare cosa succede

In uscita devono essere restituiti il vettore soluzione del sistema lineare e il numero dei passi effettuati per ottenere l'approssimazione desiderata (massimo 100).. Scrivere una

La funzione deve prendere in input la matrice A, il vettore di innesco x 0 , il numero massimo di iterazioni consentite (nmax) e la tolleranza toll per il

Si applichino il metodo EN sviluppato e il metodoQRLS (ottenuto chiamando successivamente le due funzioni MATLAB polyfit( ) e polyval( )) per il calcolo dei polinomi ai minimi

Realizzare uno script MATLAB che, presi in input due vettori di coordinate x, y che rappresentano punti lungo una traiettoria sulla quale la mano del robot deve

Eseguire il file showtrunc.m che illustra il comportamento dell’errore locale di troncamento nel metodo di EULERO applicato alla risoluzione del problema a valori

La scelta di cambiamento del passo è automatica all’interno della funzione e dipende dalla tolleranza fissata.Può essere più efficiente di ode45 per tolleranze lasche ed in

Congiungere (AND) un predicato VERO e uno FALSO –&gt; proposizione FALSA Disgiungere (OR) due predicati VERI –&gt; proposizione VERA. Disgiungere (OR) due predicati FALSI