Laboratorio di Matematica 08.10.03 ---------------------------------- L'istruzione >> diary 'nomefile' crea un file di nome 'nomefile' nel quale saranno contenute tutte le istruzioni impartite e cio' che hanno prodotto durante la sessione (tranne quelle che seguono un'istruzione diary off ...). Un file creato in questo modo potra' essere aperto con un editor qualsiasi, come Blocco note, Word, ... ------------------------------------------------------------------------------------------------------- L'istruzione >> save 'nomefile' a, B, ... crea un file di nome 'nomefile' nel quale saranno contenute le assegnazioni delle variabili a, B, ... Con l'istruzione >> load 'pluto' si potranno inserire le variabili a, B, ... in una sessione successiva. ---------------------------------------------------------------------------------------- Nella parte del manuale in linea Introduction... Simple examples... Solving Linear Equations si trova il seguente testo: --- To solve the set of linear equations 'aX=b', use the left division operator '\',: >> a\b This is conceptually equivalent to 'inv(a)*b', but avoids computing the inverse of a matrix directly. If the coefficient matrix is singular, Octave will print a warning message and compute a minimum norm solution. --- Si osserva che Octave trova sempre una ed una sola soluzione ad un sistema lineare, anche quando non ce ne sono, anche quando ce ne sono infinite, e in cio' il concetto di norma gioca una parte rilevante. DEF. Dato un sistema di equazioni lineari AX=B, con A matrice di tipo 'm per n' e B vettore colonna di lunghezza n, l'errore che si commette assumendo un vettore colonna t come soluzione del sistema e' il vettore At-B. Una vettore colonna s cui corrisponde un errore di norma minima e' una soluzione ai minimi quadrati del sistema; in simboli, cio' significa che ||As-B||<=||At-B|| per ogni t. Esercizio --------- E' dato il sistema lineare impossibile di 5 equazioni in 1 incognita x=1 x=2 x=3 x=4 x=5 Una soluzione ai minimi quadrati di questo sistema sara' un numero reale s tale che (x-1)^2 + (x-2)^2 + (x-3)^2 + (x-4)^2 + (x-5)^2 assuma valore minimo per x=s. Per usare Octave, pensiamo il sistema nella forma ax=b, dunque inseriamo le matrici >> a=[1; 1; 1; 1; 1] >> b=[1; 2; 3; 4; 5] e poi calcoliamo >> s=a\b ottenendo >> s=3 Una verifica minimale consiste nel confrontare l'errore corrispondente a 3 con gli errori corrispondenti ad alcuni altri valori dell'incognita x. Per calcolare con Octave la norma di un vettore V abbiamo bisogno di -operatore di trasposizione, indicato con '...'' -funzione radice quadrata, indicata con 'sqrt(...)' La norma di V si potra' ottenere coll'istruzione sqrt(V'*V) Dunque proseguiamo cosi' >> e_s = a*s-b #errore corrispondente ad s >> ne_s=sqrt( e_s'*e_s) #norma dell'errore corrispondente ad s ... troveremo un certo valore, da confrontare con le norme degli errori corrispondenti ad altri valori di x; se vogliamo fare piu' di un confronto, conviene creare una funzione, che ad ogni x associa l'errore corrispondente. Si puo' fare cosi': >> function y = ne(x) a=[1; 1; 1; 1; 1]; b=[1; 2; 3; 4; 5]; e_x=a*x-b; y=sqrt(e_x'*e_x); endfunction Possiamo allora calcolare, ad esempio, >> ne(3) >> ne(2) >> ne(4) ... si vedra' che ne(3) coincide con ne_s ed e' inferiore a ne(2) ed ne(4). ---------------------------------------------------------------------------------------- Esercizio --------- E' data l'equazione lineare in 2 incognite 2x + 3y = 1 Octave sceglie una soluzione fra le infinite soluzioni prendendola di norma minima (si dimostra che ce n'e' sempre una ed una sola). Pensato il sistema nella forma ax=b, inseriamo le matrici >> a= [2 3] >> b= 1 e poi calcoliamo >> s=a\b ottenendo come soluzione il vettore colonna >> s= 0.15385 0.23077 Si puo' verificare che questa e' una soluzione calcolando >> a*s Per fare qualche verifica del fatto che s e' una soluzione di norma minima, si puo' osservare che t1=[1/2; 0] e t2=[0; 1/3] sono soluzioni e dunque confrontare le norme di s, t1 e t2. ----------------------------------------------------------------------------------------------- In quest'ottica, si possono anche riprendere gli esercizi 2, 3 e 4 del primo laboratorio. --------------------------------------------------------------------------------------------