% Zgled resevanja NDE 1. reda % enacbo zacetnega problema % y' = -y-5e^(-t)sin(5t), y(0)=1 za 0<=t<=3 % resujemo numericno z metodo ode45 % % tocna resitev problema je y(t)=e^(-t)cos(5t) y_tocna = @(t) exp(-t) .* cos(5*t); % tocna resitev f = @(t,y) -y - 5*exp(-t) .* sin(5*t); % NDE tspan = [0 3]; %doloca razpon spremenljivke t yzero = 1; %zacetni pogoj [t,y]=ode45(f,tspan,yzero); %output: t lezi na [0,3], y(i) pa je priblizek resitve v t(i) %t(1)=0 in t(end)=3, vmesne tocke ode45 avtomaticno doloci - na obmocju, %kjer resitev bolj varira, so tocke bolj gosto izbrane % narisemo tocno resitev fplot(y_tocna,[0 3],'color',[0 .5 0],'Linewidth',2) xlabel t, ylabel y hold on % narisemo numericno resitev plot(t,y,'*--', 'color',[1 0 0], 'Linewidth',.5) % ce definiramo vec kot dve vrednosti v tspan, ode45 vrne resitve samo v % teh t tspan2 = 0:3; %doloca razpon spremenljivke t [t2,y2] = ode45(f,tspan2,yzero); disp([t2,y2]) plot(t2,y2,'bo') hold off legend('tocna', 'numericna', 'numericna v izbranih tockah')