Regla De Simpson
Empleando un razonamiento similar al anterior y tomando un polinomio de grado n=2 para interpolar a f, obtenemos la conocida regla de Simpson:
| (77) |
que es exactapara todos los polinomios de grado 2 y curiosamente, exacta para todos los polinomios de grado 3.
En los cálculos prácticos se emplea, generalmente, la regla de Simpson compuesta, en la que elintervalo de integración [a,b] se divide en un número par, n, de subintervalos. Tenemos entonces:
en donde
h = (b-a)/n
Aplicando la regla de Simpson (77) en cada uno de los subintervalos se obtienela expresión final:
| (78) |
Metodo de Simpson 1/3 en matlab
clear all;
clc;
fprintf('Calculo de la integral por el metodo de Simpson de 1/3\n\n');
f=input('introduce lafuncion:','s');
a=input('lime inferior:');
b=input('limite superior:');
c=input('numero de segmentos a dividir (numero par):');
h=(b-a)/c;
z=0;
x=a;
for i=1:c;
if (-1)^i==1k=eval(f);
z=z+k;
end
x=h*i;
end
zz=0;
x=a;
for i=2:c;
if (-1)^i==-1
k=eval(f);
zz=zz+k;
end
x=h*i;
end
x=a;
if x==a
d=eval(f);
end
x=b;
if x==be=eval(f);
end
z=z*4;
v=zz*2;
z=z+v+d+e;
z=z/(3*c);
z=z*(b-a)
-------------------------------------------------
fprintf('Resultado ');
For example, if we want tointegrate the function f(x) = y = x3, we can define it, in Matlab, like this (x is a scalar in our case, not a vector):
function y = fun_for_integration(x)
y = x^3;
And then, we can create theactual integration function, like this:
function y = simpson2(lower_lim, upper_lim, incr, fun)
% Check that the provided increment has sense for our purpose
if (upper_lim - lower_lim)/incr ~=floor((upper_lim - lower_lim)/incr)
disp('Warning: increment must divide interval into equal subintervals')
disp('Please change the increment')
y = 'error';
return
end
% Evaluate...
Regístrate para leer el documento completo.