% Uppgift3

function []=uppg3()

% Exempel: Beräkna integralen av e^x * sin(x.^2)  från 0 till 2 m.h.a 
% Simpsons formel av ordning 5, 10 och 20;

n=[3:10];
S=simpson(@fun,0,3,n) % Egen implementering av Simpsons formel, flervärt n godtas
E=quad(@fun,0,3); % Matlabfunktion som beräknar integralen ovan
plot(n,S,'ro',[min(n) max(n)],[E E]),shg % Grafisk jämförelse


function y=fun(x)
y=exp(x).*sin(2.*x.^2);

function S=simpson(f,a,b,n)
ln=length(n);
S=zeros(1,ln);
h=(b-a)./(2*n);
for i=1:ln   % loop för flervärt n
    x=linspace(a,b,2*n(i)+1);
    fx=feval(f,x);
    for j = 1:2:(2*n(i)-1)
        S(i)=S(i)+(h(i)/3).*(fx(j)+4.*fx(j+1)+fx(j+2)); % Simpsons formel
    end
end
