Prove d esame Esercizi con Matlab

Documenti analoghi
Raccolta degli Scritti d Esame di ANALISI MATEMATICA U.D. 2 assegnati nei Corsi di Laurea di Fisica, Fisica Applicata, Matematica

MATLAB Elementi di grafica Costrutti di programmazione

Corso di Laurea in Ingegneria Informatica Anno Accademico 2012/2013 Analisi Matematica 1

MATLAB - Programmazione - 2. Antonino Polimeno

Integrazione numerica

Laboratorio 2. Calcolo simbolico, limiti e derivate. Metodo di Newton.

Laboratorio 3. Integrazione numerica

MATLAB c. Lucia Gastaldi Dipartimento di Matematica Lezione 4 (15 ottobre 2003)

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 4 - Polinomi e Interpolazione polinomiale

Laboratorio di Matematica Computazionale A.A Lab. 4

Introduzione al MATLAB c Parte 2 Funzioni

CORSO DI LABORATORIO DI INFORMATICA

Esercitazione 1 Conversione di base

Informatica Applicata al Suono Tutorial Matlab

Analisi Matematica I per Ingegneria Gestionale, a.a Scritto del secondo appello, 1 febbraio 2017 Testi 1

Lezioni su MATLAB. Ingegneria Civile/Meccanica

Esercizio 1. Esercizio 2

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

Introduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09

Laboratorio di Matlab

ESERCITAZIONE MATLAB

Calcolo Numerico I - a.a Laboratorio 3 - Introduzione a MATLAB

Esercitazioni con GNU Octave

Universita degli Studi di Ancona - Facolta di Ingegneria Laurea in Ing. Elettronica (VO) Ing. Informatica e Automatica - Ing. delle Telecomunicazioni

Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A

Programmazione Matlab

Esame di Matematica Generale 7 Febbraio Soluzione Traccia E

Compito del 27 Gennaio Esercizio 1 Sono dati i vettori u = (2, 1, 3) e v = ( 1, 4, 2), nonché le matrici

ANALISI MATEMATICA II Sapienza Università di Roma - Laurea in Ingegneria Informatica Esame del 16 febbraio Soluzioni compito 1

Interpolazione. Lucia Gastaldi. DICATAM - Sez. di Matematica,

Introduzione al MATLAB c Parte 3 Script e function

Rappresentazione degli algoritmi

MATLAB: Una veloce introduzione (Parte II)

{ x + 2y = 3 αx + 2y = 1 αx + y = 0. f(x) = e x 2 +3x+4 x 5. f(x) = x 3 e 7x.

Esercitazione 1: Introduzione a MATLAB

Vettori e Matrici. Vettori. Vettori e matrici: dati. Vettori di caratteri Polinomi. Dimensione (Size) numero di righe e di colonne della matrice

Esame di MATEMATICA CORSO BASE del

Laboratorio 2. Calcolo simbolico, successioni, limiti e derivate

Soluzioni dello scritto di Analisi Matematica II - 10/07/09. C.L. in Matematica e Matematica per le Applicazioni

1 Successioni di funzioni

Esercizi su: insiemi, intervalli, intorni. 4. Per ognuna delle successive coppie A e B di sottoinsiemi di Z determinare A B, A B, a) A C d) C (A B)

Laboratorio 2 Grafici di funzione in Scilab Metodo di Bisezione

Corso di Laurea in Ingegneria Gestionale Anno Accademico 2013/2014 Calcolo Numerico

Corsi di Laurea in Matematica e in Fisica. Prova scritta di Analisi Matematica I. Lecce, 12.IX.2016

Laboratorio di Calcolo Numerico

Analisi Matematica 1+2

2. Costruire un M function file di Matlab che calcola il valore del

ESERCITAZIONE 9: INTEGRALI DEFINITI. CALCOLO DELLE AREE E ALTRE APPLICAZIONI

Introduzione a Matlab Costruzione di Macchine 2 Prof. Sergio Baragetti

Elementi di C++ di base

