• Non ci sono risultati.

Calcolo Numerico (Ingegneria Energia/Meccanica, Canale A) Prova di Laboratorio IV, del 24 Gennaio 2020, fila I

N/A
N/A
Protected

Academic year: 2021

Condividi "Calcolo Numerico (Ingegneria Energia/Meccanica, Canale A) Prova di Laboratorio IV, del 24 Gennaio 2020, fila I"

Copied!
2
0
0

Testo completo

(1)

Calcolo Numerico (Ingegneria Energia/Meccanica, Canale A)

Prova di Laboratorio IV, del 24 Gennaio 2020, fila I

Cognome e nome Matricola

Postazione

FIRMA PER CONSEGNARE FIRMA PER RITIRARSI

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

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

1. Si implementi il seguente metodo iterativo di Newton Modificato

xn+1= xn−

M f(xn)

f′(xn)

(1)

che permette di determinare la zero di f a partire dal dato iniziale x0.

A tal proposito,

• Si crei una function di nome newtonmod.m che implementi il metodo di Newton modificato, avente come input (a) le funzioni f , f′;

(b) il numero reale M (c) il valore iniziale x0

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

• la stessa function deve dare in output

(a) il vettore xv che contiene le iterate (incluso il valore iniziale x0),

(b) il vettore step la cui n-sima componente contiene il valore assoluto di xn+1−xn;

(c) il numero nit di iterazioni effettuate (cio´e la lunghezza di xv meno 1); • la function dovr`a avere la seguente intestazione:

function [xv,step,nit] = newtonmod (f,f1,M,x0,toll,nmax) % Uso:

% function [xv,step,nit] = newtonmod (f,f1,M,x0,toll,nmax) % % Dati di ingresso: % f: funzione % f1: derivata di f % M: numero reale % x0: valore iniziale

% 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 (e x0)

% step: vettore contenente il valore assoluto della differenza di due iterate successive % nit: numero di iterazioni

• lo script inizialmente, ponga xv(1) = x0;

• lo script contenga un ciclo-for con n=1:nmax che

– assegni ad fxv il valore assunto dalla valutazione di f in xv(n);

– verifichi se il valore di fxv sia uguale a 0 e in caso affermativo esca per return dal ciclo for, ponendo step=0, nit=n;

– assegni ad f1xv il valore assunto dalla valutazione di f′ in xv(n);

– verifichi se il valore di f1xv sia uguale a 0 e in caso affermativo esca per return dal ciclo for, ponendo step=NaN, nit=NaN;

– se il valore di f1xv non risulta uguale a 0

∗ ponga quale xv(n+1) il valore della n-sima iterazione del metodo di Newton Modificato definito da (1); ∗ ponga quale step(n) il valore assoluto della differenza delle due iterate xv(n), xv(n+1);

∗ se step(n) ´e inferiore di toll esca per return dal ciclo for, ponendo nit uguale a n;

• se si esce dal ciclo-for per un numero di iterazioni superiori a nmax, scriva su monitor il messaggio sono state effettuate troppe iterazionie ponga nit uguale a nmax+1;

(2)

2. Si scriva una function demo I che

• mediante un comando del tipo f=@(x) ... definisca la funzione f (x) = (x − π)2,

• mediante un comando del tipo f1=@(x) ... definisca la funzione f′(x), ovvero la derivata di f da calcolarsi esplicitamente,

• ponga M=1, x0=3, toll pari a 10−6, nmax=1000;

• applichi il metodo di Newton Modificato mediante una chiamata del tipo [xv,step,nit] = newtonmod (f,f1,M,x0,toll,nmax);

• sul file valori step 1.txt

– si scriva l’ultimo valore di xv, (in notazione decimale con 10 cifre prima della virgola e 15 dopo la virgola), – si scriva il valore di nit, (in notazione decimale con 5 cifre prima della virgola e nessuna dopo la virgola), – si scrivano i valori delle componenti di step, (in notazione esponenziale con una cifra prima della virgola

e una dopo la virgola),

• Quanto vale l’ultima componente di xv (in notazione decimale con una cifra prima della virgola e tre dopo la virgola)? Qual’e’ l’ultimo valore dello step al termine delle iterazioni (in notazione esponenziale con una cifra prima della virgola e una dopo la virgola)? Qual’e’ il valore di nit?

ultima componente di xv ultima componente di step nit

3. Si scriva una function demo II che

• mediante un comando del tipo f=@(x) ... definisca la funzione f (x) = (x − π)2,

• mediante un comando del tipo f1=@(x) ... definisca la funzione f′(x), ovvero la derivata di f da calcolarsi esplicitamente,

• ponga M=2.01, x0=3, toll pari a 10−6, nmax=1000;

• applichi il metodo di Newton Modificato mediante una chiamata del tipo [xv,step,nit] = newtonmod (f,f1,M,x0,toll,nmax);

• sul file valori step 2.txt

– si scriva l’ultimo valore di xv, (in notazione decimale con 10 cifre prima della virgola e 15 dopo la virgola), – si scriva il valore di nit, (in notazione decimale con 5 cifre prima della virgola e nessuna dopo la virgola), – si scrivano i valori delle componenti di step, (in notazione esponenziale con una cifra prima della virgola

e una dopo la virgola),

• Quanto vale l’ultima componente di xv (in notazione decimale con una cifra prima della virgola e tre dopo la virgola)? Qual’e’ l’ultimo valore dello step al termine delle iterazioni (in notazione esponenziale con una cifra prima della virgola e una dopo la virgola)? Qual’e’ il valore di nit?

Riferimenti

Documenti correlati

Nell’ipotesi che il pavimento sia privo di attrito, mentre tra la superficie superiore del corpo 1 e il corpo 2 sia presente attrito, determinare il minimo valore per il coefficiente

La sbarretta si trova all’interno di un condensatore, piano con le piastre posizionate verticalmente e distanti tra loro d = 14.0 mm, ed `e libera di ruotare intorno ad un

L’altro capo del filo `e attaccato ad un secondo corpo di massa m 2 = 1.50 kg che si muove su un piano liscio inclinato di α = π/6 radianti

(b) (vale 2/32) Usare la function LUgauss.m che si trova nella cartella di lavoro per trovare la fattorizzazione LU della matrice A.. La chiamata alla function

(b) Calcolare il valore approssimato ITrapComp dell’integrale I con la formula del trapezio composta TrapezioComposta.m, presente nella propria cartella di lavoro. A tale fine, usare

IL VALORE POSIZIONALE DELLE

– l’indice di esempio con 3 cifre prima della virgola, nessuna dopo la virgola, in notazione decimale, – qualora A, B > 0, salvi i valori di A, B con 1 cifra prima della virgola e

Dalle Indicazioni per il curricolo 2007 Leggere e scrivere i numeri naturali in notazione decimale, con la consapevolezza del valore che le cifre hanno a seconda della