    function [y,err]=rk45(ffun,x0,y0,h);
    % Ett steg med R-K-Fehlberg45
    A=[0 1/4 3/8 12/13 1 1/2];
    B=[0 0 0 0 0 0
       1/4 0 0 0 0 0
       3/32 9/32 0 0 0 0
       1932/2197 -7200/2197 7296/2197 0 0 0
       439/216 -8 3680/513 -845/4104 0 0
       -8/27 2 -3544/2565 1859/4104 -11/40 0];
    Y=[25/216 0 1408/2565 2197/4104 -1/5]';
    YH=[16/135 0 6656/12825 28561/56430 -9/50 2/55]';
    E=[1/360 0 -128/4275 -2197/75240 1/50 2/55]';

    k1=h*feval(ffun,x0,y0);
    k2=h*feval( ffun,x0+A(2)*h,y0+B(2,1)*k1);
    k3=h*feval(ffun,x0+A(3)*h,y0+[k1 k2]*B(3,1:2)');
    k4=h*feval(ffun,x0+A(4)*h,y0+[k1 k2 k3]*B(4,1:3)');
    k5=h*feval(ffun,x0+A(5)*h,y0+[k1 k2 k3 k4]*B(5,1:4)');
    k6=h*feval(ffun,x0+A(6)*h,y0+[k1 k2 k3 k4 k5]*B(6,1:5)');
  
    y=y0+[k1 k2 k3 k4 k5]*Y;          % globalt fel=O(h^4)
    yh= y0+[k1 k2 k3 k4 k5 k6]*YH;      % globalt fel=O(h^5)
    err=norm([k1 k2 k3 k4 k5 k6]*E);   % feluppskattning
