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à 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 sulla norma della differenza di due
%     iterate successive
%
% 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à 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á 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,

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 = (a_{i,j}) é la matrice \underline{tridiagonale} definita positiva di dimensione 5 × 5 avente a_{i,i} = 5 per i = 1, …, 5 e tutti gli altri elementi non nulli uguali a 1, b ∈ ℝ^{5} é il vettore colonna con elementi uguali a 1. Si parta dal vettore iniziale nullo, si utilizzi una tolleranza di 10^{−5} e kmax = 200.

(b) esegua un grafico in scala semilogaritmica delle coppie (w_{j}, k_{j}) dove w_{j} é il j-simo parametro di rilassamento considerato e k_{j} il numero di iterazioni effettuate dal metodo SOR per tale parametro w_{j}. Si salvi il file come

    jpg in figura.jpg.

(c) tabuli su un file tabella.txt le coppie (w_{j}, k_{j}), j = 1, …, 19, trattando w_{j} come numeri reali con una cifra prima della virgola e una dopo la virgola, k_{j} come interi aventi 3 cifre prima della virgola e nessuna dopo la virgola.