TENGO QUE HACER UN PROGRAMA!!!!!
Publicado por RENNY GONZALEZ (1 intervención) el 26/10/2002 17:18:50
ESTE ES UNO QUE ME RESUELVA UNA INTEGRAL DEFINIDA POR EL TEOREMA DE SIMSONP EL DE 1/3 Y EL DE 3/8!!!!!!!!
Valora esta pregunta


0
#include <stdio.h>
#include <math.h>
// Definición de la función a integrar
double f(double x) {
// Ejemplo: f(x) = x^2
return x * x; // Cambia esta función según sea necesario
}
// Método de Simpson 1/3
double simpson13(double a, double b, int n) {
if (n % 2 != 0) {
n++; // Asegurarse de que n sea par
}
double h = (b - a) / n;
double sum = f(a) + f(b);
for (int i = 1; i < n; i++) {
if (i % 2 == 0) {
sum += 2 * f(a + i * h);
} else {
sum += 4 * f(a + i * h);
}
}
return (h / 3) * sum;
}
// Método de Simpson 3/8
double simpson38(double a, double b, int n) {
if (n % 3 != 0) {
n += (3 - n % 3); // Asegurarse de que n sea múltiplo de 3
}
double h = (b - a) / n;
double sum = f(a) + f(b);
for (int i = 1; i < n; i++) {
if (i % 3 == 0) {
sum += 2 * f(a + i * h);
} else {
sum += 3 * f(a + i * h);
}
}
return (3 * h / 8) * sum;
}
int main() {
double a, b;
int n;
// Solicitar al usuario los límites de integración y el número de intervalos
printf("Ingrese el límite inferior (a): ");
scanf("%lf", &a);
printf("Ingrese el límite superior (b): ");
scanf("%lf", &b);
printf("Ingrese el número de intervalos (n): ");
scanf("%d", &n);
// Calcular la integral usando Simpson 1/3
double result13 = simpson13(a, b, n);
printf("Resultado de la integral usando Simpson 1/3: %.6lf\n", result13);
// Calcular la integral usando Simpson 3/8
double result38 = simpson38(a, b, n);
printf("Resultado de la integral usando Simpson 3/8: %.6lf\n", result38);
return 0;
}
gcc -o simpson_integration simpson_integration.c -lm
./simpson_integration