Metodi di Analisi dei Dati Sperimentali. AA 2009/2010 Pier Luca Maffettone. Elementi di Matlab

Integrazione numerica

Capitolo 1. Esercizi a.a Esercizi. Esercizio 1.1 Dimostrare che il metodo iterativo

FUNZIONI ELEMENTARI, DISEQUAZIONI, NUMERI REALI, PRINCIPIO DI INDUZIONE Esercizi risolti

Introduzione a Matlab

ESERCIZIO SVOLTO N 1 ESERCIZIO SVOLTO N 2. Determinare e rappresentare graficamente il dominio della funzione

ANALISI MATEMATICA 1. (Ingegneria Industriale, corsi A e B) Esempi di prove scritte

Mini-Corso di Informatica

Compito A. Prova intermedia di Analisi Matematica I

1 Esercizi di Matlab. L operatore : permette di estrarre sottomatrici da una matrice assegnata. Vediamo alcuni esempi.

Analisi Matematica I Esercitazioni con MATLAB. Dario Bernardi Stefania Malaguti Chiara Visentin Andrea Corli

ISTRUZIONI PER LA CONSEGNA DEI FILE MATLAB

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 2 - Introduzione a MATLAB

Transcript:

Prove d esame Esercizi con Matlab Andrea Corli 16 settembre 2015 Sono qui raccolti alcuni esercizi relativi a Matlab assegnati nelle prove d esame (dal 2011 al 2014) del Corso di Analisi Matematica I (semestrale, 12 crediti), Laurea in Ingegneria Civile e Ambientale, tenuto da me presso l Università degli Studi di Ferrara. Ho aggiunto anche alcuni esercizi di livello analogo. Ad ogni testo segue una delle possibili soluzioni. 1 Esercizi d esame 10/11/2011 - Prima prova parziale Usare un ciclo for per calcolare e quindi rappresentare graficamente gli elementi della successione definita da a 1 = 1, a n = 1 1+a n 1 per n = 2, 3,..., 10. a (1) = 1; for n = 2:10 a(n) = 1/(1+ a(n -1)); n =1:10 plot (n,a, o ) Si noti che Matlab avvisa che il vettore a cambia di dimensione ad ogni loop e questo può rallentare l esecuzione (in effetti, questo non accade per calcoli semplici come quello che stiamo eseguo). Si può ovviare prescrivo sin dall inizio la dimensione di a: a = ones (1,10); a (1) = 1; for n = 2:10 a(n) = 1/(1+ a(n -1)); n =1:10; plot (n,a, o ) 9/1/2012 - Seconda prova parziale Usare un ciclo for per calcolare simbolicamente gli integrali + 1 dx, per n = 1, 2, 3, e creare un vettore contenente i tre risultati. n x 3/2 syms x for n = 1:3 I(n) = int (1/ x ^(3/2),x,n,Inf ); disp (I) Si noti che Matlab avvisa, in corrispondenza di I(n), una perdita di velocità dovuta al fatto che I(n) cambia dimensione in ogni loop. Si può ovviare a questo con Dipartimento di Matematica, Università di Ferrara 1

