risoluzione sistemi lineari con matlab

Messaggioda arcano » 03/05/2020, 23:15

Buonasera a tutti,

Ho due questioni da sottoporvi. Penso siano estremamente banali ma io non riesco a venirne a capo.
Durante un quiz per la preparazione dell'esame su matlab, mi sono imbattuto nelle seguenti domande.
Ho cercato in vari modi di arrivare ad una delle soluzioni proposte nel quiz ma non ci sono riuscito. Allora, disperato, ho pensato di condividere con voi questi miei problemi.

1)
Siano H la matrice di Hilbert di ordine 10 (comando hilb), I la matrice identità e A=H+0.001I. Sia b il vettore colonna tale che la soluzione del sistema lineare Ax=b sia il vettore contenente gli opposti dei primi 10 numeri pari (-2,-4,...,-20). Sia N_e l'errore assoluto in norma infinito tra la soluzione ottenuta risolvendo il sistema con il metodo di eliminazione gaussiana implementato nativamente in MATLAB e la soluzione esatta. Qual e' l'ordine di grandezza di N_e?

2)
Sia A=M+10I dove M e' la matrice generata dal comando magic(432) e I e' la matrice identità. Sia b il termine noto tale che la soluzione del sistema lineare Ax=b sia il vettore di tutti elementi unitari. Si risolva il sistema con il metodo di eliminazione gaussiana implementato nativamente in MATLAB. Sia N_r la norma infinito del residuo b-Ax. Qual e' l'ordine di grandezza di N_r?

Tentativi:

Nel primo problema non riesco a capire perchè, se b è il vettore che devo trovare (dal momento che x è il vettore soluzioni noto, ovvero [-2, -4, ..., -20]), non basti fare b=A*x .

Nel secondo caso, invece, non capisco come possa calcolare la soluzione esatta di un sistema con un computer con un'aritmetica finita. Ho provato a risolvere il sistema facendo le seguenti operazioni

a = hilb(10) + eye(10)*0.001
b = [-2:-2:-20]'
s = a\b
E = (a*s-b)
norm(E,inf)

ma naturalmente è sbagliato.


Ho capito di avere una lacuna con la risoluzione dei sistemi lineari, quindi potreste cortesemente spiegarmi i passaggi per ottenere le soluzioni corrette?

Mi scuso per il disturbo e ringrazio di cuore chi avrà la pazienza di aiutarmi.

Ciao!!

Mattia
arcano
Starting Member
Starting Member
 
Messaggio: 7 di 14
Iscritto il: 29/01/2017, 00:26

Re: risoluzione sistemi lineari con matlab

Messaggioda feddy » 11/05/2020, 08:52

Infatti, devi porre b = A*x. In particolare, nel tuo codice, non è b = [-2:-2:-20]', bensì x = [-2:-2:-20]';

Una volta noto questo, puoi risolvere con \ (backslash) il sistema di matrice $A$ e termine noto $b$ dato da quanto scritto sopra, e confrontare x con la soluzione data dal backslash.
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2690 di 5934
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Re: risoluzione sistemi lineari con matlab

Messaggioda feddy » 11/05/2020, 08:54

che poi tra l'altro, il backslash non fa eliminazione gaussiana, o meglio, fa quello che è giusto fare per il tipo di sistema che si ha davanti (es. se la matrice è simmetrice e definita positiva, fa Cholesky...). Accertati di fare in modo di usare eliminazione gaussiana
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2691 di 5934
Iscritto il: 26/06/2016, 00:25
Località: SISSA


Torna a Geometria e algebra lineare

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite