Eulero con matlab
In pratica devo risolvere il problema di Cauchy col metodo di Eulero e poi confrontarla con il grafico della funzione esatta per farlo devo per forza usare Matlab e sopra c'è il codice da me utilizzato (file m delle funzioni compresi)
secondo voi quanto da me trovato può essere la soluzione giusta?
%Y'=-Y
%Y(0)=2
%Risolta in [-2,2]
[tf,yf]=eulero1('g',[-2,2],3,40);
t=[tf];
yn=[yf];
figure(1)
clf
hold on
plot(t,yn,'b')
grid on
axis([-2 2 -2 20])
pause
y=exp(-t);% soluzione esatta y=exp(-t)
plot(t,y,'r')
legend('soluzione numerica','soluzione esatta',4)
function g=g(t,y)
g=-y;
function [T,Y]=eulero1(f,int,y0,Div)
%METODO DI EULERO
h=(int(2)-int(1))/Div;
Y(1)=y0;
T=int(1):h:int(2);
for k=1:(size(T,2)-1)
Y(k+1)=Y(k)+h*feval(f,T(k),Y(k));
end
Per favore osservate il codice perchè i grafici che riesco a far visualizzare sono 2 esponenziali decrescenti quello della soluzione esatta in rosso parte da valori più ampi per stabilizzarsi a 2 mentre quella con eulero arriva sempre a 2 ma agisce in un intervallo più ristretto
per favore ditemi se la soluzione da me trovata è accettabile
grazie per l'aiuto
ciao
secondo voi quanto da me trovato può essere la soluzione giusta?
%Y'=-Y
%Y(0)=2
%Risolta in [-2,2]
[tf,yf]=eulero1('g',[-2,2],3,40);
t=[tf];
yn=[yf];
figure(1)
clf
hold on
plot(t,yn,'b')
grid on
axis([-2 2 -2 20])
pause
y=exp(-t);% soluzione esatta y=exp(-t)
plot(t,y,'r')
legend('soluzione numerica','soluzione esatta',4)
function g=g(t,y)
g=-y;
function [T,Y]=eulero1(f,int,y0,Div)
%METODO DI EULERO
h=(int(2)-int(1))/Div;
Y(1)=y0;
T=int(1):h:int(2);
for k=1:(size(T,2)-1)
Y(k+1)=Y(k)+h*feval(f,T(k),Y(k));
end
Per favore osservate il codice perchè i grafici che riesco a far visualizzare sono 2 esponenziali decrescenti quello della soluzione esatta in rosso parte da valori più ampi per stabilizzarsi a 2 mentre quella con eulero arriva sempre a 2 ma agisce in un intervallo più ristretto
per favore ditemi se la soluzione da me trovata è accettabile
grazie per l'aiuto
ciao
Risposte
Non conosco Matlab , quello che ti posso dire è che se il problema di Cauchy da risolvere è :
( y' = - y
) y(0) = 2
allora la soluzione è : y = 2*e^(-x) .
Camillo
( y' = - y
) y(0) = 2
allora la soluzione è : y = 2*e^(-x) .
Camillo