Contents

% lyhyt/euleresim1.m
% Eulerin menetelma: alkuarvoteht: y'=t+y, y(0)=1
% "Nuolinappainversio", havainnollistus
% Lineaarinen epahomogeeninen, tarkka ratkaisu:
%              y(t)=2exp(t) - t -1


clear; close all
% y'=t+y, y(0)=1, ratk. valilla [0,1.2]

f=@(t,y)t+y

YL=[]   % Talletetaan lasketut arvot valin loppupisteessa
n=3;
[T,Y]=eulerS(f,[0 4],1,n); [T Y],plot(T,Y,T,Y,'.r');shg;YL=[YL Y(end)]
grid on; hold on
f = 
    @(t,y)t+y
YL =
     []
ans =
         0    1.0000
    1.3333    2.3333
    2.6667    7.2222
    4.0000   20.4074
YL =
   20.4074

Suorita tata rivia nuolinappainiteroiden komentoikkunassa tai

mieluumminkin CTR-ENTER Matlab-editorissa:

n=2*n,[T,Y]=eulerS(f,[0 4],1,n); [T Y];plot(T,Y,T,Y,'.r');shg;YL=[YL Y(end)]
n =
     6
YL =
   20.4074   37.8669

Iteroinnin jalkeen:

ytarkka=@(t) 2*exp(t)-t-1;

t=linspace(0,4);
plot(t,ytarkka(t),'k','LineWidth',3);shg

%fplot(ytarkka,[0 4],'--rs','LineWidth',2)  %plot-optiot
                                        %ei kaikki toimi fplot:lla

format compact
['Loppupiste Tarkka ratk.  Euler-approksimaatio']
[T(end) ytarkka(T(end)) YL(end)]

virheetloppupisteesa=ytarkka(T(end))-YL
ans =
Loppupiste Tarkka ratk.  Euler-approksimaatio
ans =
    4.0000  104.1963   37.8669
virheetloppupisteesa =
   83.7889   66.3294