syms x I= ones (3,1); % dimensiona I; I= sym ( I); % trasforma I in simbolico ; for n = 1:3 I(n) = int (1/ x ^(3/2),x,n,Inf ); disp (I) 24/1/2012 Si consideri la funzione f(x) = 3x 4 + x 3 6x 2 3x + 1. Scrivere un breve script che ne calcola uno zero e che disegna il grafico di f e della sua derivata numerica in uno stesso grafico. Con roots: p = [3 1-6 3 1]; roots (p) x = linspace ( -2,2); % linspace scelto in conseguenza delle radici f = polyval (p,x); plot (x (1:99), diff (f )./ diff (x), r ) Con fzero: x = linspace ( -10,10); f = 3*x.^4 + x.^3-6*x.^2-3*x +1; fzero (@(x) 3*x.^4+ x.^3-6* x.^2-3* x +1,0) %0: non sappiamo dov e! Con una function esterna: % polinomio.m function f = polinomio ( x) p = [3 1-6 -3 1]; f = polyval (p,x); poi x = linspace ( -10,10); p = polinomio (x); fzero ( polinomio,0) 15/11/2012 - Prima prova parziale Scrivere un breve script per disegnare il grafico della funzione tg x nell intervallo [ π, π], evitando di far apparire righe verticali. Restringere l asse delle ordinate all intervallo [ 5, 5]. x = -pi :2* pi /100: pi; x (1) %il primo x (101) %l ultimo x (26) = NaN ; x (76) = NaN ; plot (x,tan (x)) axis ([ - pi pi -5 5]) 8/1/2013 - Seconda prova parziale Sia f(x) = sin(x) in [0, 2π]. Fissato n = 10, scrivere un breve script che calcola e disegna il grafico di f, f f,... f f... f, dove la composizione è fatta n volte. x = 0:0.01:2* pi; f = sin (x); 2

for i =1:9 f = sin (f); xlabel ( x ) ylabel ( f ) axis ([0 2* pi -1.5 1.5]) 22/1/2013 Scrivere un breve script che calcoli le prime tre derivate (simboliche) della funzione f(x) = e x2 e ne disegni i grafici in tre figure diverse. syms x f = exp (-x ^2); figure (1) ezplot (f) for i =1:2 f(i) = diff (f,i); figure (i +1) ezplot (f(i)) 12/2/2013 Scrivere un breve script in Matlab che calcoli i valori di n 0 e x2 dx per n = 1, 2,..., 10. Usare il comando num2str per rappresentare il risultato in maniera facilmente leggibile a command window. for i =1:10 x= linspace (0,i); I = trapz (x,exp (-x.^2)); disp ( num2str (I)) 18/06/2013 Rappresentare i grafici delle funzioni f n, definite nell intervallo [0, 2] da f n (x) = n x, per n = 1, 2,... 10, in un opportuno grafico a scala logaritmica in cui i grafici risultino rette. Ripetere lo stesso esercizio con g n (x) = x n in [1, 10]. x= linspace (0,2); n =1:10; [X,N]= meshgrid (x,n); semilogy (x,n.^x) oppure x = linspace (0,2); for n =1:10 semilogy (x,n.^x); Inoltre: x= linspace (1,10); n =1:10; [X,N]= meshgrid (x,n); loglog (x,x.^n) oppure 3

x = linspace (1,10); for n =1:10 loglog (x,x.^n); Si noti il diverso uso del colore. 3/9/2013 Si consideri la funzione f definita da f(x) = x+1 se x < 1 e f(x) = 4x 2 +1 se x 1. Scrivere un breve script in Matlab che disegni il grafico di f nell intervallo [ 2, 2], evitando segmenti verticali nei punti di discontinuità. x = -2:0.01:2; k = find (x ==1); x(k) = NaN ; f = x.*( x < 1) + 4.* x.^2.*( x >= 1) + 1; Lo stesso esercizio poteva essere risolto col ciclo for. 19/9/2013 Utilizzando un ciclo for, scrivere uno script che disegni i grafici delle funzioni (x n) 2, n = 1,..., 5, nell intervallo [0, 10]. x = linspace (0,10); for i =1:5 plot (x,(x-i ).^2) Naturalmente grafici analoghi potevano essere prodotti col comando meshgrid. 7/11/2013 - Prima prova parziale Sia {a n } la successione definita da a 1 = log 10 e a n = log(1 + a n 1 ) per n 2. Calcolare e disegnare i primi dieci termini della successione. n =[1:10]; a (1)= log (10); for i =2:10 a(i)= log (1+ a(i -1)); plot (n,a, o ) 9/1/2014 - Seconda prova parziale Scrivere uno script che calcola il più piccolo numero N tale che N k=1 1 k > 10. s =0; k =0; while s < 10 k = k +1; s = s + 1/ sqrt (k); disp ( num2str (k)) 21/1/2014 Si consideri la successione a n = sin n per n = 1,..., 10. Si costruisca la successione {b n } tale che b n = a n se a n > 1/10 e b n = 0 se a n 10. n = 1:10; a = sin (n); for i = 1: length ( n) if a( i) > 1/10 b(i) = a(i); else 4

