Passa ai contenuti principali

Matlab \\ Equazioni concatenate di Allievi

Programma per il calcolo delle sovrappressioni del colpo d'ariete. Questo codice prevede l'inserimento manuale dei dati all avvio del programma. Per creare il vettore dei tempi,come indicato nel programma, è consigliabile usare la funzione "linspace(inizio, fine, lunghezza del vettore)".

%h0=carico piezometrico iniziale
%n0=valore della funzione di variazione sezione all otturatore al tempo 0
%a=celerità
%t_off=tempo della manovra di chiusura
%vettore_t=vettore contenenti i tempi a intervallo costante

function[]=allievi()
disp('definire il carico piezometrico iniziale h0(metri)')
h0=input('h0=');
disp('definire la funzione apertura otturatore n0(inizio manovra)')
n0=input('n0=');
disp('definire la celerità di propagazione')
a=input('a=');
disp('definire tempo della manovra di chiusura(secondi)')
t_off=input('t_off=');
disp('vettore dei tempi [funzione "linspace(inizio,fine,numero valori)"]')
vettore_t=input('vettore_t=');
U=2*9.8*sqrt(h0);
dim=length(vettore_t);
n_iter=dim-1;
Al=a*U/(2*9.8*h0);
periodo=vettore_t(2)-vettore_t(1);
%il ciclo serve a definire un limite per il ciclo IF nel FOR più avanti
for i=1:dim
    pass1=(t_off-vettore_t(i));
    if pass1<periodo
       n_lim=vettore_t(i);
       break
    end
end
%disp(n_lim);
lim=1-(n_lim)/t_off;
%disp(lim);
n=1-vettore_t(1)/t_off;
z_old=(-2*Al*n+sqrt(((2*Al*n)^2)+8*Al*n0+4))/(2);
z_res=zeros(n_iter,1);
z_res(1)=z_old;
n0=n;
    for flag=1:n_iter
    n=1-vettore_t(flag+1)/t_off;
    z=(-2*Al*n+sqrt(((2*Al*n)^2)-4*(z_old^2)+8+8*Al*z_old*n0))/(2);
    z_res(flag+1)=z;
    z_old=z;
    n0=n;
    if n<lim
        break
    end
    end
flag0=flag;
for flag=flag0:n_iter
%     n=0;
%     n0=0;
    z=sqrt(2-z_old^2);
    z_res(flag+1)=z;
    z_old=z;
end
z_res=h0*(z_res).^2;
z_res=real(z_res);
vettore_t=vettore_t';
tabella=[vettore_t,z_res];
disp(tabella);

Commenti

Post popolari in questo blog

Analisi matematica \\ Teorema di Rolle

Enunciato: Data una funzione continua in un intervallo chiuso [a,b] e derivabile nello stesso intervallo aperto (a,b) se f(a)=f(b) esiste un valore c∈ (a,b) tale che f '(c)=0 . Il teorema ci garantisce dunque l'esistenza di almeno un punto stazionario all'interno dell' intervallo, se il valore di f(a) coincide con f(b) . Dimostrazione: Vanno analizzati due casi Se f è monotona ogni suo punto può essere considerato stazionario e di conseguenza, essendo la funzione costante in ogni suo punto f(a)=f(b)=f(c) , f'(c)=0 ∀ c∈ [a,b] Se f si sposta crescendo e decrescendo si sfrutta il teorema di Weierstrass per dimostrare l'esistenza di un massimo o di un minimo assoluti e poi grazie al Teorema di Fermat si può affermare che in tale punto la derivata faccia zero.

Analisi matematica \\ Considerazioni sul rotore

Il rotore è un operatore vettoriale abbastanza utilizzato in analisi che trova una sua modesta applicazione nello studio dei campi come quelli usati per la meccanica dei mezzi fluidi e per la meccanica del continuo. Trattare il rotore nella sua completezza risulta ovviamente molto complesso, ma se ci soffermiamo su alcune sue caratteristiche e su come si rapporta alle altre strutture matematiche si può riuscire ad apprezzare il suo funzionamento. Prima di tutto si definisce come rotore di un campo F la struttura rot( F )= ∇ x F . L' operatore nabla è invece definito in un riferimento cartesiano tridimensionale i , j , k come ∇ = i ∂/∂x +j ∂/∂x +k ∂/∂x. Per il calcolo del rotore si fa riferimento al procedimento del prodotto vettoriale che per un più facile sviluppo viene così schematizzato: Considerazioni fisico-geometriche: Una prima considerazione è che essendo un prodotto vettoriale genera un vettore le cui componenti sono sempre ortogonali ad ogni piano considerato (s

Matlab \\ Metodo Montecarlo

Il codice richiede di inserire soltanto il numero dei valori in cui si desidera dividere l'intervallo e la funzione. Maggiori saranno gli intervalli del dominio e più preciso sarà il calcolo dell' integrale definito.E' comunque dimostrato che il metodo Montecarlo ha una convergenza molto lenta e richiede, in generale, un numero elevato di intervalli per ottenere una stima precisa. %calcolo di integrali di funzioni in X=[0,1] function[]=metodo_montecarlo() disp('inserire numero di elementi del dominio') t=input('t='); X=linspace(0,1,t); disp('definire la funzione f(X),(x maiuscola)') f=input('f(X)='); y=f'; s=length(X); E=sum(y(:))/s; disp('integrale definito della funzione in X=[0,1],E='); disp(E);