Calcolo Numerico
TEST del 12 SETTEMBRE 2018
Cognome e nome Matricola
Informatica Postazione
FIRMA PER CONSEGNARE FIRMA PER RITIRARSI
Si raccomanda agli studenti di commentare adeguatamente script e function Matlab.
• Si desidera scrivere una function SOR.m che implementi il metodo SOR per la risoluzione di un sistema lineare Ax = b, con il fattore di rilassamento. La function dovr`a avere la seguente intestazione:
function [x,k,flag] = SOR (A,b,w,x0,toll,kmax)
% SOR Metodo SOR per la risoluzione di un sistema lineare % con test di arresto sul residuo
% % Uso:
% [x,k,flag] = SOR (A,b,w,x0,toll,kmax) %
% Dati di ingresso:
% A: matrice dei coefficienti
% b: vettore colonna dei termini noti % w: fattore di rilassamento
% x0: vettore colonna iniziale
% toll: tolleranza per il test di arresto % kmax: numero massimo di iterazioni % Dati di uscita:
% x: vettore colonna che contiene l’approssimazione della soluzione di Ax=b % k: numero delle iterazioni effettuate
% flag: vale -1 se la matrice diagonale estratta da A risulta singolare, % 0 se termina correttamente per k <= kmax,
% 1 altrimenti.
In uscita, la variabile x sar`a un vettore colonna che approssima la soluzione x∗ del sistema Ax = b. Il test di arresto del ciclo while relativo alle iterate deve essere basato sul residuo, ovvero si interromper´a il processo qualora norm(b-A*x) <= toll. Il parametro di uscita flag risulta essere uguale a
-1 se la diagonale di A ha qualche elemento nullo, e in questo caso x=[], k=NaN, 0 se termina correttamente per k<=kmax,
1 altrimenti.
• Si scriva poi uno uno script SORscript.m che
(a) risolva, al variare del parametro di rilassamento w tra i valori 0.1, 0.2, 0.3, . . . , 1.7, 1.8, 1.9, il sistema lineare Ax = b, dove A = (ai,j) ´e la matrice tridiagonale definita positiva di dimensione 5 × 5 avente ai,i = 5 per
i = 1, . . . , 5 e tutti gli altri elementi non nulli uguali a 1, b ∈ R5 ´e il vettore colonna con elementi uguali a 1.
Si parta dal vettore iniziale nullo, si utilizzi toll=1e-5 e kmax=200.
(b) esegua un grafico in scala semilogaritmica delle coppie (wj, kj) dove wj ´e il j-simo parametro di rilassamento
considerato e kj il numero di iterazioni effettuate dal metodo SOR per tale parametro wj. Si salvi il file come
jpg in figura.jpg.
(c) tabuli su un file tabella.txt le coppie (wj, kj), j = 1, . . . , 19, trattando wj come numeri reali con una cifra
prima della virgola e una dopo la virgola, kj come interi aventi 3 cifre prima della virgola (e naturalmente