b( i) = 0; disp (b) oppure, più semplicemente, n = 1:10; a = sin (n); b = a.* (a > 1/10) 11/2/2014 Scrivere uno script che calcola il primo numero intero n tale che n! > 10 6. n=1 while cumprod ( n) < 10000 n=n+1 disp ( num2str (n)) 9/6/2014 Scrivere un breve script che disegni il grafico di e x e della sua derivata (numerica). n =100; x= linspace (0,2,n); f= exp (-x); Df= diff (f )./ diff (x); plot (x (1:n -1),f(1:n -1),x(1:n -1), Df (1:n -1)) 14/7/2014 Scrivere un breve script in Matlab che calcoli ascissa e ordinata del punto di intersezione dei grafici delle funzioni e x e sin x in [0, π/2], tracci i grafici delle due funzioni e metta in evidenza il punto di intersezione. x= linspace (0, pi /2); z= fzero ( exp (-x) - sin (x), 1); disp ([z,exp (-z )]) plot (x,exp (-x),x,sin (x),z,exp (-z), or ) 8/9/2014 Definire tramite una function la funzione f(x) = log(1+x) 1 in un file per disegnarne il grafico in [0, 2] e calcolarne uno zero. Si scrive prima il file fz.m contenente la function function y = fz( x) y = log (1+ x) - 1./(1+ x); che viene richiamata nel file seguente: x= linspace (0,10); plot (x,fz(x)) fzero ( fz,1) 1+x ; quindi richiamarla 2 Altri esercizi 1. Sia f : [0, 5] R la funzione definita da f(x) = x se x [0, 1), f(x) = x 2 se x [1, 2), f(x) = 4 se x [2, 5]. Plottare un grafico di f usando un ciclo for e if. x = 0:0.01:5; f = zeros ( length ( x )); % f ha la stessa lunghezza di x; non serve ma % vedere cosa succede se si commenta questa riga for n =1: length (x); if x( n ) <=1; % sono le componenti di x! x <=1 non ha senso f(n)=x(n); 5

elseif 1<x( n) && x( n ) <=2; f(n )=( x(n )).^2; else f(n )=4; axis ([0 5 0 5]) % per vedere meglio la linea orizzontale a 5 Con gli operatori relazionali lo stesso esercizio si risolveva così: x = 0:0.01:5; f = x.*(x <=1) + x.^2.*(x >1 & x <=2) + 4*(x >2); axis ([0 5 0 5]) 2. Utilizzando un ciclo for, scrivere uno script che disegni i grafici delle funzioni f n (x) = nx 1+n 2 x 2, n = 1,..., 5, nell intervallo [0, 3]. x = linspace (0,3); for n =1:5 plot (x,n*x./(1+ n ^2* x.^2)) axis ([0 3 0 1]) Con meshgrid lo stesso esercizio si risolveva così: x = linspace (0,3); n = 1:5; [X,N] = meshgrid (x,n); plot (x,n.*x./ (1 + N.^2.* X.^2)) axis ([0 3 0 1]) Si noti l uso diverso del colore di default. 3. Scrivere uno script che disegna i grafici delle funzioni f n (x) = nx 1+nx 2, n = 1,..., 5, nell intervallo [0, 3] e ne calcola i massimi e i punti di massimo. x = linspace (0,3); n = 1:5; % per allocare le dimensioni f = zeros ( size (x )); %" M = zeros ( size (n )); %" X = zeros ( size (n )); %" for n =1:5 plot (x,n*x./(1+ n*x.^2)) M(n) = max (n*x./(1+ n*x.^2)); X(n) = fminbnd (@(x) -n*x./(1+ n*x.^2),0,3); disp ([ valori massimi :, num2str (M )]); disp ([ punti di massimo :, num2str (X )]); 6