logo
  • userLoginStatus

Welcome

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

Current View

Biomedical Engineering - Calcolo Numerico

Full exam

Prof. Quarteroni - Parte II Esame Calcolo Numerico - 21/07/2021 Durata: 1h e 30 minuti Rispondere direttamente su Forms o su un foglio di carta in base alle istruzioni indicate punto per punto. Per le risposte scritte su un foglio di carta, eseguire poi la scansione e il caricamento su Forms solo alla fine della prova, nel momento in cui vi verrà esplicitamente richiesto. IMPORTANTE: il file della scansione va nominato con il proprio codice persona + il numero della domanda, si vedano istruzioni punto per punto. Per ritirarsi, compilare l'ultima pagina del form e comunicarlo al docente senza scollegarsi PARTE IIa Funzioni MATLAB Fare copia-incolla della seguenti funzioni salvandole con il nome "trapcomp.m", "jacobi.m" e "gs.m". Non inserire alcuna risposta nel box corrispondente 1 function [x,k]=jacobi(A,b,x0,toll,nmax) % Metodo di Jacobi % % A: matrice del sistema % b: termine noto % x0: vettore iniziale % toll: tolleranza sul residuo normalizzato % nmax: massimo numero di iterazioni % % x: soluzione ottenuta % it: numero di iterazioni effettuate n = size(b,1); %Controlliamo che la matrice A sia quadrata e che, insieme al guess %iniziale x0, abbia dimensioni compatibili con b. if ((size(A,1) ~= n) || (size(A,2) ~= n) || (size(x0,1) ~= n))   error('Dimensioni incompatibili') end %Controlliamo che la matrice A non abbia elementi diagonali nulli. if (prod(diag(A)) == 0)   error('Errore: elementi diagonali nulli') end %Estraiamo la matrice D da A e calcoliamo la matrice d'iterazione e il %termine noto g D = diag(diag(A)); Bj = eye(n) - D\A; g = D\b; %Inizializziamo x come x0, calcoliamo il residuo e l'errore normalizzato x = x0; r = b - A*x; err = norm(r) / norm(b); %Inizializziamo l'indice d'iterazione k = 0; while (err > toll && k < nmax)     k = k + 1;         %Calcoliamo il nuovo x     x=Bj*x+g;         %Calcoliamo residuo e errore     r = b - A*x;     err = norm(r)/norm(b); end %%%%%%%%%%%%%%%%%%%%%%%%%% function [x,k]=gs(A,b,x0,toll,nmax) % Metodo di Gauss-Seidel % % A: matrice del sistema %btit % b: termine noto % x0: vettore iniziale % toll: tolleranza sul residuo normalizzato % nmax: massimo numero di iterazioni % % x: soluzione ottenuta % k: numero di iterazioni effettuate n = size(b,1); %Controlliamo che la matrice A sia quadrata e che, insieme al guess %iniziale x0, abbia dimensioni compatibili con b. if (( size(A,1)~=n) || (size(A,2)~=n) || (size(x0,1) ~= n) )   error('dimensioni incompatibili') end %Controlliamo che la matrice A non abbia elementi diagonali nulli. if (prod(diag(A)) == 0)     error('errore: elementi diagonali nulli') end %Decomponiamo la matrice in D,E e F, e calcoliamo la matrice d'iterazione e %il termine g D=diag(diag(A)); E=-tril(A,-1); F=-triu(A,1); Bgs=(D-E)\F; g=(D-E)\b; %Inizializziamo x come x0, calcoliamo il residuo e l'errore normalizzato x = x0; r = b - A * x; err = norm(r) / norm(b); %Inizializziamo l'indice d'iterazione k = 0; while ( err > toll && k < nmax )   k = k + 1;     %Calcoliamo il nuovo x   x=Bgs*x+g;     %Calcoliamo residuo e errore   r = b - A*x;   err = norm(r)/norm(b); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function I = trapcomp( a, b, M, f ) % %    I = trapcomp( a, b, M, f ) % % Formula del trapezio composita: % Inputs: %    a,b: estremi di integrazione, %    M: numero di sottointervalli (m=1 formula di integrazione semplice) %    f: funzione % Output: %    I: integrale calcolato h = ( b - a ) / M; % ampiezza dei sottointervalli x = [ a : h : b ]; % estremi dei sottointervalli y = f( x ); %I = h / 2 * sum( y( 1 : end-1 ) + y( 2:end ) ); I = h * ( 0.5 * y( 1 ) + sum( y( 2 : end-1 ) ) + 0.5 * y( end ) ); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Inserisci la risposta Esercizio 1 - MATLAB Rispondere di seguito ai vari punti dell'esercizio MATLAB 1 in figura. 2 Rispondere nel box sottostante ai quesiti del punto 1a riportando anche le istruzione Matlab 3 Rispondere nel box sottostante ai quesiti del punto 1b  4 Rispondere nel box sottostante ai quesiti del punto 1c riportando anche le istruzione Matlab 5 Rispondere nel box sottostante ai quesiti del punto 1d 6 Rispondere nel box sottostante ai quesiti del punto 1e riportando anche le istruzione Matlab Esercizio 2 - MATLAB Rispondere di seguito ai vari punti dell'esercizio MATLAB 2 in figura. 7 Rispondere nel box sottostante ai quesiti del punto 2a riportando anche le istruzione Matlab 8 Rispondere nel box sottostante ai quesiti del punto 2b riportando anche le istruzione Matlab 9 Rispondere nel box sottostante ai quesiti del punto 2c  10 Caricare la figura relativa al punto 2d. Salvare la figura in formato jpg o png e nominarla come "codicepersona_parte2a-2d" 11 Rispondere nel box sottostante ai quesiti del punto 2e riportando anche le istruzione Matlab 12 Rispondere nel box sottostante ai quesiti del punto 2f  PARTE IIb Domande Teoriche Rispondere su un foglio di carta alle domande teoriche degli esercizi 3 e 4 in figura 13 Caricare la scansione dei fogli con le risposte in un unico file pdf. Indicare chiaramente l'inizio e fine dei sottopunti (3a, 3b, ..., 4a, 4b, ...). Si prega di nominare il file come "codicepersona_parte2b.pdf". Scrivere sul primo foglio il proprio nome, cognome, codice persona, firma, data, nome docente. Sugli altri solamente cognome e firma. Procedere alla scansione solamente dopo la fine della prova, non appena vi verrà richiesto. Desidera ritirarsi? 14 Domanda Questo contenuto è creato dal proprietario del modulo. I dati inoltrati verranno inviati al proprietario del modulo. Microsoft non è responsabile per la privacy o le procedure di sicurezza dei propri clienti, incluse quelle del proprietario di questo modulo. Non fornire mai la password. Con tecnologia Microsoft Forms | Privacy e cookie (https://go.microsoft.com/fwlink/p/?linkid=857875) | Condizioni per l'utilizzo (https://go.microsoft.com/fwlink/p/?LinkId=2083423)Sì desidero ritirarmi