• Non ci sono risultati.

Calcolo Numerico Tutoraggio, lezione 4

N/A
N/A
Protected

Academic year: 2021

Condividi "Calcolo Numerico Tutoraggio, lezione 4"

Copied!
1
0
0

Testo completo

(1)

Calcolo Numerico Tutoraggio, lezione 4

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

Si implementi il seguente metodo iterativo (chiamato secante fissa) x

n+1

= x

n

− f (x

n

) x

1

− x

0

f (x

1

) − f (x

0

)

che permette di determinare la radice reale contenuta nell’intervallo [x

0

, x

1

] (attenzione agli indici nella frazione!).

1. Si crei una function di nome secfis.m che implementi l’algoritmo relativo a tale metodo, con le seguenti indicazioni:

• La function secfis.m deve avere come dati in input:

(a) la funzione f,

(b) i due valori iniziali x0 e x1,

(c) la tolleranza toll per il test di arresto (basato sul valore assoluto della differenza di due iterate successive), (d) il numero massimo di iterazioni consentite nmax;

• la stessa function deve dare in output

(a) il vettore xv che contiene le iterate (inclusi i valori iniziali x

0

e x

1

),

(b) il vettore fxv dei residui calcolati nelle corrispondenti iterate presenti in xv, (c) il numero n di iterazioni effettuate;

• la function dovr` a avere la seguente intestazione:

function [xv, fxv, n] = secfis (f, x0, x1, toll, nmax)

%SECFIS Metodo della secante fissa per equazione non lineare

%

% Uso:

% [xv, fxv, n] = secfis(f, x0, x1, toll, nmax)

%

% Dati di ingresso:

% f: funzione

% x0: prima iterata

% x1: seconda iterata

% toll: tolleranza richiesta per il valore assoluto

% tra due iterate successive

% nmax: massimo numero di iterate permesse

%

% Dati di uscita:

% xv: vettore contenente le iterate

% fxv: vettore contenente i corrispondenti residui

% n: numero di iterate della successione

• lo script inizialmente, ponga xv(1) = x0, xv(2) = x1 e valuti fxv(1) = f(x0), fxv(2) = f(x1); in caso questi valori siano uguali, dopo aver assegnato n=2, esca con return scrivendo su monitor Rapporto incrementale non calcolabile;

• valuti la frazione m = (x

1

− x

0

)/(f (x

1

) − f (x

0

));

• lo script termini, prima o durante il ciclo for, mediante return qualora abs(xv(end)-xv(end-1)) <= toll (si assegni il valore fxv(end) e n); in particolare, quali indici avr´ a il ciclo-for? k=1:nmax o altro, visto i valori iniziali in xv?

• lo script termini qualora il vettore xv abbia lunghezza n maggiore o uguale a nmax, con un messaggio su monitor Il metodo ha eseguito troppe iterazioni.

2. Si localizzi graficamente, mediante il comando plot, la soluzione reale positiva dell’equazione f (x) := x − 0.9 · cos(x) + 1 = 0 e, dopo aver trovato un intervallo sufficientemente piccolo [x

0

, x

1

] (di ampiezza non maggiore di 0.5) che contenga la soluzione, si salvi la figura (in formato ed estensione .fig o .pdf).

3. Uno script demo I che abbia intestazione function demo_I

% Demo: Metodo della secante fissa per equazione non lineare

• definisca la funzione f (x) = x − 0.9 · cos(x) + 1 mediante il comando @;

• si pongano quali x0, x1 i due valori osservati nel punto precedente, toll=1.0e-12, nmax=1000;

• si esegua il grafico, in scala semilogaritmica, delle coppie (k, |f (x

k

)|), con k = 1, . . . , n;

• scriva su monitor

(a) l’ultima componente di xv con 1 cifra prima della virgola e 15 dopo, in notazione esponenziale,

(b) il valore assoluto dell’ultima componente di fxv con 1 cifra prima della virgola e 15 dopo, in notazione esponenziale,

(c) il numero di iterazioni n di iterazioni eseguite con 3 cifre prima della virgola e nessuna dopo, in notazione

decimale.

Riferimenti

Documenti correlati

(f) Stampi su monitor, il valore dell’ultima componente di err, con 1 cifra prima della virgola, 5 dopo la virgola in formato esponenziale. (g) Esegua su monitor il grafico in

(e) Stampi su monitor, il valore dell’ultima componente di err, con 1 cifra prima della virgola, 5 dopo la virgola in formato esponenziale.. (f) Esegua su monitor il grafico in

 Il primo blocco di istruzioni sarà eseguito se e solo se la Condizione1 è verificata, il secondo se e solo se la Condizione1 risulta essere falsa e la Condizione 2 vera e così

 In questo caso il numero di elementi diversi da zero della matrice è molto basso rispetto alla dimensione della matrice e, quindi, sia la fattorizzazione che

 Tutti i calcoli vengono effettuati in doppia precisione, mentre diversa è la visualizzazione delle variabili che viene determinata con il comando format.  Il

 le stesse operazioni possono essere applicate nel caso di vettori colonna o più in generale nel caso di matrici.. La cosa essenziale è che gli operandi siano

 Al posto di eseguire i comandi direttamente da linea di comando, possiamo memorizzare la successione dei comandi in un file di testo, salvarli e successivamente

 Nel metodo di Gauss , come anche nella fattorizzazione LU , si richiedono divisioni per gli elementi della diagonale principale della matrice considerata.  se