logo
  • userLoginStatus

Welcome

Our website is made possible by displaying online advertisements to our visitors.
Please disable your ad blocker to continue.

Current View

Mathematical Engineering - Matematica Numerica

Exercise 17

Divided by topic

MATEMATICA NUMERICA A.A. 2018 - 2019 Ingegneria Matematica Prof. A. Quarteroni Prof. A. Manzoni, Dr. I. Fumagalli Esercitazione 17 Equazioni dierenziali ordinarie (2) Esercizio 1 Si consideri il problema di Cauchy (y0 (t) =f(t; y) =ty(t)2 t0< t t max y(t 0) = 2(1) La soluzione esatta di tale problema, nell'intervallo limitatot2[0;3]è y(t) =2t 2 + 1: a)Scrivere la functioneulero_avantiche implementa il metodo di Eulero in avanti per la risoluzione di un generico problema di Cauchy. La funzioneeulero_avantiriceve in ingresso : la funzionef(t; y)denita come anonymous function (tramite il comando@). Si noti chefè una funzione di due variabili ; gli estremit 0e t maxdell'intervallo di denizione ; il dato inizialey 0; il passo di avanzamento temporaleh. La funzioneeulero_avantirestituisce il vettorethdegli istanti temporali discreti e il vettoreuhdei valori della corrispondente soluzione approssimata. L'intestazione dieulero_avantisarà quindi :function [th,uh]=eulero_avanti(f,t_0,t_max,y0,h)b)Utilizzando la function appena scritta, risolvere il problema (1) con il metodo di Eulero in avanti, scegliendo per i valori del passo temporaleh 1= 3 =6eh 2= 3 =20. Rappresentare sullo stesso graco le soluzioni numeriche ottenute e confrontarle con la soluzione esatta. c)Scrivere la functioneulero_indietroche implementa il metodo di Eulero all'indietro per la risoluzione di un generico problema di Cauchy, con intestazionefunction [th,uh,iter_pf]=eulero_indietro(f,t_0,t_max,y0,h);La funzione eulero_indietrorestituisce il vettorethdegli istanti temporali discreti e il vettoreuh dei valori della corrispondente soluzione approssimata. Ad ogni passo temporale, il calcolo di un +1 =un +hf(tn +1 ; un +1 ) richiede la soluzione di un'equazione non lineare tramite un metodo di punto sso. La funzione eulero_indietrorestituirà quindi anche il vettoreiter_pfche contiene il numero delle iterazioni eettuate ad ogni passo temporale, dal metodo di punto sso, per risolvere l'equazione non lineare. Si scelgano, per le iterazioni di punto sso, una tolleranza sul criterio d'arresto basato sull'incremento pari a10 5 e un numero massimo di iterazioni pari a1000.1 d)Utilizzando la function appena scritta, risolvere il problema (1) con il metodo di Eulero all'indietro, scegliendo per i valori del passo temporaleh 1= 3 =6eh 2= 3 =20. Rappresentare sullo stesso graco le soluzioni numeriche ottenute e confrontarle con la soluzione esatta. e)Riportare su un graco l'andamento del numero di iterazioni impiegate dal metodo di punto sso perrisolvere l'equazione non lineare in funzione degli istanti temporali perh 1= 3 =6eh= 3=20. f )Denito eh= max n=0:N hj y(t n) u nj ; il massimo modulo dell'errore compiuto approssimando la soluzione esattay(t n) con la soluzione numericau n, riportare, su un graco in scala logaritmica, l'andamento di e hal variare di h, utilizzando i passi temporalih= [1=4;1=8;1=16;1=32;1=64]. Esercizio 2 Si consideri il seguente problema di Cauchy modello : (y0 (t) =y(t); t2(t 0; t max) y(t 0) = y 0(2) conRe()