con
fissato e discreto,
con
che varia con
continuità su [0,n] e se
ottengo
. Gli estremi di
integrazione diventano quindi [0,n] ed il problema viene trasformato
nel calcolo di
integrale=newtoccotes(f,a,b,m) -
Calcola
mediante la formula di quadratura di Newton Cotes mediante la formula
di grado
.
%function integrale=newtoncotes(f,a,b,m) % m=grado della formula di Newton - cotes % 1 = trapezi % 2 = Simpson % 3 = pulcherrima % 4 = Milne % 5 = - % 6 = Weddle % 7 = - % altro = non implementato function integrale=newtoncotes(f,a,b,m) newcottab= [ 1 1 0 0 0 0 0 0 ; ... 1 4 1 0 0 0 0 0; ... 1 3 3 1 0 0 0 0 ; ... 7 32 12 32 7 0 0 0 ; ... 19 75 50 50 75 19 0 0 ; ... 41 216 27 272 27 216 41 0 ; ... 5257 25039 9261 20923 20923 9261 25039 5257 ]; ns= [ 2 6 8 90 288 840 120960 ]; n=m+1; h=(b-a)/m; x=a:h:b; F=mfeval(f,x); integrale=0; for i=1:n integrale=integrale+F(i)*newcottab(m,i); end integrale=integrale*(b-a)/ns(m); return
>> newtoncotes('sin',0,pi,1) ans = 1.923607162353882e-016 >> newtoncotes('sin',0,pi,2) ans = 2.09439510239320 >> newtoncotes('sin',0,pi,4) ans = 1.99857073182384 >> newtoncotes('sin',0,pi,7) ans = 2.00001086554154
Specializzando il metodo per ed
si ottengono rispettivamente
il metodo dei trapezi e quello di Simpson. Nel primo metodo la formula di
quadratura diventa
x=trapezi(f,a,b) -
Calcola
mediante il
metodo dei trapezi
%TRAPEZI %function [x]=trapezi(f,a,b) % Calcola l'integrale di f in [a,b] con la formula % dei trapezi. function [x]=trapezi(f,a,b) fa=feval(f,a); fb=feval(f,b); x=((b-a)/2)*(fa+fb); return
>> trapezi('sin',0,pi) ans = 1.923670693721790e-16 >> type parabola function y=parabola(x) y=x^2 >> trapezi ('parabola',0,3) ans = 13.50000000000000
x=Simpson(f,a,b) -
Calcola
mediante il
metodo di Simpson
%SIMPSON %function [x]=Simpson(f,a,b) % Calcola l'integrale di f in [a,b] con la formula % di Simpson. function [x]=Simpson(f,a,b) fa=feval(f,a); f1=feval(f,(a+b)/2); fb=feval(f,b); x=((b-a)/6)*(fa+4*f1+fb); return;
>> Simpson('Runge',0,1) ans = 0.78333333333333 >> atan(1) ans = 0.78539816339745 >> Simpson('parabola',0,3) ans = 9
Ci sono due proprietà fondamentali dei coefficienti
: