Anteprima
Vedrai una selezione di 11 pagine su 48
Esercizi d'esame svolti su Matlab Pag. 1 Esercizi d'esame svolti su Matlab Pag. 2
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Esercizi d'esame svolti su Matlab Pag. 6
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Esercizi d'esame svolti su Matlab Pag. 11
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Esercizi d'esame svolti su Matlab Pag. 16
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Esercizi d'esame svolti su Matlab Pag. 21
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Esercizi d'esame svolti su Matlab Pag. 26
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Esercizi d'esame svolti su Matlab Pag. 31
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Esercizi d'esame svolti su Matlab Pag. 36
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Esercizi d'esame svolti su Matlab Pag. 41
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Esercizi d'esame svolti su Matlab Pag. 46
1 su 48
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Metodi numerici - Esercizi

Y=A;end23/02/23 11.02 C:\Users\hp\Desktop\Metodi n...\sum_int.m 1 of 1BAS_09function y = sum_int(x)% Si scriva una funzione capace di calcolare la somma dei numeri% interi da 1 a 2^x, dove x è un numero intero argomento della funzione.% Ad esempio se x=2 y è pari a 1+2+3+4=10.a=2^x;v=1:1:a;Nv=length(v);y=0;for i=1:1:Nvy=y+v(i);endend23/02/23 11.02 C:\Users\hp\Desktop\Meto...\nel_vettore.m 1 of 1BAS_10function y=nel_vettore(x,a)% Si scriva una funzione che accetta come argomenti il vettore x e una variabilescalare a.% La funzione restituisce il valore y=1 se il numero a è presente nel vettore x, y=0se a non è presente in x.% Ad esempio y=nel_vettore([3 5 8 1],8) restituisce y=1, mentre y=nel_vettore([3 5 81],4) restituisce y=0.Nx=length(x);y=0;for i=1:Nxif x(i)==ay=1;endendend23/02/23 11.03 C:\Users\hp\Desktop\Metod...\estrairiga.m 1 of 1BAS_11function [y]=estrairiga(A,n)% Si scriva una funzione capace di estrarre la riga n dalla matrice A.% Restituisce in
uscita il vettore riga y.
<code>y=A(n,:);end</code>
23/02/23 11.03 C:\Users\hp\Desktop\Me...\estraicolonna.m 1 of 1BAS_12
<code>function [y]=estraicolonna(A,n)% Si scrive una funzione capace di estrarre la colonna n dalla atrice A.% Restituisce in uscita il vettore colonna y.</code>
<code>y=A(:,n);end</code>
23/02/23 11.03 C:\Users\hp\D...\matrice_funzioni_tempo.m 1 of 1BAS_13
<code>function [FF]=matrice_funzioni_tempo(dt,tf,m1,m2,m3,omega)% Il vettore tt contiene gli istanti di tempo da 0 a tf con passo dt.% Si scriva una funzione capace di restituire in uscita una matrice FF di% sei righe e numero di colonne pari alla lunghezza del vettore tt.% Le righe da 1 a 3 della matrice FF devono contenere solo elementi nulli,% mentre le righe da 4 a 6 contengono rispettivamente le seguenti funzioni% nel tempo:% riga 4: m1*sin(omega*tt)% riga 5: m2*sin(omega*tt)% riga 6: m3*sin(omega*tt)% I parametri dt, tf, m1, m2, m3 e omega sono forniti come argomento della% funzione.</code>
<code>tt=0:dt:tf;Ntt=length(tt);FF=zeros(6, Ntt);for i=4:6switch icase</code>
4FF(i,:)=m1*sin(omega*tt);
case 5FF(i,:)=m2*sin(omega*tt);
case 6FF(i,:)=m3*sin(omega*tt);
end
end
end
23/02/23 11.04 C:\Users\hp\D...\matrice_funzioni_tempo.m 1 of 2BAS_14
function [FF]=matrice_funzioni_tempo(dt,tf,m1,m2,m3,omega,tinizio_segnale,tfine_segnale)
% Il vettore tt contiene gli istanti di tempo da 0 a tf con passo dt.
% Si scriva una funzione capace di restituire in uscita una matrice FF di
% sei righe e numero di colonne pari alla lunghezza del vettore tt.
% Le righe da 1 a 3 della matrice FF devono contenere solo elementi nulli,
% mentre le righe da 4 a 6 contengono rispettivamente le seguenti funzioni
% nel tempo:
% riga 4: 0 per t<tinizio_segnale; m1*sin(omega*tt) per
% tinizio_segnale<=t<=tfine_segnale; 0 per t>tfine_segnale
% riga 5: 0 per t<inizio_segnale; m2*sin(omega*tt) per
% inizio_segnale<=t<=tfine_segnale; 0 per t>tfine_segnale
% riga 6: 0 per t<inizio_segnale; m3*sin(omega*tt) per
% inizio_segnale<=t<=tfine_segnale; 0 per t>tfine_segnale
% I
parametri dt, tf, m1, m2, m3, omega, tinizio_segnale, tfine_segnale sono forniti come argomento della funzione.
Ad esempio per il seguente valore dei parametri:
dt=0.5; omega=1; m1=15000; m2=125000; m3=10000; tt=0:dt:tf;
tinizio_segnale=2*pi; tfine_segnale=6*pi;

