% V3 välikoe 1 syksy 2001

% Teht. 1

clf
f=inline('2*sqrt(t.*x)','t','x')   % Muutettava funktio
t=0:0.5:2;x=0:2

[0 2 2*sqrt(2),2*sqrt(3) 4;0 sqrt(2) 2 sqrt(6) 2*sqrt(2)]

[T,X]=meshgrid(t,x);
Z=f(T,X);

 flipud(Z)   % havainnollistukseen, tosi käytössä kommentti tai puolipiste
 clf
 plot(T(:),X(:),'x')   % Jos haluat merkitä ristillä pisteet, joissa
 hold on
tt=T(:); xx=X(:); n=length(tt);
for i=1:n
   v=[1,f(tt(i),xx(i))];v=0.2*v/norm(v);
   alkup=[tt(i),xx(i)]-v;loppup=[tt(i),xx(i)]+v;
   plot([alkup(1),loppup(1)],[alkup(2),loppup(2)])
end;
ylim([-0.5 2.5])
grid

% Teht. 3

f=inline('t.^2-y','t','y')
y=inline('t.^2-2*t+2-exp(-t)','t')  % Analyyttinen ratkaisu

t0=0;
y0=1;
% a) 
h=0.2
y1=y0+h*f(t0,y0);t1=t0+h;
A=[t0 y0;t1 y1]
virheA=y(0.2)-y1
% b) 
h=0.1;
y1=y0+h*f(t0,y0);t1=t0+h;
y2=y1+h*f(t1,y1);t2=t1+h;
B=[t0 y0;t1 y1;t2 y2]
virheB=y(0.2)-y2

% c) 
h=0.05;
y1=y0+h*f(t0,y0);t1=t0+h;
y2=y1+h*f(t1,y1);t2=t1+h;
y3=y2+h*f(t2,y2);t3=t2+h;
y4=y3+h*f(t3,y3);t4=t3+h;

C=[t0 y0;t1 y1;t2 y2;t3 y3; t4 y4]
virheC=y(0.2)-y4

A',B',C'
[virheA,virheB,virheC]
virheA./[1,2,4]

% Tulostukset:
a)

         0    0.2000
    1.0000    0.8000
              ======

b)

         0    0.1000    0.2000
    1.0000    0.9000    0.8110
                        =======

c)
         0    0.0500    0.1000    0.1500    0.2000
    1.0000    0.9500    0.9026    0.8580    0.8162
                                            =======

virheet
-------
    0.0213    0.0103    0.0051


Edellisestä puolittamalla saadut:

    0.0213    0.0106    0.0053

Varsin hyvin näkyy O(h)-käytös: h puolittuu ==> virhe puolittuu.