Metodi Numerici con Elementi di Programmazione A.A
|
|
- Orlando Corsi
- 5 anni fa
- Visualizzazioni
Transcript
1 Metodi Numerici con Elementi di Programmazione A.A Introduzione al MatLab (appice + esercizi) 1
2 Docente: Vittoria Bruni Ufficio: Via A. Scarpa, Pal. B, I piano, Stanza n. 16 Tel Ricevimento: consultare la sezione Avvisi nella pagina web dedicata al corso 2
3 Il materiale didattico è disponibile sul sito nella pagina dedicata al corso Metodi Numerici con elementi di Programmazione Per consultazione: Getting Started with MatLab The mathworks 3
4 Esercizio Scrivere uno script Matlab che dato un intero n 2, costruisca le matrici A k così definite k=1,2,,n-1
5 Strutture dati E possibile definire vettori a più dimensioni N=2 A(i,j) (matrici) i = indice di riga j = indice di colonna di A N=3 A(i,j,k) (vettore di matrici della stessa dimensione) i = indice di riga j = indice di colonna della k-sima matrice contenuta nella k-sima componente di A Esempio: B = A(:,:,k) B è una matrice a = A(i,j,k) a è l elemento avente indice di riga i e indice di colonna j della k-sima matrice in A In generale si può definire una struttura dati con N indici A(i,j,.,k) N indici Per conoscere la dimensione di A si usa la funzione size >> S = size(a); S è un vettore di N elementi, se N sono gli indici di A
6 Strutture dati Esempio: >> A = ones(6); >> B = randn(6); >> C = 10*ones(6); >> I(:,:,1) = A; >> I(:,:,2) = B; >> I(:,:,3) = C; >> size(i) ans = >> I(:,:,3) ans = >> I(3,2,1) % estrae l elemento di posizione (3,2) nella prima % componente di I ans = 1
7 Strutture dati Esempio: Un immagine a colori RGB si memorizza nella variabile I tale che I(:,:,1) matrice componente del rosso I(:,:,2) matrice componente del verde I(:,:,3) matrice componente del blu La dimensione di I è mxnx3 (mxn è la dimensione della immagine) I = imread( nome_immagine.ext ) legge l immagine contenuta nel file nome_immagine.ext e la memorizza in una matrice I a 2 (livelli di grigio) o più dimensioni (colore); ext è l estensione del file (jpg,png,tiff, etc. ) imshow(i) visualizza un immagine
8 Esercizio Scrivere uno script Matlab che dato un intero n 2, costruisca le matrici A k così definite k=1,2,,n-1 N = input( inserisci la dimensione delle matrici n = ); if n <=1, error( n deve essere >= 2 ) else n = round(n) % mi assicuro che n sia intero d = n*ones(1,n); for k=1:n-1 A(:,:,k) = diag(d); for i=1:n, for j=1:n, if abs(i-j)==k, A(i,j,k)=-1,,
9 Function MATLAB per la costruzione della tavola alle differenze divise function [mat_diff] = diff_div(xnodi,fnodi) % mat_diff = diff_div(xnodi,fnodi) % Calcolo della tavola alle differenze divise a partire dai valori dei nodi % e dalla funzione nei nodi (memorizzati nella prima colonna della % matrice mat_diffdiv). % % Input: % xnodi: vettore delle coordinate dei nodi % fnodi: valori della funzione nei nodi % Output: % mat_diff: tavola delle differenze divise (per colonne) nella prima % colonna ci sono i valori fnodi nnodi=length(xnodi); % ordine massimo delle differenze divise kord = nnodi-1;
10 Function MATLAB per la costruzione della tavola alle differenze divise % inizializzazione della tavola alle differenze divise la prima colonna % contiene i valori della funzione nei nodi mat_diff = zeros(nnodi,kord+1); mat_diff(:,1) = fnodi'; % calcolo della tabella for j = 1:kord, % indice per le colonne della tavola (ordine delle diff. divise) for i = 0:nnodi-1-j, % indice per le righe della tavola (nodi coinvolti) mat_diff(i+1,j+1) = (mat_diff(i+1,j)-mat_diff(i+2,j))/(xnodi(i+1)-xnodi(i+j+1));
11 Dal Command window
12 Function MATLAB per la costruzione del polinomio di Newton alle differenze divise function[pn,tavdif] = pol_difdiv(xnodi,fnodi,xeval) % Polinomio interpolatore alle differenze divise: % [pn,tavdif] = pol_difdiv(xnodi,fnodi,xeval) % Input: % xnodi: vettore delle coordinate dei nodi % fnodi: valori nei nodi della funzione da interpolare % xeval: vettore delle coordinate dei punti in cui calcolare %il polinomio interpolatore % Output: % pn: vettore dei valori del polinomio interpolatore calcolato in xeval % tavdif: tavola delle differenza divise calcolata usando la funzione % diff_div.m % controllo degli input if length(xnodi)~=length(fnodi) error('il vettore dei nodi ha dimensione diversa dal vettore dei valori della funzione!!!')
13 Function MATLAB per la costruzione del polinomio di Newton alle differenze divise % Calcolo della tavola alle differenze divise tavdif = diff_div(xnodi,fnodi); % Calcolo del polinomio interpolatore di grado nnodi-1 nnodi = length(fnodi); pn = tavdif(1,1); % primo elemento della tavola (f[x0]) pnod = 1; %inizializzazione dei polinomi nodali for i=1:nnodi-1 pnod = pnod.*(xeval-xnodi(i)); pn = pn + pnod*tavdif(1,i+1);
14 Dal Command Window: >> xnodi = [ ]; >> fnodi = [ ]; >> [pn,tavdif] = pol_difdiv(xnodi(1:3),fnodi(1:3),2); >> pn pn = e-004 Calcolando il polinomio interpolatore usando tutti i nodi della tabella e valutandolo nel punto x = 2 si ha p3(2) = >> xnodi = [ ]; >> fnodi = [ ]; >> [pn,tavdif] = pol_difdiv(xnodi,fnodi,2); >> pn pn = e-004
15 Esercizio Modificare la funzione pol_difdiv.m in modo che restituisca come ulteriore variabile di output una stima dell'errore di troncamento qualora venga richiesto. In tal caso, la funzione deve prevedere come ulteriore variabile di input un nodo aggiuntivo e il valore della funzione in questo punto.
16
17
18
19
20 Dal Command Window
21 Valutando la funzione nel nodo xeval = 1/6 si ha mentre il valore vero è 0.5
22 Esercizio Scrivere la funzione lagrange.m che, dato un vettore di nodi xnodi, un numero intero i e uno scalare xeval, valuti lo i-esimo polinomio della base di Lagrange nel punto xeval. Scrivere la funzione interp_lagrange.m che, dati due vettori, xnodi e fnodi aventi la stessa lunghezza, e uno scalare xeval, valuti il polinomio interpolatore nella forma di Lagrange costruito sui dati xnodi e fnodi nel punto punto xeval Le funzioni devono contenere opportuni controlli sulle variabili di input
23 Esercizio Scrivere la function Matlab lebesgue.m che: 1.riceva in input i vettori xnodi e xpunti; se xpunti non viene dato in input, assegni a xpunti 1000 punti equispaziati nell' intervallo [xnodi(1); xnodi(length(xnodi)]; 2.costruisca il vettore fleb contenente i valori della funzione di Lebesgue calcolata in xpunti; 3.se xpunti contiene più di un elemento, grafichi la funzione di Lebesgue calcolata in xpunti etichettando opportunamente gli assi; 4.restituisca in output xpunti, il massimo valore di fleb e il punto p_mfleb in cui è realizzato. Utilizzare la function per il seguente vettore di nodi [1.0; 1.5; 2.0; 2.5; 3.0] e salvare gli output nel file risultati_es3.mat 23
24 function [xpunti,mfleb,p_mfleb] = lebesgue(xnodi,varargin) % [xpunti,mfleb,p_mfleb] = lebesgue(xnodi,varargin) valuta e grafica la funzione di % Lebesgue costruita sui nodi contenuti in xnodi in corrispondenza dei punti in % xpunti, ne calcola il massimo e il punto in cui quest'ultimo è realizzato. % Se xpunti non è dato in input, l'intervallo [xnodi(1), xnodi()] è suddiviso in % 1000 punti equispaziati % % INPUT % - xnodi = vettore dei nodi % % OUTPUT % - xpunti = vettore dei punti in cui è stata valutata la funzione di Lebesgue. % Se non è dato in input, è costituito da 1000 punti equispaziati in % [xnodi(1), xnodi()] % - Mfleb = valore massimo assunto dalla funzione di Lebesgue sul vettore di % punti in xpunti % - p_mfleb = punto di xpunti in cui la funzione di Lebesgue assume il valore % massimo 24
25 % controllo degli input if nargin<1 nargin>2 error('il numero delle variabili di input non e'' corretto!'); elseif nargin==1 if length(xnodi)>1 xpunti = linspace(xnodi(1),xnodi(),1000); else error('xnodi deve essere un vettore di almeno due elementi!'); else if length(xnodi)>1 xpunti = varargin{1}; else error('xnodi deve essere un vettore di almeno due elementi!'); NOTA: Modificare insero il seguente controllo su xpunti: gli elementi di xpunti devono essere contenuti nell intervallo [xnodi(1), xnodi()] 25
26 % Calcolo i polinomi di base di Lagrange e li valuto in ogni elemento di xpunti n_xnodi = length(xnodi); n_xpunti = length(xpunti); for i=1:n_xpunti % per ogni elemento di xpunti for n=1:n_xnodi % per ogni nodo in xnodi plag(i,n) = prod(xpunti(i)-xnodi(1:n-1))*prod(xpunti(i)-xnodi(n+1:n_xnodi))/ (prod(xnodi(n)-xnodi(1:n-1))*prod(xnodi(n)-xnodi(n+1:n_xnodi))); NOTA: La variabile plag è una matrice con n_xpunti righe e n_xnodi colonne Ogni elemento in posizione (i,n) contiene il valore che il polinomio della base di Lagrange relativo al nodo n-simo assume in corrispondenza dello i-simo elemento di xpunti 26
27 % calcolo il valore della funzione di Lebesgue in ogni elementi di xpunti fleb = sum(abs(plag')); % calcolo il massimo di fleb [Mfleb,p_Mfleb] = max(fleb); % grafico della funzione di Lebesgue if n_xpunti>1 figure, plot(xpunti,fleb) xlabel('xpunti') ylabel('funzione di Lebesgue') 27
28 Dal Command Window >> xnodi=[1.0, 1.5, 2.0, 2.5, 3.0]; >> [xpunti,mfleb,p_mfleb] = lebesgue(xnodi); >> save risultati_es3.mat xpunti Mfleb p_mfleb Sono equivalenti >> [xpunti,mfleb,p_mfleb] = lebesgue(xnodi,linspace(xnodi(1),xnodi(),1000)); >> [xpunti,mfleb,p_mfleb] = lebesgue(xnodi,2.2); Non produce grafici >> [xpunti,mfleb,p_mfleb] = lebesgue(xnodi(1));??? Error using ==> lebesgue at 24 xnodi deve essere un vettore di almeno due elementi! 28
29 Esercizio Scrivere la function Matlab fun_esercizio5.m che: 1.riceva in input i vettori xnodi e ynodi, un numero reale z e un intero N; se N non viene dato in input, assegni ad N la lunghezza del vettore xnodi diminuita di 1; 2.detta f la funzione che assume i valori in ynodi in corrispondenza dei valori in xnodi, e detto p N il polinomio di grado N che interpola f in un sottoinsieme opportuno di xnodi, valuti, se possibile, e restituisca in output l'errore che si commette approssimando f(z) con p N (z), altrimenti interrompa l'esecuzione e stampi un messaggio di errore. Data la seguente tabella di dati i xi f(xi) utilizzare la function per stimare l'errore commesso approssimando f(0) con p 4 (0) e salvare sia gli input che gli output nel file 29 risultati_esercizio5.mat
30 30
31 31
32 32
33
34
35
36
37 37
38 38
39 39
40 40
41 41
42 Matrice dei coefficienti e vettore dei termini noti del sistema delle equazioni normali 42
43 43
44
45 Esercizi 45
46 Esercizio 1 46
47 function [P] = successione(a,m) %[P] = successione(a,m) calcola i primi M elementi della successione così definita % P(1) = 2*a % P(2) = 4*a^2-1 % P(k) = 2*a*P(k-1)-P(k-2), k>2 % % e la confronta con la successione così definita % Q(k) = 1/(2*sqrt(a^2-1) )* (abs(a+sqrt(a^2-1))^(k+1) - abs(a-sqrt(a^2-1))^(k+1)); % % % INPUT % a = numero reale tale che a >1. La funzione offre tre possibilità per % correggere il valore della variabile data in input, altrimenti % interrompe l'esecuzione % M = numero intero positivo % OUTPUT % P = vettore contenente gli elementi della successione Pn 47
48 % controllo del numero delle variabili di input e di output if (nargin<=1) (nargin>2) error('il numero degli input non e'' corretto!!!') if (nargout>1) error('il numero degli output non e'' corretto!!!') % controllo del primo input tentativi = 0; while abs(a)<=1 & tentativi <3 a= input('il modulo di a deve essere maggiore di 1! a= '); tentativi = tentativi + 1; Nota: All uscita del ciclo while si possono avere le due situazioni seguenti: Il valore di a è in modulo maggiore di 1 e tentativi<=3 Il numero di tentativi ha raggiunto il valore 3 e il valore di a è in modulo minore o uguale a 1 48
49 if abs(a)>1 % controllo del secondo input if (round(m)~=m) (M<=0) error('il secondo input deve essere un numero intero positivo!!!') % calcolo del vettore P P(1) = 2*a; P(2) = 4*a^2-1; for k=3:m P(k)=2*a*P(k-1)-P(k-2); % calcolo del vettore Q Q(1:M) = 1/(2*sqrt(a^2-1)) * (abs(a+sqrt(a^2-1)).^(2:m+1) - abs(a-sqrt(a^2-1)).^(2:m+1)); % grafico dei risultati figure, plot(p,'k-') hold on, plot(q,'r--') xlabel('k'), ylabel('successioni'), title('confronto successioni') leg('vettore P','vettore Q') else error('gli input inseriti non sono corretti!') 49
50 Dal Command Window >> [P] = successione(2,-10);??? Error using ==> successione at 38 il secondo input deve essere un numero intero positivo!!! >> [P] = successione(2,1.5);??? Error using ==> successione at 38 il secondo input deve essere un numero intero positivo!!! >> [P] = successione(2,-1.6);??? Error using ==> successione at 38 il secondo input deve essere un numero intero positivo!!! >> [P] = successione(6);??? Error using ==> successione at 22 il numero degli input non e' corretto!!! 50
51 Dal Command Window >> [P] = successione(-.5,100); il modulo di a deve essere maggiore di 1! a=.5 il modulo di a deve essere maggiore di 1! a=.2 il modulo di a deve essere maggiore di 1! a=.4??? Error using ==> successione at 53 gli input inseriti non sono corretti! >> [P] = successione(2,10); >> [P] = successione(2,100); >> [P] = successione(6,100); >> [P] = successione(-6,100); A queste chiamate la funzione non da messaggi di errore e grafica i risultati 51
52 Esercizio 2 Si consideri la funzione n=1 definita per Scrivere la funzione Matlab esercizio2.m che riceva in input un numero reale y e un numero naturale N 10 e restituisca in output: la variabile S contenente il valore di F(y) ottenuto usando i primi N termini della serie; il vettore C dei coefficienti f n usati. Se N non viene dato in input, porre N=1000. La funzione deve graficare le componenti del vettore C usando una linea continua rossa per i primi 10 elementi e un marcatore di punto a scelta di colore blu per i successivi elementi. Il grafico deve essere completo di titolo, etichette per gli assi e lega. 52
53 function [S,C] = esercizio2(y,varargin) % function [S,C] = esercizio2(y,varargin) %. %. if nargin==1 N=10000; elseif nargin==2 N = varargin{1}; if N<10 (round(n) ~=N) error( il valore di N non e ammissibile ); else error('controllare il numero delle variabili date in input!!!') C(1:2) = 1;, S = 0; for k=1:n S = S + C(k+1)*y^k; C(k+2) = C(k+1)+C(k); C([1 length(c)]) = []; figure, plot(1:10,c(1:10),'r'), hold on, plot(11:length(c), C(11:length(C)),'b*') 53
54 Esercizio 3 Scrivere la funzione Matlab esercizio3.m che: legga in input una matrice A; effettui, se possibile, un opportuno scambio di righe per cui il numero di elementi non nulli su ogni riga di A cresca con l indice di riga; restituisca in output la matrice A, eventualmente modificata in accordo al punto precedente; determini il numero di elementi nulli di A e restituisca in output il coefficiente C dato dal rapporto tra il numero di elementi nulli di A e la dimensione di A definito; Se C =0 stampi il messaggio La matrice non è sparsa Richiamare la funzione scritta sulle seguenti matrici e salvare tutti gli input e gli output nel file risultaties3.mat.
55 function [A,C] = esercizio3(a) % function [A,C] = esercizio3(a) %. %. %. %. [m,n] = size(a); C = length(find(a(:)==0))/(m*n); if C==0 disp('la matrice non e'' sparsa'); else for i=1:m nnz(i) = length(find(a(i,:))); [S,P] = sort(nnz); A=A(P,:); 55
56 Esercizio 4 Scrivere la funzione Matlab esercizio4.m che: legga in input le funzioni f, df, df2, con df e df2 rispettivamente derivata prima e seconda di f, due numeri reali a e b (con a < b) e due interi positivi M e nmax, con nmax non superiore a Se M non viene dato in input, assegni ad M il valore 5; se nmax non viene dato in input, assegni ad nmax il valore massimo consentito; determini un intervallo di separazione I = [a1, b1] [a, b] della radice di f con ampiezza non superiore a 0.25; approssimi la radice di f in I con il metodo delle tangenti, sceglio come approssimazione iniziale x0 l'estremo di Fourier e arrestando il procedimento quando la approssimazione prodotta xn ha M decimali esatti o non appena il numero di iterazioni eseguite diventa pari a nmax. Se l'estremo di Fourier non esiste, si ponga x0 uguale all'estremo positivo più piccolo di I; restituisca in output xn, la variabile fxn contenente il valore di f in xn e l'approssimazione iniziale x0. Utilizzare la funzione scritta per approssimare la radice della equazione non lineare x 3 -cos(x)+ 1/3 = 0 nell'intervallo [0.25, 1] e salvare sia gli input che gli output nel file risultaties4.mat.
57 function [xn,fxn,x0] = esercizio4(f,df,df2,a,b,varargin) % function [xn,fxn,x0] = esercizio4(f,df,df2,varargin) %. %. %. %. switch nargin case 5 M = 5; nmax = 1000; case 6 M = varargin{1}; nmax = 1000; case 7 M = varargin{1}; nmax = varargin{2}; otherwise error('controllare il numero delle variabili di input!!!')
58 if (M~=round(abs(M))) error('m deve essere intero positivo!!!') if (nmax~=round(abs(nmax))) nmax>1000 error('nmax deve essere intero positivo e non superiore a 1000!!!') if a>=b error('a deve essere strettamente minore di b!!!') x = a:.2:b; y=f(x); pos = find(abs(diff(sign(y)))); if length(pos)~=1 error('la radice non e'' unica') else a1 = x(pos); b1 = x(pos+1);
59 if f(a1)*df2(a1)>0 x0 = a1; elseif f(b1)*df2(b1)>0 x0 = b1; else if sum(sign([a1 b1]))<=0 error('non e'' possibile fissare la condizione iniziale') elseif a1>0 x0 = a1; else x0 = b1; eps = 0.5*10^(-M); err = eps+1;, iter = 0; while (err>eps) & (iter<nmax) xn = x0-f(x0)/df(x0); iter = iter + 1; err = abs(xn-x0); x0=xn; fxn = f(xn);
60 function [c] = esercizio(y,z,m) %... %... %... C = zeros(m);, v = zeros(m,1);, s = zeros(2*m-1,1); for i = 1:length(y) temp = z(i); for j = 1:m v(j) = v(j) + temp;, temp = temp*y(i); temp = 1; for j = 1:2*m-1 s(j) = s(j) + temp;, temp = temp*y(i); for i = 1:m for j = 1:m C(i,j) = s(i+j-1); c = C\v; Esercizio 5 Scrivere lo help della funzione descrivo anche tutte le variabili di input e di output. Commentare le istruzioni.
61 Esercizio 6 Scrivere lo help della seguente funzione; commentare e completare le istruzioni. function [V,M] = fun_esame(t,g) %... %... %... %... %... J = length(g); D = (t()-...); if... V = (g(1)+2*sum(g(2:2:j-1))+2*sum(g(2:j-1))+g())*d/3; M = 0; else V = D*sum(g) - 0.5*D*(g(1)+...); M = 1;
62 function [In,Nn,E] = my_fun(x1,x2,fun,varargin) %... %... %... if nargin<3 error('input non sufficienti') elseif... tl=0.5*10^-5; elseif nargin == 4 tl =... else error('troppe variabili di input') D = (x2-x1)/2;, I0 =D/3*(fun(x1)+4*fun(x1+D)+fun(x2));, E = tl+1; while E >= tl D = D/2; Nn =... xn = linspace(x1,x2,nn);, fn = fun(xn); In = D/3*(fn(1)+4*sum(fn(2:2:Nn-1))+2*sum(fn(3:2:Nn-2))+fn(Nn)); E = abs(in-i0)/15; I0 =... Esercizio 7 Completare e commentare le istruzioni della funzione e scriverne lo help
63 con 6 decimali esatti e salvare gli output nel file risultaties8.mat. Esercizio 8 Scrivere la funzione Matlab esercizio8.m che riceva in input tre numeri a, b, eps e la funzione f; se eps non viene data in input, assegni il valore approssimi l'integrale con la formula di Cavalieri- Simpson; approssimi I(f) con la formula delle parabole generalizzata dimezzando ogni volta il passo h e arrestandosi quando il modulo del resto Rh(f) diventa minore di eps; restituisca in output l' approssimazione finale dell' integrale, il numero totale di nodi utilizzati per calcolarla e la stima di Rh(f) ottenuta tramite il criterio di Runge. Utilizzare la funzione realizzata per approssimare
64 Esercizio 9
65 function [F,varargout] = fun_bruni(t,m,varargin) % [F] = fun_bruni(t,m); % descrizione % % INPUT % inserire descrizione delle variabili di input. % % OUTPUT % inserire descrizione delle variabili di output. switch nargin case 2 x=0; m=5; case 3 x=varargin{1}; m=5; if x<-1 x>1 error('x deve appartenere all''intervallo [-1,1]')
66 case 4 x=varargin{1}; m=varargin{2}; if (x<-1 x>1) length(x)>1 error('x deve essere uno scalare e appartenere all''intervallo [-1,1]') if m<=0 m~=round(m) error('m deve essere un intero positivo') otherwise error('controllare il numero delle variabili di input') if M<=0 M~=round(M) error('m deve essere un intero positivo')
67 eps = 0.5*10^(-m); g = (1-t*x)/(1-2*x*t+t^2); F=[]; T(1) = 1; f(1) = T(1); if abs(f(1)-g) < eps F = [F f(1)]; T(2) = x; f(2) = sum(t.*t.^(0:1)); if (abs(f(2)-g) < eps) & (length(f)<m) F = [F f(2)]; n=3; while (length(f)<m) & n<100 T(n) = 2*x*T(n-1)-T(n-2); f(n) = sum(t.*t.^(0:n-1)); if (abs(f(n)-g) < eps) F = [F f(n)] n=n+1;
68 ind = find(t>=0); ind2 = find(t<0); figure title('grafico esercizio') subplot(1,2,1), plot(f,'r--') ylabel('vettore F') subplot(1,2,2), plot(ind-1, T(ind),'k*',ind2-1,T(ind2),'ro') xlabel('n') ylabel('tn') if nargout ==2 V=ind-1; varargout{1}=v;
69 usando 21 nodi. Esercizio 10 Scrivere la funzione Matlab odelimiti_nl.m che riceva in input cinue numeri a, b, alfa, beta, eps, due numeri interi positivi N, maxiter e tre funzioni f, dfy, dfz; se eps non viene data in input, assegni il valore , se maxiter non viene data in input, assegni il valore 20 risolva il seguente problema ai limiti usando uno schema alle differenze finite usando N+2 nodi. Per la soluzione del sistema non lineare si usi il metodi di Newton eseguo non più di maxiter iterazione e arrestando le iterazioni quando l errore massimo tra due approssimazioni successive diventa inferiore a eps restituisca in output il vettore Y contenente la approssimazione della soluzione in corrispondenza dei nodi usati. Se richiesto, restituisca in output il vettore X dei nodi e l errore commesso all ultima iterazione del metodo di Newton. Utilizzare la funzione realizzata per risolvere il seguente problema differenziale
70 % Script per la soluzione di uno specifico problema differenziale % salvato con il nome esercizio_odelimiti_nl a=1; b=3; alfa=17; beta = 43/3; N=19; [Y,X,errore] = odelimiti_nl(a,b,alfa,beta,n,@fun_esercizio,@dfy_esercizio,@dfz_esercizio,10^(-8)); fprintf(' X \t Y \t Errore\n') fprintf('%7.6f \t %15.12f \t %+13.12f \n',[x;y;errore] ) figure, plot(x,y,'r*') xlabel('x') ylabel('y') title('soluzione') Funzione che implementa la soluzione di un problema differenziale ai limiti non lineare Funzioni relative allo specifico problema differenziale da risolvere, rispettivamente f, f y, f y Vanno definite e salvate in tre file.m distinti
71 % funzione f dello specifico problema differenziale % salvato con il nome fun_esercizio.m function [F] = fun_esercizio(x,y,z) %funzione dello specifico problema differenziale F = 1/8*(32+2*X.^3-Y.*Z);
72 % funzione f y dello specifico problema differenziale % salvato con il nome dfy_esercizio.m function [DFY] = dfy_esercizio(x,y,z) %funzione dello specifico problema differenziale DFY = 1/8*(-Z);
73 % funzione f y dello specifico problema differenziale % salvato con il nome dfz_esercizio.m function [DFZ] = dfz_esercizio(x,y,z) %funzione dello specifico problema differenziale DFZ = 1/8*(-Y);
74 function [Y,varargout] = odelimiti_nl(a,b,alfa,beta,n,f,dfy,dfz,varargin) %[Y] = odelimiti_nl(a,b,alfa,beta,n,f,dfy,dfz) % INPUT % inserire descrizione delle variabili di input %... %... % % OUTPUT % inserire descrizione delle variabili di output %... %... if nargin==8 eps=0.5*10^(-8); max_iter=20; elseif nargin==9 eps=varargin{1}; max_iter=20; elseif nargin==10 eps=varargin{1}; max_iter=varargin{2}; else error('controllare il numero delle variabili di input')
75 h=(b-a)/(n+1); X=a+(0:N+1)*h; % inserire eventuali controlli su eps e maxiter... Y=alfa+(0:N+1)*(beta-alfa)/(b-a)*h; iter=0; Err=eps+1; while (Err>eps) & (iter < max_iter) der_vet = (Y(3:N+2)-Y(1:N))/(2*h); diagj=diag(2+h^2*dfy(x(2:n+1),y(2:n+1),der_vet)); diagsupj=diag(-1+h/2*dfz(x(2:n),y(2:n),der_vet(1:n-1)),1); diaginfj=diag(-1-h/2*dfz(x(3:n+1),y(3:n+1),der_vet(2:n)),-1); J = diagj+diagsupj+diaginfj; der_vet2 = diff(y,2); B = -h^2*f(x(2:n+1),y(2:n+1),der_vet)+der_vet2; V=J\(B'); V=[0 V' 0]; Y1 = Y+V; vett_err = Y1-Y; Err = norm(vett_err,inf); Y=Y1; iter = iter + 1;
76 if iter==max_iter & Err>eps disp('non e'' stata raggiunta la precisione richiesta') if nargout == 2 varargout{1} = X; elseif nargout == 3 varargout{1}=x; varargout{2} = vett_err; elseif nargout >3 error('troppi output')
77 Esercizio 11 Si consideri la seguente funzioni di due variabili Scrivere la funzione Matlab fun_cognome.m che riceva in input un intero strettamente positivo N non superiore a 100, un numero reale x e una funzione f (anonymous function) dipente da x. Se f non viene data in input, ponga f(x) = 1 + x. La funzione valuti F in corrispondenza della coppia di valori (x; f(x)) per ogni numero naturale n : 0 n N; n = 3h; h N. La funzione restituisca in output la matrice P così definita: i) la prima riga contiene i valori di n che hanno prodotto valori di F positivi; ii) la seconda riga contiene i corrispondenti valori positivi di F; iii) la terza riga contiene i valori di n che hanno prodotto valori di F negativi; iv) la quarta riga contiene i corrispondenti valori negativi di F. La funzione grafichi, e restituisca in output se richiesto, il vettore A contenente al piu (N+1)/3 elementi della successione a k usando un pallino rosso per gli elementi di indice pari e un asterisco blu per quelli dispari. Il grafico deve essere completo di titolo, etichette per gli assi e lega. Oss: La funzione F(x,y) dipe anche dall indice naturale n I coefficienti a k dipono anche dall indice naturale n Per il vettore A, poiché non specificato, si considera l ultima sequenza calcolata
78 function [P, varargout] = esercizio4_gennaio2014(n, x, varargin) % [P, varargout] = esercizio4_gennaio2014(n, x, varargin) % La funzione esercizio4_gennaio valuta la funzione F(x,y) che è la somma di n+1 termini il cui (k+1)-simo addo è % a(k) = (n-k+1)/k a(k-1) se k>=1, e a(0) = 1 se k=0. La funzione % calcola F(x,y) per tutti i valori di 0<=n<=N e multipli di 3 e con % y=f(x). % controllo sul numero degli input if nargin == 2 f elseif nargin == 3 f = varargin{1}; else error('numero di input non corretto') % INPUT % N = intero positivo <=100 % x = ascissa del punto in cui valutare la funzione % f = funzione che definisce l'ordinata del punto in cui valutare la % funzione come y=f(x). Se f non viene data in input, f=1+x % % OUTPUT % inserire descrizione degli output
79 % controllo input if N <= 0 N > 100 N ~= round(n) error('n deve essere un intero strettamente positivo non superiore a 100') % successione y = f(x); for n=0:3:n a(1) = 1; F(n/3+1)=a(1)*y^n; for k=2:n+1 a(k) = (n-k+2)/(k-1)*a(k-1); F(n/3+1) = F(n/3+1) + a(k)*x^(k-1)*y^(n-k+1); pos = find(f>=0); neg = find(f<0); P = zeros(4,max(length(pos), length(neg))); P(1,1:length(pos)) = (pos-1)*3; P(2,1:length(pos)) = F(pos); P(3,1:length(neg)) = (neg-1)*3; P(4,1:length(neg)) = F(neg);
80 A = a(1:round((n+1)/3)); figure, hold on plot(1:2:length(a), A(1:2:length(A)), '*b') plot(2:2:length(a), A(2:2:length(A)), '*r') if nargout==2 varargout{1} = A;
81 Esercizio 12
82 Esercizio 12 function [K, S, D, V, varargout] = esercizio5_gennaio2014(a, b, varargin) %INSERIRE HELP % controllo sugli input if nargin < 2 nargin > 3 error('il numero degli input non e'' corretto') elseif nargin == 2 C = {'J', 'GS', 'SOR', 'MEG', 'Th'}; elseif nargin == 3 C = varargin{1}; % controllo sulle dim di A [m,n] = size(a); if m ~= n error('a deve essere quadrata') else if m < 3 error('la dim di A deve essere non inferiore a 3x3')
83 K = false; S = false; D = false; if cond(a) < 7 K = true; % S vale 1 se il numero degli elementi nulli di A è superiore alla metà dei % suoi elementi n_zeri = length(find(a==0)); if n_zeri > (n^2)/2 S = true; % D vale 1 se esiste una permutazione di righe per cui la matrice del % sistema diventa diagonale [r, c] = find(a~=0); if length(r) <= n if (length(unique(c)) == length(unique(r))) D = true; if nargout == 5 [temp p] = sort(r); varargout{1} = p;
84 fprintf('%s \n', 'quali metodi possono essere usati per risolvere Ax=b?') riga1 = zeros(1,length(c)); riga2 = zeros(1, length(c)); eps = 10^(-8); MD = diag(diag(a));, L = tril(a,-1);, U = triu(a,1); for i=1:length(c) switch C{i} case {'J'} Minv = inv(md);, CJ = -Minv*(L + U); rho = max(abs(eig(cj))); if rho < 1 fprintf('%s \n', 'il metodo di Jacobi converge'); riga1(i) = 1; QJ = Minv*b; iter = 0;, X0 = ones(n,1);, err = 100; while err > eps X = CJ*X0 + QJ; err = norm(x-x0, inf); X0 = X; iter = iter + 1; riga2(i) = iter;
85 case {'GS'} Minv = inv(tril(a)); CGS = -Minv*(triu(A,1)); rho = max(abs(eig(cgs))); if rho < 1 fprintf('%s \n', 'il metodo di Gauss Seidel converge'); riga1(i) = 1; QGS = Minv*b; iter = 0; X0 = ones(n,1); err = 100; while err > eps X = CGS*X0 + QGS; err = norm(x-x0, inf); X0 = X; iter = iter + 1; riga2(i) = iter;
86 case {'SOR'} T = (A == A'); if all(t(:)) && all(eig(a)) fprintf('%s \n', 'il metodo di SOR converge'); riga1(i) = 1; omega = 0.5; Minv = inv(l + MD/omega); C_sor = -Minv*(U-(1-omega)*MD/omega); Q_sor = Minv*b; iter = 0; X0 = ones(n,1); err = 100; while err > eps X = C_sor*X0 + Q_sor; err = norm(x-x0, inf); X0 = X; iter = iter + 1; riga2(i) = iter;
87 case {'MEG'} if det(a) ~= 0 fprintf('%s \n', 'e'' possibile usare il metodo di eliminazione di Gauss'); riga1(i) = 1; riga2(i) = n^2/2 + n^3/3; case {'Th'} B = triu(a,-1) - triu(a,2); T = (B == A); if det(a) ~= 0 && all(t(:)) fprintf('%s \n', 'e'' possibile usare l'' algoritmo di Thomas'); riga1(i) = 1; riga2(i) = 5*n-4; otherwise error('c contiene metodi sconosciuti') %% costruisco la matrice V V(1,:) = riga1; V(2,:) = riga2;
88 Esercizio 13
89 function [S] = es1_pp2015(x,varargin) %SOLUZIONE ES 1 PROVA PRELIMINARE 18 DICEMBRE 2015 %... %..._ if (M~=round(M)) M<0 error('m deve essere intero positivo') if (N~=round(N)) N<0 N>100 error('n deve essere intero positivo non superiore a 100') switch nargin case 1 N = 100; M = 5; case 2 N = varargin{1}; M = 5; case 3 N = varargin{1}; M = varargin{2}; otherwise error('controllare input')
90 eps = 0.5*10^(-M); F = exp(x^2); S=[]; ind = []; H(1)= 1; G(1)= H(1); if abs(g(1)-f) <= eps S = [S [G(1); 1]]; m=1; while ((size(s,2)<n) && (m<=100)) if m==1 H(2) = 2*x; else H(m+1) = 2*x*H(m)-2*m*H(m-1); G(m+1) = G(m) + x^m/factorial(m)*h(m+1); if abs(g(m+1)-f) <= eps S = [S [G(m+1); m]]; else ind = [ind m]; m = m+1; Numero massimo di iterazioni consentite --- stabilito in fase di programmazione
91 figure plot(ind,g(ind+1),'ro') hold on, if ~isempty(s) plot(s(2,:),s(1,:),'go') xlabel('m') ylabel('gm') title('successione') leg('elementi di G non in S','elementi di G in S')
92 Esercizio 14
93 function [A,P,varargout] = es2_pp2015(a,varargin) %SOLUZIONE ES 2 PROVA PRELIMINARE 18 DICEMBRE 2015 %... %..._ if nargin==0 error('pochi input') elseif nargin == 1 if (length(size(a))==2) & size(a,1)>1 & size(a,2)>1 B = zeros(size(a,2),1); else error('controllare la dimensione di A') elseif nargin == 2 if (length(size(a))~=2) size(a,1)==1 size(a,2)==1 error('controllare la dimensione di A') B = varargin{1}; B = B(:); if length(b)~=size(a,1) error('controllare la dimensione di B') else error('troppi input')
94 [nr,nc] = size(a); if nr ~= nc error('a deve essere quadrata') if det(a) == 0 error('la matrice e'' singolare') if all(tril(a)==a) P=1:nr; else for i=1:nr ind = find(a(i,:)~=0); P(i) = ind();
95 if length(unique(p))~=nr P = []; A = []; x = []; disp('non esiste permutazione che re A triangolare inferiore') else A(P,:) = A; X(1) = B(1)/A(1,1); for i=2:nr X(i) = (B(i)-sum(A(i,1:i-1).*X(1:i-1)))/(A(i,i)); X=X(:); if nargout==3 varargout{1}=x; elseif nargout<=1 error('pochi output') elseif nargout >3 error('troppi output')
UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita
UD4 - MATLAB M-file. Efficienza degli algoritmi. Formati d uscita M-files In MatLab è possibile eseguire istruzioni contenute in file esterni; Tali file sono chiamati M-file perché devono avere estensione.m
Introduzione al MATLAB c Parte 2
Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione
Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1
Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria R. Vitolo Dipartimento di Matematica Università di Lecce SaLUG! - Salento Linux User Group Il programma OCTAVE per l
Documentazione esterna al software matematico sviluppato con MatLab
Documentazione esterna al software matematico sviluppato con MatLab Algoritmi Metodo di Gauss-Seidel con sovrarilassamento Metodo delle Secanti Metodo di Newton Studente Amelio Francesco 556/00699 Anno
CALCOLO NUMERICO (C.L. Ing. delle Comunicazioni - AA 2013-14) Proff. F. Pitolli, A. Pascarella Progetti
CALCOLO NUMERICO (C.L. Ing. delle Comunicazioni - AA 2013-14) Proff. F. Pitolli, A. Pascarella Progetti 1. Il procedimento iterativo P (k+1) i = j Z a i 2 j P (k) j, k = 0, 1,... dove {P (k) i, i Z} è
Corso di Laurea in Ingegneria Informatica Analisi Numerica
Corso di Laurea in Ingegneria Informatica Lucio Demeio Dipartimento di Scienze Matematiche 1 2 Analisi degli errori Informazioni generali Libro di testo: J. D. Faires, R. Burden, Numerical Analysis, Brooks/Cole,
Studente: SANTORO MC. Matricola : 528
CORSO di LAUREA in INFORMATICA Corso di CALCOLO NUMERICO a.a. 2004-05 Studente: SANTORO MC. Matricola : 528 PROGETTO PER L ESAME 1. Sviluppare una versione dell algoritmo di Gauss per sistemi con matrice
Finestre grafiche. >> figure >> figure(n)
Finestre grafiche MATLAB ha anche la possibilità di lavorare con delle finestre grafiche sulle quali si possono fare disegni bidimensionali o tridimensionali. Una finestra grafica viene aperta con il comando
Laboratorio 2. Calcolo simbolico, successioni, limiti e derivate
Anno Accademico 2007-2008 Corso di Analisi 1 per Ingegneria Informatica Laboratorio 2 Calcolo simbolico, successioni, limiti e derivate 1 Introduzione al Toolbox simbolico Con le routines del Symbolic
Equazione di Keplero (eqz. nonlineari).
Equazione di Keplero (eqz. nonlineari). Risolvere col metodo di Newton, col metodo di bisezione e di punto fisso l equazione di Keplero: E = M + e sin(e) dove e è l eccentricità del pianeta, M l anomalia
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Esercitazione del 22/01/2013 Esercizio 1 Un sistema dispone di 16 pagine di memoria fisica e 64 di memoria virtuale. Sapo che l indirizzo
Interpolazione ed approssimazione di funzioni
Interpolazione ed approssimazione di funzioni Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 9 novembre 2007 Outline 1 Polinomi Valutazione di un polinomio Algoritmo di Horner
Generazione di Numeri Casuali- Parte 2
Esercitazione con generatori di numeri casuali Seconda parte Sommario Trasformazioni di Variabili Aleatorie Trasformazione non lineare: numeri casuali di tipo Lognormale Trasformazioni affini Numeri casuali
Corso di Visione Artificiale. Matlab per Visione. Samuel Rota Bulò
Corso di Visione Artificiale Matlab per Visione Samuel Rota Bulò Cos'è Matlab? MATLAB MATLAB - - MATrix MATrix LABoratory LABoratory Ambiente Ambiente di di sviluppo sviluppo ed ed esecuzione esecuzione
Lezione 8. La macchina universale
Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione
Comandi di Input/Output in Matlab
Comandi di Input/Output in Matlab Il comando format controlla la configurazione numerica dei valori esposta da MAT- LAB; il comando regola solamente come i numeri sono visualizzati o stampati, non come
Grafici tridimensionali
MatLab Lezione 3 Grafici tridimensionali Creazione di un Grafico 3D (1/4) Si supponga di voler tracciare il grafico della funzione nell intervallo x = [0,5]; y=[0,5] z = e -(x+y)/2 sin(3x) sin(3y) Si può
Analisi dei segnali nel dominio della frequenza
Laboratorio di Telecomunicazioni - a.a. 2010/2011 Lezione n. 7 Analisi dei segnali nel dominio della frequenza docente L.Verdoliva In questa lezione affrontiamo il problema dell analisi dei segnali tempo
MATLAB:Condizionamento Sistemi Lineari.
1 Francesca Mazzia Dipartimento Interuniversitario di Matematica Università di Bari MATLAB:Condizionamento Sistemi Lineari. Innanzitutto vediamo qual è la funzione Matlab che ci permette di calcolare il
Matlab: Funzioni. Informatica B. Daniele Loiacono
Matlab: Funzioni Informatica B Funzioni A cosa servono le funzioni? 3 x = input('inserisci x: '); fx=1 for i=1:x fx = fx*x if (fx>220) y = input('inserisci y: '); fy=1 for i=1:y fy = fy*y A cosa servono
RETI DI TELECOMUNICAZIONE
RETI DI TELECOMUNICAZIONE NOZIONI ELEMENTARI DI MATLAB Cos è MATLAB Il nome MATLAB sta per MATrix LABoratory E un linguaggio ad alta prestazione per l elaborazione tecnica E un sistema interattivo il cui
MATLAB (1) Introduzione e Operazioni con array
Laboratorio di Informatica per Ingegneria elettrica A.A. 2010/2011 Prof. Sergio Scippacercola MATLAB (1) Introduzione e Operazioni con array N.B. le slide devono essere utilizzate solo come riferimento
Equazioni non lineari
Equazioni non lineari Data una funzione f : [a, b] R si cerca α [a, b] tale che f (α) = 0. I metodi numerici per la risoluzione di questo problema sono metodi iterativi. Teorema Data una funzione continua
Corso di Calcolo Numerico
Corso di Calcolo Numerico Dott.ssa M.C. De Bonis Università degli Studi della Basilicata, Potenza Facoltà di Ingegneria Corso di Laurea in Ingegneria Meccanica Sistemi di Numerazione Sistema decimale La
Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x.
Funzioni Esercizio 1 Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x. Creare un altra funzione, di nome float cube(float x), che restituisce invece il
Integrazione numerica
Integrazione numerica Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ Lezione 6-20-26 ottobre 2009 Indice 1 Formule di quadratura semplici e composite Formule di quadratura
Esempio. Approssimazione con il criterio dei minimi quadrati. Esempio. Esempio. Risultati sperimentali. Interpolazione con spline cubica.
Esempio Risultati sperimentali Approssimazione con il criterio dei minimi quadrati Esempio Interpolazione con spline cubica. Esempio 1 Come procedere? La natura del fenomeno suggerisce che una buona approssimazione
NUMERI COMPLESSI. Test di autovalutazione
NUMERI COMPLESSI Test di autovalutazione 1. Se due numeri complessi z 1 e z 2 sono rappresentati nel piano di Gauss da due punti simmetrici rispetto all origine: (a) sono le radici quadrate di uno stesso
Corso di Matematica per la Chimica
Dott.ssa Maria Carmela De Bonis a.a. 203-4 I sistemi lineari Generalità sui sistemi lineari Molti problemi dell ingegneria, della fisica, della chimica, dell informatica e dell economia, si modellizzano
Metodi Stocastici per la Finanza
Metodi Stocastici per la Finanza Tiziano Vargiolu vargiolu@math.unipd.it 1 1 Università degli Studi di Padova Anno Accademico 2011-2012 Lezione 6 Indice 1 Il metodo bootstrap 2 Esercitazione 3 Interpolazione
Introduzione a Matlab
Introduzione a Matlab Ruggero Donida Labati Dipartimento di Tecnologie dell Informazione via Bramante 65, 26013 Crema (CR), Italy ruggero.donida@unimi.it Perché? MATLAB is a high-level technical computing
VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.
Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?
Corso Matlab : Terza lezione (Esercitazione, 04/10/13) Samuela Persia, Ing. PhD.
Advanced level Corso Matlab : Terza lezione (Esercitazione, 04/10/13) Samuela Persia, Ing. PhD. Sommario Richiami Teoria Cenni Files Matlab File.m Script file File.mat Grafici Acquisizione dati esterni
Lab. 1 - Introduzione a Matlab
Lab. 1 - Introduzione a Matlab Alcune informazioni su Matlab Matlab è uno strumento per il calcolo scientifico utilizzabile a più livelli, dalla calcolatrice tascabile, alla simulazione ed analisi di sistemi
CONTROLLI AUTOMATICI E AZIONAMENTI ELETTRICI Ingegneria Meccatronica
CONTROLLI AUTOMATICI E AZIONAMENTI ELETTRICI Ingegneria Meccatronica CONTROLLI AUTOMATICI e AZIONAMENTI ELETTRICI INTRODUZIONE A MATLAB Ing. Alberto Bellini Tel. 0522 522626 e-mail: alberto.bellini@unimore.it
Indice Elementi di analisi delle matrici I fondamenti della matematica numerica
Indice 1. Elementi di analisi delle matrici 1 1.1 Spazivettoriali... 1 1.2 Matrici... 3 1.3 Operazionisumatrici... 4 1.3.1 Inversadiunamatrice... 6 1.3.2 Matricietrasformazionilineari... 7 1.4 Tracciaedeterminante...
Esercitazione 10. 21 Dicembre 2010 (2 ore)
Esercitazione 10 21 Dicembre 2010 (2 ore) Riassunto Nell'esecitazione di oggi abbiamo lavorato ancora sulle funzioni. Abbiamo inoltre introdotto alcune delle seguenti funzioni per tracciare i grafici.
Matlab: Strutture di Controllo. Informatica B
Matlab: Strutture di Controllo Informatica B Tipo di dato logico È un tipo di dato che può avere solo due valori true (vero) 1 false (falso) 0 I valori di questo tipo possono essere generati direttamente
EQUAZIONI non LINEARI
EQUAZIONI non LINEARI Francesca Pelosi Dipartimento di Matematica, Università di Roma Tor Vergata CALCOLO NUMERICO e PROGRAMMAZIONE http://www.mat.uniroma2.it/ pelosi/ EQUAZIONI non LINEARI p.1/44 EQUAZIONI
Esercizi per il corso di Algoritmi e Strutture Dati
1 Esercizi per il corso di Algoritmi e Strutture Dati Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, né in C++, etc. ). Di tutti gli algoritmi
Scilab: I Polinomi - Input/Output - I file Script
Scilab: I Polinomi - Input/Output - I file Script Corso di Informatica CdL: Chimica Claudia d'amato claudia.damato@di.uniba.it Polinomi: Definizione... Un polinomio è un oggetto nativo in Scilab Si crea,
Rapida Introduzione all uso del Matlab Ottobre 2002
Rapida Introduzione all uso del Matlab Ottobre 2002 Tutti i tipi di dato utilizzati dal Matlab sono in forma di array. I vettori sono array monodimensionali, e così possono essere viste le serie temporali,
Introduzione al MATLAB c Parte 1
Introduzione al MATLAB c Parte 1 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ Lezione 1-2 maggio 2007 Outline 1 Cos è il MATLAB Componenti principali di MATLAB 2 Avvio Avviare
Condizionamento di sistemi lineari.
Condizionamento di sistemi lineari. Ángeles Martínez Calomardo e Alvise Sommariva Università degli Studi di Padova Dipartimento di Matematica Pura e Applicata 10 dicembre 2012 Ángeles Martínez Calomardo
Approssimazione polinomiale di funzioni e dati
Approssimazione polinomiale di funzioni e dati Approssimare una funzione f significa trovare una funzione f di forma più semplice che possa essere usata al posto di f. Questa strategia è utilizzata nell
Laboratorio Algoritmi 2014 Secondo Semestre
Laboratorio Algoritmi 2014 Secondo Semestre Lunedì 14:30 17:30 Aula 2. Ricevimento: inviare e-mail a frasca@di.unimi.it. 44 ore (9 CFU) Linguaggio di programmazione: MATLAB Esame : progetto e/o prova scritta
Introduzione allo Scilab Parte 3: funzioni; vettori.
Introduzione allo Scilab Parte 3: funzioni; vettori. Felice Iavernaro Dipartimento di Matematica Università di Bari http://dm.uniba.it/ iavernaro felix@dm.uniba.it 13 Giugno 2007 Felice Iavernaro (Univ.
Manuale Istruzione compilazione C1 per operatore economico
Informationssystem für Öffentliche Verträge Manuale Istruzione compilazione C1 per operatore economico Vers. 2016-05 IT AUTONOME PROVINZ BOZEN - SÜDTIROL PROVINCIA AUTONOMA DI BOLZANO - ALTO ADIGE PROVINZIA
Condizionamento del problema
Condizionamento del problema x 1 + 2x 2 = 3.499x 1 + 1.001x 2 = 1.5 La soluzione esatta è x = (1, 1) T. Perturbando la matrice dei coefficienti o il termine noto: x 1 + 2x 2 = 3.5x 1 + 1.002x 2 = 1.5 x
+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice
Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica
Dimensione di uno Spazio vettoriale
Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione
SISTEMI LINEARI QUADRATI: METODI ITERATIVI
SISTEMI LINEARI QUADRATI: METODI ITERATIVI CALCOLO NUMERICO e PROGRAMMAZIONE SISTEMI LINEARI QUADRATI:METODI ITERATIVI p./54 RICHIAMI di ALGEBRA LINEARE DEFINIZIONI A R n n simmetrica se A = A T ; A C
Il foglio elettronico
Il foglio elettronico Microsoft 1 Rappresentazione di funzioni Ciò che viene riportato è il contenuto delle celle. non esegue la rappresentazione di funzioni note in forma esplicita come fanno alcuni programmi
Equazioni non lineari
CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA ELETTRICA Equazioni non lineari Metodi iterativi per l approssimazione di radici Corso di calcolo numerico 2 01/11/2010 Manuela Carta INDICE Introduzione Metodo
Advanced level. Corso Matlab : Samuela Persia, Ing. PhD.
Advanced level Corso Matlab : Seconda lezione (Esercitazione, 27/09/13) Samuela Persia, Ing. PhD. Sommario Presentazione Programma delle Esercitazioni Ogni Esercitazione prevede: Richiami Teoria e Sintassi
if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t.
Il programma MATLAB In queste pagine si introduce in maniera molto breve il programma di simulazione MAT- LAB (una abbreviazione di MATrix LABoratory). Introduzione MATLAB è un programma interattivo di
Facoltà di Ingegneria Industriale. Matlab/Octave - Esercitazione 3
Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti Matlab/Octave - Esercitazione 3 funzioni definizione ed invocazione delle funzioni semantica dell invocazione
Introduzione a Matlab
Introduzione a Matlab 1 Introduzione Matlab (MATrix LABoratory) è un software per il calcolo scientifico, particolarmente sviluppato per quanto riguarda la gestione ed elaborazione di vettori e matrici.
Dispense del corso di Laboratorio di Calcolo Numerico
Dispense del corso di Laboratorio di Calcolo Numerico Dott Marco Caliari aa 2008/09 Questi appunti non hanno alcuna pretesa di completezza Sono solo alcune note ed esercizi che affiancano il corso di Calcolo
Polinomio di secondo grado: Calcolo delle soluzioni di una equazione di secondo grado: import GraphicIO.*; public class Polinomio2 {
Polinomio di secondo grado: public class Polinomio2 GraphicConsole.println ("Inserisci i coefficienti interi del polinomio di secondo grado"); int a = GraphicConsole.readInt("a ="); int b = GraphicConsole.readInt("b
RICHIAMI SULLE MATRICI. Una matrice di m righe e n colonne è rappresentata come
RICHIAMI SULLE MATRICI Una matrice di m righe e n colonne è rappresentata come A = a 11 a 12... a 1n a 21 a 22... a 2n............ a m1 a m2... a mn dove m ed n sono le dimensioni di A. La matrice A può
Corso di Calcolo Numerico
Corso di Calcolo Numerico Dottssa MC De Bonis Università degli Studi della Basilicata, Potenza Facoltà di Ingegneria Corso di Laurea in Ingegneria Meccanica Corso di Calcolo Numerico - Dottssa MC De Bonis
Selezione di un portafoglio di titoli in presenza di rischio. Testo
Selezione di un portafoglio di titoli in presenza di rischio Testo E ormai pratica comune per gli operatori finanziari usare modelli e metodi basati sulla programmazione non lineare come guida nella gestione
Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari
Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari Felice Iavernaro Dipartimento di Matematica Università di Bari http://dm.uniba.it/ iavernaro 6 Giugno 2007 Felice Iavernaro (Univ.
1) Dati in ingresso 2 numeri, l algoritmo calcola e stampa a video la loro somma
Algoritmo: E un insieme finito di azioni che risolvono un determinato problema, trasformando i dati di input in di dati di output (o risultati) attraverso relazioni o formule che legano i dati in ingresso
Interpolazione di immagini
Interpolazione di immagini Data un immagine in formato png (o jpeg o altro) di m n pixel, la si vuole portare ad una dimensione maggiore (ad esempio 2m 2n pixel). c Paola Gervasio - Calcolo Scientifico
FONDAMENTI DI SEGNALI E TRASMISSIONE 6 Laboratorio
FONDAMENTI DI SEGNALI E TRASMISSIONE 6 Laboratorio Paolo Mazzucchelli mazzucch@elet.polimi.it Quantizzazione Il segnale y(t) non solo è campionato sull asse dei tempi, ma anche i valori di ordinata sono
BOZZA Introduzione a MATLAB
BOZZA Introduzione a MATLAB BOZZA BOZZA Matlab sta per Matrix Laboratory ed è un ambiente interattivo e un linguaggio di calcolo tecnico di alto livello per lo sviluppo di algoritmi, la rappresentazione
PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico
ISTITUTO TECNICO STATALE MARCHI FORTI Viale Guglielmo Marconi n 16-51017 PESCIA (PT) - ITALIA PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico Docente PARROTTA GIOVANNI
Pre Test 2008... Matematica
Pre Test 2008... Matematica INSIEMI NUMERICI Gli insiemi numerici (di numeri) sono: numeri naturali N: insieme dei numeri interi e positivi {1; 2; 3; 4;...} numeri interi relativi Z: insieme dei numeri
Tutorial di Matlab. Davide Manca Calcoli di Processo dell Ingegneria Chimica Politecnico di Milano
TM Tutorial di Matlab TM Avvio di Matlab TM 2 Avvio di Matlab Si noti che Matlab esegue i calcoli e memorizza le variabili (scalari, vettoriali o matriciali) in doppia precisione TM 3 Matrici Per lanciare
Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 1 Cristian Del Fabbro Reperibilità homepage corso: https://users.dimi.uniud.it/~cristian.delfabbro/teaching.php email: cristian.delfabbro@uniud.it telefono: 0432 558676
Diario del corso di Analisi Matematica 1 (a.a. 2015/16)
Diario del corso di Analisi Matematica (a.a. 205/6) 4 settembre 205 ( ora) Presentazione del corso. 6 settembre 205 (2 ore) Numeri naturali, interi, razionali, reali. 2 non è razionale. Introduzione alle
INTRODUZIONE A MATLAB Matrix Laboratory
INTRODUZIONE A MATLAB Matrix Laboratory Introduzione Linguaggio di programmazione per applicazioni scientifiche e numeriche Vasto set di funzioni predefininte Interprete di comandi Possibilità di scrivere
Il comando provoca il salvataggio dello stato e la terminazione dell esecuzione.
Scrivere un programma per la gestione di una videoteca. Il programma deve essere in grado di tenere traccia dello stato corrente (presente/in prestito a x/smarrito da x/danneggiato da x a livello nn) e
MINISTERO DELL'ISTRUZIONE, DELL'UNIVERSITÀ, DELLA RICERCA SCUOLE ITALIANE ALL ESTERO
Sessione Ordinaria in America 4 MINISTERO DELL'ISTRUZIONE, DELL'UNIVERSITÀ, DELLA RICERCA SCUOLE ITALIANE ALL ESTERO (Americhe) ESAMI DI STATO DI LICEO SCIENTIFICO Sessione Ordinaria 4 SECONDA PROVA SCRITTA
MATLAB - Introduzione Enrico Nobile. MATLAB - Introduzione. E. Nobile - DINMA - Sezione di Fisica Tecnica, Università di Trieste
Enrico Nobile I a Parte 1 MATLAB (MATrix LABoratory); Versione 5.2; Basato sul concetto - ampio - di Matrici; Calcolo numerico, visualizzazione etc. Facile utilizzo di librerie per il calcolo numerico
Esercitazioni di Calcolo Numerico 23-30/03/2009, Laboratorio 2
Esercitazioni di Calcolo Numerico 23-30/03/2009, Laboratorio 2 [1] Metodo di Bisezione gli estremi a e b di un intervallo reale trovi uno zero della funzione f(x) nell intervallo [a, b] usando il metodo
Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali
a Visual Basic Lezione 1 Concetti base e istruzioni condizionali Mario Alviano Introduzione all informatica Università della Calabria http://alviano.net/introinfo A.A. 2008/09 Introduzione Un esempio:
Esercitazioni in Maple
Esercitazioni in Maple 6 giugno 2007 Capitolo 1 Prima esercitazione 1.1 Anelli di polinomi Per cominciare bisogna dichiarare un anello di polinomi. Possiamo lavorare con un qualsiasi anello di tipo dove
Richiami su norma di un vettore e distanza, intorni sferici in R n, insiemi aperti, chiusi, limitati e illimitati.
PROGRAMMA di Fondamenti di Analisi Matematica 2 (DEFINITIVO) A.A. 2010-2011, Paola Mannucci, Canale 2 Ingegneria gestionale, meccanica e meccatronica, Vicenza Testo Consigliato: Analisi Matematica, M.
Corso di Laurea in Matematica, Università di Roma La Sapienza Corso di ANALISI NUMERICA Esercitazioni in Laboratorio, 16 Maggio 2011
Corso di Laurea in Matematica, Università di Roma La Sapienza Corso di ANALISI NUMERICA Esercitazioni in Laboratorio, 16 Maggio 2011 Foglio 4: Metodi diretti per i sistemi lineari Scrivere un programma
MAGNETIC RESONANCE IMAGING
MAGNETIC RESONANCE IMAGING L'MRI èuna tecnica di generazione di immagini usata prevalentemente per scopi diagnostici in campo medico, basata sul principio fisico della risonanza magnetica nucleare. Le
9 Metodi diretti per la risoluzione di sistemi lineari: fattorizzazione P A = LU
9 Metodi diretti per la risoluzione di sistemi lineari: fattorizzazione P A LU 9.1 Il metodo di Gauss Come si è visto nella sezione 3.3, per la risoluzione di un sistema lineare si può considerare al posto
sezioni incluso Espandi tutto 0. Elementi di matematica elementare (parzialmente incluso) Sezione 0.1: I numeri reali Sezione 0.2: Regole algebriche.
sezioni incluso Espandi tutto 0. Elementi di matematica elementare (parzialmente incluso) Sezione 0.1: I numeri reali Sezione 0.2: Regole algebriche. Potenze e percentuali Sezione 0.3: Disuguaglianze Sezione
Metodi Numerici per Equazioni Ellittiche
Metodi Numerici per Equazioni Ellittiche Vediamo ora di descrivere una tecnica per la risoluzione numerica della più semplice equazione ellittica lineare, l Equazione di Laplace: u xx + u yy = 0, (x, y)
Lezioni su MATLAB. Ingegneria Civile/Meccanica
Lezioni su ali in Ingegneria Civile/Meccanica Corso di laboratorio di informatica 06/07 Sommario ali in 1 2 3 4 ali 5 6 in ali in : MATrix LABoratory È un ambiente per l analisi e la simulazione dei sistemi
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Script. Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 13 Agosto 2014
Script Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 13 Agosto 2014 1 Obiettivi Script 2 Script (m-file) Uno script è un file di testo contenente una sequenza di comandi MATLAB
Protocollo dei saperi imprescindibili Ordine di scuola: professionale
Protocollo dei saperi imprescindibili Ordine di scuola: professionale DISCIPLINA: MATEMATICA RESPONSABILE: CAGNESCHI F. IMPERATORE D. CLASSE: prima servizi commerciali Utilizzare le tecniche e le procedure
Istituto Professionale di Stato per l Industria e l Artigianato Giancarlo Vallauri. Classi I C I G
Esercizi Estivi di Matematica a.s. 0/04 Istituto Professionale di Stato per l Industria e l Artigianato Giancarlo Vallauri Classi I C I G ALUNNO CLASSE Ulteriore ripasso e recupero anche nei siti www.vallauricarpi.it
LEZIONE ICO 12-10-2009
LEZIONE ICO 12-10-2009 Argomento: introduzione alla piattaforma Matlab. Risoluzione numerica di problemi di minimo liberi e vincolati. Lucia Marucci marucci@tigem.it http://www.mathworks.com/access/helpdesk/help/toolbo
TEMA 1. 1. Della seguente matrice, calcolare i complementi algebrici e il determinante: a + b 1 a 2 S = a + b + 3 a + 2b. x = t. f = x 2 + 2xy 3y 2,
Prova scritta di MATEMATICA B1 Vicenza, 17 marzo 008 TEMA 1 1 1 A = 1 0 1. 3 0 1. Stabilire se il seguente sottoinsieme di M(, R): {( ) a + b 1 a S = a, b R}, a + b + 3 a + b è un sottospazio di M(, R).
Gestione di files Motivazioni
Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)
Rilevazione degli apprendimenti. Anno Scolastico 2006 2007 PROVA DI MATEMATICA. Scuola Secondaria di II grado. Classe Terza Tipo A. Codici. Scuola:...
Ministero della Pubblica Istruzione Rilevazione degli apprendimenti Anno Scolastico 2006 2007 PROVA DI MATEMATICA Scuola Secondaria di II grado Classe Terza Tipo A Codici Scuola:..... Classe:.. Studente:.
LEZIONE DI MATLAB 2.0. Ing.Irene Tagliente E-mail: irene.tagliente@opbg.net
LEZIONE DI MATLAB 2.0 Ing.Irene Tagliente E-mail: irene.tagliente@opbg.net Cos è Matlab Il programma MATLAB si è imposto in ambiente ingegneristico come strumento per la simulazione e l'analisi dei sistemi
Introduzione agli ambienti
Introduzione agli ambienti MATLAB c e Octave Utilizzo di Matlab/Octave ed operazioni fondamentali. Primi rudimenti di grafica. Paola Gervasio 1 MATLAB = MATrix LABoratory è un ambiente integrato per la
Esercitazione 4. Richiami di Teoria
Esercitazione 4 Richiami di Teoria B-spline Le curve costituite da un unico polinomio sono spesso poco adeguate per descrivere forme geometriche complesse. I principali inconvenienti sono i seguenti: ˆ
Matematica con il foglio di calcolo
Matematica con il foglio di calcolo Sottotitolo: Classe: V primaria Argomento: Numeri e operazioni Autore: Guido Gottardi, Alberto Battaini Introduzione: l uso del foglio di calcolo offre l opportunità
MATLAB-SIMULINK. Grafici 2D e 3D. Ing. Alessandro Pisano. pisano@diee.unica.it
1 MATLAB-SIMULINK Grafici 2D e 3D Ing. Alessandro Pisano pisano@diee.unica.it 2 Indice 3 7 10 10 11 12 13 14 16 17 22 24 28 34 36 39 44 Grafici 2D Griglia, label e titolo Grafici sovrapposti. Colori Legenda
Metodi diretti per la soluzione di sistemi lineari
Metodi diretti per la soluzione di sistemi lineari N Del Buono 1 Introduzione Consideriamo un sistema di n equazioni in n incognite a 11 x 1 + a 12 x 2 + a 13 x 3 + + a 1n x n = b 1, a 21 x 1 + a 22 x