INDIETRO
 Laboratorio 1
AVANTI

immaginari che non ci dovrebbero essere

Sappiamo che i numeri complessi furono usati per trovare delle soluzioni reali di equazioni algebriche del III grado: i calcoli intermedi usavano i numeri complessi che alla fine del calcolo scomparivano.

Le tecniche complesse sono usate da moltissimi algoritmi anche quando il problema riguarda solo numeri reali e i risultati sono reali.

In certi casi, tuttavia, gli errori numerici producono una parte immaginaria che in teoria non ci dovrebbe essere.

Questo esempio mi è stato segnalato dal prof. Dario Bini: partiamo dal seguente blocco di Jordan B che ha autovalori reali 1,1,1,1 :

1110
0111
0011
0001
Prendiamo S la trasposta di B e costruiamo per similitudine A = INV(S) * B * S.
Gli autovalori di A sono gli stessi di B, ma se si fa il calcolo numerico in floating point si trova una imbarazzante presenza immaginaria !
ps: per costruire la matrice B si può anche usare il comando triu(ones(4)).
ps: si possono plottare gli autovalori: plot(eig(A),'*')

Effettuiamo il calcolo in calcolo in matlabmatlab e in calcolo in maplemaple con diverse precisioni.
Anche con maxima si ha in questo caso il risultato esatto.

L'esempio si può ripetere in dimensione più alta; in dimensione 10 ci sono componenti immaginarie che hanno già la terza cifra decimale non nulla !


INDIETRO
Laboratorio Didattico di Matematica Computazionale - Sergio Steffè - AA 2017/2018 - PISA
AVANTI