(** FORMULE DI NEWTON-COTES **)

f[x_]:=Exp[x];
a=0.; b=1.;
h=b-a;
true1=Integrate[f[x],x];
true=Integrate[f[x],{x,0,1}];
trap=(f[a]+f[b])*h/2.;
x0=a;x1=(a+b)/2.;x2=b;
h=(b-a)/2.;
simps=(f[x0]+4*f[x1]+f[x2])*h/3.;
Print["Funzione:  Exp[x]","        Primitiva: ", true1]
Print["Valore numerico esatto = ",N[true],  "    Trapezi = ",trap,"     Simpson = ",simps];
Plot[f[x],{x,a,b},PlotRange->{0,3}]

Clear[f];
f[x_]:=Cos[x];
Print[];
a=0.; b=Pi/2.;
h=b-a;
true1=Integrate[f[x],x];
true=Integrate[f[x],{x,a,b}];
trap=(f[a]+f[b])*h/2.;
x0=a;x1=(a+b)/2.;x2=b;
h=(b-a)/2.;
simps=(f[x0]+4*f[x1]+f[x2])*h/3.;
Print["Funzione:  Cos[x]","        Primitiva: ", true1]
Print["Valore numerico esatto = ",N[true],  "    Trapezi = ",trap,"     Simpson = ",simps];
Plot[f[x],{x,a,b},PlotRange->{0,1}]

Clear[f];
f[x_]:=1-5 (x^2)+(x^4);
a=-2.; b=2.;
h=b-a;
true1=Integrate[f[x],x];
true=Integrate[f[x],{x,a,b}];
trap=(f[a]+f[b])*h/2.;
x0=a;x1=(a+b)/2.;x2=b;
h=(b-a)/2.;
simps=(f[x0]+4*f[x1]+f[x2])*h/3.;
Print["Funzione:  1-5 (x^2)+(x^4)","     Primitiva: ", true1];Print["Valore numerico esatto = ",N[true], "    Trapezi = ",trap,"     Simpson = ",simps];
Plot[f[x],{x,a,b},PlotRange->Automatic]