le serie temporali contenute nelle sei righe della matrice sono rappresentate in figura.

tt=0:dt:tf;
Ntt=length(tt);
FF=zeros(6,Ntt);

for i=4:6
    switch icase 4
        for j=1:Ntt
            if tt(j)<tinizio_segnale
                FF(i,j)=0;
            elseif tt(j)>=tinizio_segnale && tt(j)<=tfine_segnale
                FF(i,j)=m1*sin(omega*tt(j));
            elseif tt(j)>tfine_segnale
                FF(i,j)=0;
            end
        end
    end

    case 5
        for j=1:Ntt
            if tt(j)<tinizio_segnale
                FF(i,j)=0;
            elseif tt(j)>=tinizio_segnale && tt(j)<=tfine_segnale
                FF(i,j)=m2*sin(omega*tt(j));
            elseif tt(j)>tfine_segnale
                FF(i,j)=0;
            end
        end
    end

    case 6
        for j=1:Ntt
            if tt(j)<tinizio_segnale
                FF(i,j)=0;
            elseif tt(j)>=tinizio_segnale && tt(j)<=tfine_segnale
                FF(i,j)=m3*sin(omega*tt(j));
            elseif
tt(j)>tfine_segnaleFF(i,j)=0;end
23/02/23 11.04 C:\Users\hp\D...\matrice_funzioni_tempo.m 2 of 2
end
end
end
end

ESERCIZI ODE_BV
23/02/23 11.10 C:\Users\hp\Desktop\Metodi n...\Diretto.m 1 of 1
ODE_BV_01
function [x T] = Diretto(L,dx,hp,Tinf,Ta,Tb)
%non modificare questa riga

%% Preparazione delle variabili
x=0:dx:L; x=x';
Nx=length(x);
K=zeros(Nx);
B=zeros(Nx,1);

%% Preparazione matrici K e B
K(1,1)=1; B(1)=Ta;
K(Nx,Nx)=1; B(Nx)=Tb;

alfa=-2-hp*dx^2;
for ix=2:Nx-1
    K(ix,ix)=alfa;
    K(ix,ix-1)=1;
    K(ix,ix+1)=1;
    B(ix)=-dx^2*hp*Tinf;
end

%% Risoluzione per T
T=K\B;
end

23/02/23 11.11 C:\Users\hp\Desktop\Metodi n...\Diretto.m 1 of 1
ODE_BV_02
function [x T] = Diretto(L,dx,hp,Ta,Tb)
%non modificare questa riga

%% Preparazione delle variabili
x=0:dx:L; x=x';
Nx=length(x);
K=zeros(Nx);
B=zeros(Nx,1);
Tinf=interp1([0, L/2 ,L], [200, 300, 250], x);

%% Preparazione matrici K e B
K(1,1)=1; B(1)=Ta;
K(Nx,Nx)=1; B(Nx)=Tb;

alfa=-2-hp*dx^2;
for ix=2:Nx-1
    K(ix,ix)=alfa;
    K(ix,ix-1)=1;
    K(ix,ix+1)=1;
    B(ix)=-dx^2*hp*Tinf(ix);
end
Risoluzione per TT=K\B;end23/02/23 11.11 C:\Users\hp\Desktop\Metodi n...\Diretto.m 1 of 1ODE_BV_03function [x T] = Diretto(L,dx,hp,Tinf,Ta)%non modificare questa rigax=0:dx:L; x=x'; Nx=length(x);K=zeros(Nx,Nx); B=zeros(Nx,1);alfa=-2-hp*dx^2;K(1,1)=1; B(1)=Ta;K(Nx,Nx)=alfa; K(Nx,Nx-1)=2; B(Nx)=-dx^2*hp*Tinf;for ix=2:Nx-1K(ix,ix)=alfa;K(ix,ix-1)=1;K(ix,ix+1)=1;B(ix)=-dx^2*hp*Tinf;endT=K\B;end23/02/23 11.11 C:\Users\hp\Desktop\Metodi...\Iterativo.m 1 of 1ODE_BV_04function [x T] = Iterativo(L,dx,hp,Tinf,Ta,Tb,nite)%non modificare questa rigax=0:dx:L; x=x'; Nx=length(x);Told=zeros(Nx,1); T=zeros(Nx,1);Told(1)=Ta; Told(end)=Tb;T(1)=Ta; T(end)=Tb;alfa=-2-(dx^2*hp);for it=1:nitefor ix=2:Nx-1T(ix)=(1/alfa)*(-Told(ix-1)-Told(ix+1)-(hp*dx^2*Tinf));endTold=T;endend23/02/23 11.11 C:\Users\hp\Desktop\Metodi num...\trave.m 1 of 1ODE_BV_05function [x y] = trave(dx,L,w)% non modificare questa rigaE=200;I=30000;x=0:dx:L; x=x'; Nx=length(x);K=zeros(Nx); B=zeros(Nx,1);alfa=-2;K(1,1)=1;
B(1)=0;
K(Nx,Nx)=1;
B(Nx)=0;
for ix=2:Nx-1
    K(ix,ix)=alfa;
    K(ix,ix-1)=1;
    K(ix,ix+1)=1;
    B(ix)=((w*L*x(ix)/2)-(w*(x(ix)^2)/2))*(dx^2/(E*I));
end
y=K\B;
end
23/02/23 11.12 C:\Users\hp\Desktop\Metodi...\Iterativo.m 1 of 1
ODE_BV_06
function [x T] = Iterativo(L,dx,hp,Tinf,Ta,Tb,nite)
%non modificare questa riga
x=0:dx:L; x=x'; Nx=length(x);
Told=zeros(Nx,1); T=zeros(Nx,1);
Told(1)=Ta; Told(end)=Tb;
T(1)=Ta; T(end)=Tb;
alfa=-2-(dx^2*hp);
for it=1:nite
    for ix=2:Nx-1
        T(ix)=(1/alfa)*(-T(ix-1)-Told(ix+1)-(hp*dx^2*Tinf));
    end
    Told=T;
end
end
23/02/23 11.13 C:\Users\hp\Desktop\Metodi...\Iterativo.m 1 of 1
ODE_BV_07
function [x T] = Iterativo(L,dx,hp,Tinf,Ta,Tb,nite)
%non modificare questa riga
lambda=1.2;
x=0:dx:L; x=x'; Nx=length(x);
Told=zeros(Nx,1); T=zeros(Nx,1);
Told(1)=Ta; Told(end)=Tb;
T(1)=Ta; T(end)=Tb;
alfa=-2-(dx^2*hp);
for it=1:nite
    for ix=2:Nx-1
        T(ix)=(1-lambda)*Told(ix)+lambda*(1/alfa)*(-T(ix-1)-Told(ix+1)-(hp*dx^2*Tinf));
    end
    Told=T;
