Aiuto svolgimento esercizio
Salve, sono uno studente univ di sc. ambientali.
Diversi mesi fa ho scelto di seguire un corso opzionale pensado di aver fatto bene ma solo alla fine mi sono accorto del contrario!!!!!!!!1
Qualcuno di voi "sapiente" è in grado di fare uno scriptino in Matlab per poter svolgere questo esercizio??

non riesco ad uscirne....... Mille grazie in anticipo!!
Fabry
Diversi mesi fa ho scelto di seguire un corso opzionale pensado di aver fatto bene ma solo alla fine mi sono accorto del contrario!!!!!!!!1

Qualcuno di voi "sapiente" è in grado di fare uno scriptino in Matlab per poter svolgere questo esercizio??

non riesco ad uscirne....... Mille grazie in anticipo!!
Fabry
Risposte
Sinceramente non penso che un codice matlab per risolvere l'equazione differenziale concluderebbe l'esercizio, anzi. Comunque il forum non è una fonte di programmini già fatti e il regolamento prevede, da parte tua, la dimostrazione di un certo impegno nel risolverlo. Inoltre non hai esposto dove sono i tuoi dubbi, riguardano mathlab? Il problema da risolvere? Il metodo delle differenze finite?
Mi pare di non aver offeso nessuno, anzi ho scritto su questo forum primo perchè non sono un matematico, secondo perchè evidentemente ho difficoltà con la matematica numerica e con la programmazione in matlab!! tutto qui.
Non mi pare di aver detto : fatemi l'esame!!!!! ma solo come trasporre la teoria dell'esercizio postato nel liguaggio matlab per creare la funzione giusta. I miei dubbi purtroppo riguardano tutto dato che ho seguito un corso opzionale di matematica numerica durato un mese + matlab!! ditemi se si può una cosa del genere all'università..........
l'equazione è stata presa da un articolo in .pdf relativo alla diffusione di sostanze nel sedimento!! non so come postare il .pdf!
Vict85 ...cerco solo un aiuto altrimenti se fossi stato bravo non sarei venuto qui dentro!!
Non mi pare di aver detto : fatemi l'esame!!!!! ma solo come trasporre la teoria dell'esercizio postato nel liguaggio matlab per creare la funzione giusta. I miei dubbi purtroppo riguardano tutto dato che ho seguito un corso opzionale di matematica numerica durato un mese + matlab!! ditemi se si può una cosa del genere all'università..........
l'equazione è stata presa da un articolo in .pdf relativo alla diffusione di sostanze nel sedimento!! non so come postare il .pdf!
Vict85 ...cerco solo un aiuto altrimenti se fossi stato bravo non sarei venuto qui dentro!!
Buongiorno,
se qualcuno mi da una mano mi fa un piacere..........
Sono arrivato a questo punto oltre non riesco!!! Nello script ci sono degli errori ma non riesco ad individuarli !!!
non saprei dove inserire il coefficiente di diffusione( che ha valori :0,1 , 0,01 oppure 0,001)
Vi allego la funzione usata per l'esercizio postato tempo fa!!! GRAZIE IN ANTICIPO
function parabimplicito4(a,zspan,uspan)
% T assume un valore unico = valore dell'intervallo
% a = costante -->Dsi, ossia coefficiente di diff mlecolare con valori: 0.1; 0.01; 0.001;
% r = costante --> rsi, ossia rapposto di trasformazione sostanza i pari a: 0.5;
r=0.5;
T=1;
n=input('numero di nodi x: ') % numero di nodi(punti) nello spazio
m=input('numero di nodi t:') %numero di nodi(punti)nel tempo
h=(zspan(2)-zspan(1))/(n+1); %calcolo passo spaziale
zz=(zspan(1):h:zspan(2))'; %vettore colonna (dei nodi)
z=zz(2:end-1)'; %elimina i nodi esterni
nint=length(z); %definisce il n° di nodi interni
e = ones(n,1);
k=T/m; %calcolo passo temporale
%a1=feval(a,z-(1/2*h));
%a2=feval(a,z+(1/2*h));
A=a*(k/h^2)*spdiags([e -2*e e],-1:1,nint,nint); %matrice A del laplaciano
A(nint,nint)=k/h^2
I=speye(size(A)); % definisce la matrice
u=('0.25+sin(z/zspan(2)*(pi/2))');
%u=0*x; %ii=find(x>.5); u(ii)=1;
theta=('(((z-0.3)/(0-0.3))*0.95)+(((0-z)/(0-0.3))*0.75)');
z=eval(theta);
b=r./(z);
b(1)=b(1)+uspan(1)*k/h^2*e(1);
b(n)=b(n)+uspan(2)*k/h*e(end);
for ell=1:m, %ciclo richiesto
%u(:,ell+1) = u(:,ell)+ k*(A*u(:,ell))+k*b;
%u(:,ell+1) = A*u(:,ell)+b; %ell sta per "l"
u(:,ell+1) = (I-A)/(u(:,ell)+b);
subplot(1,2,1)
mesh((0:ell)',zz',[uspan(1)*ones(1,ell+1);u;uspan(2)*ones(1,ell+1)])
axis([0,m,0,1,-1,1]) %MODIFICA m e -1
subplot(1,2,2)
plot(zz',[uspan(1);u(:,ell+1);uspan(2)])
axis([zspan(1),zspan(2),-1,1])
hold on
pause(0.05)
end
se qualcuno mi da una mano mi fa un piacere..........
Sono arrivato a questo punto oltre non riesco!!! Nello script ci sono degli errori ma non riesco ad individuarli !!!
non saprei dove inserire il coefficiente di diffusione( che ha valori :0,1 , 0,01 oppure 0,001)
Vi allego la funzione usata per l'esercizio postato tempo fa!!! GRAZIE IN ANTICIPO
function parabimplicito4(a,zspan,uspan)
% T assume un valore unico = valore dell'intervallo
% a = costante -->Dsi, ossia coefficiente di diff mlecolare con valori: 0.1; 0.01; 0.001;
% r = costante --> rsi, ossia rapposto di trasformazione sostanza i pari a: 0.5;
r=0.5;
T=1;
n=input('numero di nodi x: ') % numero di nodi(punti) nello spazio
m=input('numero di nodi t:') %numero di nodi(punti)nel tempo
h=(zspan(2)-zspan(1))/(n+1); %calcolo passo spaziale
zz=(zspan(1):h:zspan(2))'; %vettore colonna (dei nodi)
z=zz(2:end-1)'; %elimina i nodi esterni
nint=length(z); %definisce il n° di nodi interni
e = ones(n,1);
k=T/m; %calcolo passo temporale
%a1=feval(a,z-(1/2*h));
%a2=feval(a,z+(1/2*h));
A=a*(k/h^2)*spdiags([e -2*e e],-1:1,nint,nint); %matrice A del laplaciano
A(nint,nint)=k/h^2
I=speye(size(A)); % definisce la matrice
u=('0.25+sin(z/zspan(2)*(pi/2))');
%u=0*x; %ii=find(x>.5); u(ii)=1;
theta=('(((z-0.3)/(0-0.3))*0.95)+(((0-z)/(0-0.3))*0.75)');
z=eval(theta);
b=r./(z);
b(1)=b(1)+uspan(1)*k/h^2*e(1);
b(n)=b(n)+uspan(2)*k/h*e(end);
for ell=1:m, %ciclo richiesto
%u(:,ell+1) = u(:,ell)+ k*(A*u(:,ell))+k*b;
%u(:,ell+1) = A*u(:,ell)+b; %ell sta per "l"
u(:,ell+1) = (I-A)/(u(:,ell)+b);
subplot(1,2,1)
mesh((0:ell)',zz',[uspan(1)*ones(1,ell+1);u;uspan(2)*ones(1,ell+1)])
axis([0,m,0,1,-1,1]) %MODIFICA m e -1
subplot(1,2,2)
plot(zz',[uspan(1);u(:,ell+1);uspan(2)])
axis([zspan(1),zspan(2),-1,1])
hold on
pause(0.05)
end