Está en la página 1de 4

EJERCICIO 21.

Integre la función que sigue tanto en forma analítica como numérica. Para las evaluaciones
numéricas utilice a) una sola aplicación de la regla del trapecio; b) la regla de Simpson 1/3; c) la
regla de Simpson 3/8; d) aplicación múltiple de reglas de Simpson, con n = 5

Integración de manera analítica

A) Una sola aplicación de la regla del trapecio


Para desarrollar este literal utilizaremos el siguiente código en Matlab
% Definir la función a integrar
f = @(x) 5 + 3*cos(x);

% Definir los límites de integración


a = 0; % Límite inferior
b = 3; % Límite superior

% Definir el número de subintervalos (puedes ajustar este valor para obtener


mayor precisión)
n = 1000;

% Calcular el ancho de cada subintervalo


h = (b - a) / n;

% Calcular los valores de la función en los puntos de los subintervalos


x = a:h:b;
y = f(x);

% Aplicar la regla del trapecio para sumar las áreas de los trapecios
integral = (h/2) * (y(1) + 2*sum(y(2:end-1)) + y(end));

% Mostrar el resultado
disp(['El valor aproximado de la integral es: ' num2str(integral)]);

Obteniendo como resultado

B) La regla de Simpson 1/3


Para resolver este utilizaremos el siguiente código
% Definir la función a integrar

f = @(x) 5 + 3*cos(x);

% Definir los límites de integración


a = 0; % Límite inferior
b = 3; % Límite superior

% Definir el número de subintervalos (debe ser un número par)


n = 1000;

% Verificar si el número de subintervalos es par, de lo contrario, sumar 1


para que sea par
if mod(n, 2) ~= 0
n = n + 1;
end

% Calcular el ancho de cada subintervalo


h = (b - a) / n;

% Calcular los valores de la función en los puntos de los subintervalos


x = a:h:b;
y = f(x);

% Aplicar la regla de Simpson 1/3 para sumar las áreas


integral = (h/3) * (y(1) + 4*sum(y(2:2:end-1)) + 2*sum(y(3:2:end-2)) +
y(end));

% Mostrar el resultado
disp(['El valor aproximado de la integral es: ' num2str(integral)]);

Obteniendo como resultado

C) La regla de Simpson 3/8

Se utilizara el siguiente código:

% Definir la función a integrar


f = @(x) 5 + 3*cos(x);

% Definir los límites de integración


a = 0; % Límite inferior
b = 3; % Límite superior

% Definir el número de subintervalos (debe ser múltiplo de 3)


n = 999;

% Verificar si el número de subintervalos es múltiplo de 3, de lo contrario,


ajustarlo
if mod(n, 3) ~= 0
n = n + (3 - mod(n, 3));
end

% Calcular el ancho de cada subintervalo


h = (b - a) / n;

% Calcular los valores de la función en los puntos de los subintervalos


x = a:h:b;
y = f(x);

% Aplicar la regla de Simpson 3/8 para sumar las áreas


integral = (3*h/8) * (y(1) + 3*sum(y(2:3:end-2)) + 3*sum(y(3:3:end-1)) +
2*sum(y(4:3:end-3)) + y(end));

% Mostrar el resultado
disp(['El valor aproximado de la integral es: ' num2str(integral)]);

D) Aplicación múltiple de reglas de Simpson, con n = 5


Se utilizara el siguiente código :
% Definir la función a integrar
f = @(x) 5 + 3*cos(x);

% Definir los límites de integración


a = 0; % Límite inferior
b = 3; % Límite superior
% Definir el número total de subintervalos
n = 5;
% Verificar si el número total de subintervalos es válido, de lo contrario,
ajustarlo
if mod(n, 2) ~= 0
n = n + 1;
end

% Calcular el número de subintervalos para aplicar la regla de Simpson 1/3


compuesta
n_simpson = n / 2;

% Calcular el número de subintervalos para aplicar la regla de Simpson 3/8


compuesta
n_simpson_3_8 = n - n_simpson;

% Calcular el ancho de cada subintervalo para cada regla


h_simpson = (b - a) / n_simpson;
h_simpson_3_8 = (b - a) / n_simpson_3_8;

% Inicializar la suma de las áreas


integral = 0;

% Calcular las áreas utilizando la regla de Simpson 1/3 compuesta


for i = 1:n_simpson
x_start = a + (i-1) * 2 * h_simpson;
x_end = x_start + 2 * h_simpson;
integral = integral + (h_simpson/3) * (f(x_start) + 4*f(x_start +
h_simpson) + f(x_end));
end

% Calcular las áreas utilizando la regla de Simpson 3/8 compuesta


for i = n_simpson+1:n
x_start = a + (i-1) * 3 * h_simpson_3_8;
x_end = x_start + 3 * h_simpson_3_8;
integral = integral + (3*h_simpson_3_8/8) * (f(x_start) + 3*f(x_start +
h_simpson_3_8) + 3*f(x_start + 2*h_simpson_3_8) + f(x_end));
end

% Mostrar el resultado
disp(['El valor aproximado de la integral es: ' num2str(integral)]);

Se obtuvo la siguiente respuesta

También podría gustarte