• Non ci sono risultati.

FIRMA PER CONSEGNARE FIRMA PER RITIRARSI

N/A
N/A
Protected

Academic year: 2021

Condividi "FIRMA PER CONSEGNARE FIRMA PER RITIRARSI"

Copied!
1
0
0

Testo completo

(1)

Calcolo Numerico TEST del 11 LUGLIO 2017

Cognome e nome Matricola

Informatica Postazione

FIRMA PER CONSEGNARE FIRMA PER RITIRARSI

Si raccomanda agli studenti di commentare adeguatamente script e function Matlab.

• Si scriva una function gauss seidel.m che implementi il metodo di Gauss-Seidel per la risoluzione di un sistema lineare Ax = b. La function dovr` a avere la seguente intestazione:

function [x,k,steps,flag] = gauss_seidel (A,b,x0,toll,kmax)

% GAUSS_SEIDEL Metodo di Gauss-Seidel per la risoluzione di un sistema lineare

% con test di arresto sulla norma 2 della differenza di due iterate successive.

%

% Uso:

% [x,k,steps,flag] = gauss_seidel (A,b,x0,toll,kmax)

%

% Dati di ingresso:

% A matrice dei coefficienti;

% b vettore colonna dei termini noti;

% x0 vettore colonna iniziale;

% toll tolleranza per il test di arresto;

% kmax numero massimo di iterazioni.

%

% Dati di uscita:

% x array che contiene per colonne le iterate (vettori) del metodo;

% k numero delle iterazioni effettuate;

% steps vettore contenente ||x(:,j+1)-x(:,j)||_2 per j=1,...,k;

% flag vale

% 2 se sono state svolte kmax iterazioni senza che il test d’arresto sia verificato,

%. 1 se qualche elemento sulla diagonale di A e’ nullo ed in tal caso si ponga

%. x=[], k=0, steps=[],

%. 0 altrimenti.

In uscita, la variabile x sar` a una matrice le cui colonne corrispondono alle iterate del metodo. Pertanto x(:,1) conterr` a x

0

, x(:,2) conterr` a x

1

, e cos`ı via. In caso di convergenza, l’ultima colonna di x, ovvero la k + 1-sima, estraibile con x(:,end), conterr` a la soluzione approssimata. Il test di arresto del ciclo while relativo alle iterate deve essere basato sulla norma 2 della differenza tra due iterate successive kx(:, j + 1) − x(:, j)k

2

. Se vengono effettuate k iterazioni, si determini il vettore colonna steps di lunghezza k avente quale j-sima componente kx(:, j +1)−x(:, j)k

2

, j = 1, . . . , k.

Il parametro di uscita flag risulti essere uguale ad

1 se per qualche indice i si abbia a

i,i

= 0 ed in tal caso si ponga k=0, x=[], steps=[], 2 se il numero di iterazioni ´ e strettamente maggiore di kmax,

0 altrimenti.

• Si scriva una function gauss seidel script.m in cui dopo aver definito la matrice quadrata A = (a

i,j

)

i,j=1,...,5

di ordine 5 tale che a

i,j

= min(i, j) e il vettore colonna b = (1, . . . , 1)

T

∈ R

5

, risolva il sistema Ax = b mediante il metodo di Gauss-Seidel, ponendo quale vettore colonna iniziale x0 = (1, . . . , 1)

T

∈ R

5

, toll=10

−8

, kmax=1000.

Per la soluzione numerica x

= x(:, end), si valuti la norma 2 del residuo b − A ∗ x

e ne se stampi il risultato mediante fprintf, con 1 cifra prima della virgola e 4 dopo la virgola, in notazione esponenziale.

Se il metodo effettua k iterazioni, si determini il grafico in scala semilogaritmica delle coppie (j,steps(j)), per j = 1, . . . , k e lo si salvi come grafico.jpg.

Infine si salvi nel file soluzione.txt, la matrice 5 × 2, avente quale prima colonna gli indici delle componenti da 1

a 5 del vettore x(:,end) e come seconda colonna le corrispondenti componenti del vettore x(:,end)∈ R

5

descritte

in notazione esponenziale con 1 cifra prima della virgola e 15 dopo la virgola.

Riferimenti

Documenti correlati

Calcolo Numerico (Ingegneria Energia/Meccanica, Canale A) Compitino del 10 Maggio 2019, fila I.. Cognome e

Calcolo Numerico (Ingegneria Energia/Meccanica, Canale A) Compitino del 10 Maggio 2019, fila II.. Cognome e

Si calcoli mediante una funzione demoI l’approssimazione del valore della derivata di exp(x) nei punti x 0 = −1, x 1 = 2, in notazione decimale, con una cifra prima della virgola e

• Non si pu´ o utilizzare alcun dispositivo elettronico durante il compito (cellulare, computer, tablet, smartphone, auricolari, etc.). • Non si pu´ o parlare durante il compito

Ogni porzione di codice deve avere quale prima riga un commento mediante % con nome, cognome, numero di matricola e postazione.. Sia n un numero

• La routine controlli che il determinante di M=diag(diag(A)) non sia nullo, altrimenti scriva su monitor Il metodo di Jacobi non risulta applicabile ed esca forzatamente dalla

Calcolo Numerico (Ingegneria Energia/Meccanica, Canale A) Esempio Compito di Teoria, I.. Cognome e

• Non si pu´ o utilizzare alcun dispositivo elettronico durante il compito (cellulare, computer, tablet, smartphone, auricolari, etc.). • Non si pu´ o parlare durante il compito