end
end
ESERCIZI ODE_IV
23/02/23 11.15 C:\Users\hp\Desktop\Metodi num...\ode01.m 1
function y = ode01(a,y0,dt) %non modificare il nome della function% y è il risultato della funzione e deve essere un vettore colonna che contiene il valore di y agli istanti temporali 0, dt, 2*dt, ..., 10. qui di seguito va sviluppato il programma t=0:dt:10; t=t'; Nt=length(t); y=zeros(Nt,1); y(1)=y0; for it=2:Nt y(it)=y(it-1)+dt*(-a*y(it-1)); end end function [tt, xm, vm] = funzione_massa_molla_smorzatore(m,mu,k,xm0,vm0,dt)%non modificare il nome della function tt=0:dt:1000; tt=tt'; Ntt=length(tt); xm=zeros(Ntt,1); vm=xm; f=xm; xm(1)=xm0; vm(1)=vm0; for itt=2:Ntt xm(itt)=xm(itt-1)+dt*(vm(itt-1)); vm(itt)=vm(itt-1)+dt*(-k/m*xm(itt-1)-mu/m*vm(itt-1)+f(itt-1)); end end function [tt, xm, vm] = funzione_massa_molla_smorzatore(m,mu,k,xm0,vm0,dt,omega,tf)%non modificare il nome della function tt=0:dt:tf; tt=tt'; Ntt=length(tt); xm=zeros(Ntt,1); vm=xm; xm(1)=xm0; vm(1)=vm0; f=sin(omega*tt); for itt=2:Ntt xm(itt)=xm(itt-1)+dt*(vm(itt-1)); vm(itt)=vm(itt-1)+dt*(-k/m*xm(itt-1)-mu/m*vm(itt-1)+f(itt-1)/m); end end 23/02/23 11.16 C:\Users\hp\De...\svuotamento_serbatoio.m 1 of 1 ODE_IV_03 function [t, h] = svuotamento_serbatoio(dt, tf, Aserbatoio, h0, Aforo) % non modificare il nome della function t=0:dt:tf; t=t'; Nt=length(t); C=0.55; g=9.81; h=zeros(Nt,1); h(1)=h0; for it=2:Nt h(it)=h(it-1)+dt*((-C*Aforo*(2*g*h(it-1))^0.5)/Aserbatoio); end end 23/02/23 11.17 C:\Users\hp\Desktop\Met...\doppia_massa.m 1 of 1 ODE_IV_04a function [x1 v1 x2 v2] = doppia_massa(dt,tf) % NON MODIFICARE NOME E ARGOMENTI DELLA FUNCTION! k1=5; k2=5; m1=2; m2=2; w1=5; w2=5; L1=2; L2=2; x10=L1; x20=L1+w1+L2+6; v10=0; v20=0; t=0:dt:tf; t=t'; Nt=length(t); N=2; m=[m1, m2]; %% costruzione matrici M, D e K M=diag(m); D=zeros(N); K=zeros(N); K(1,1)=k1+k2; K(1,2)=-k2; % prima riga di K K(2,1)=-k2; K(2,2)=k2; % seconda riga di K %% costruzione MM e KK MM=[eye(N),
zeros(N); zeros(N), M];KK=[zeros(N), -eye(N); K, D];%% preparazione variabiliY=zeros(2*N,Nt); F=zeros(2*N,Nt);F(3,:)=(k1*L1)-(k2*w1)-(k2*L2);F(4,:)=(w1*k2)+(L2*k2);%% integrazione con metodo di EuleroY(1,1)=x10; Y(2,1)=x20;Y(3,1)=v10; Y(4,1)=v20;for it=1:Nt-1Y(:,it+1)=Y(:,it)+dt*inv(MM)*(-KK*Y(:,it)+F(:,it));endx1=Y(1,:)';x2=Y(2,:)';v1=Y(3,:)';v2=Y(4,:)';end23/02/23 11.17 C:\Users\hp\Desktop\Met...\doppia_massa.m 1 of 1ODE_IV_04bfunction [x1 v1 x2 v2] = doppia_massa(dt,tf) % NON MODIFICARE NOME E ARGOMENTI DELLAFUNCTION!k1=5; k2=5;m1=2; m2=2;w1=5; w2=5;L1=2; L2=2;x10=L1; x20=L1+w
Dettagli
Publisher
A.A. 2022-2023
48 pagine
1 download
SSD Scienze matematiche e informatiche MAT/06 Probabilità e statistica matematica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher vale.ma98 di informazioni apprese con la frequenza delle lezioni di Metodi numerici e statistici per l'ingegneria civile e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi Roma Tre o del prof Bellotti Giorgio.