C/Visual C - TENGO QUE HACER UN PROGRAMA!!!!!

 
Vista:

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Código en C para calcular la integral definida usando Simpson 1/3 y 3/8

Publicado por Alejandro (913 intervenciones) el 27/03/2025 20:47:26
Aquí tienes un programa en C que implementa el método de Simpson para calcular la integral definida utilizando tanto el teorema de Simpson 1/3 como el teorema de Simpson 3/8. Este programa permite al usuario ingresar la función a integrar, los límites de integración y el número de intervalos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#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;
}

Explicación del código:


1. Función `f(double x)`: Esta es la función que deseas integrar. En el ejemplo, se ha definido como f(x) = x^2. Puedes cambiar esta función según tus necesidades.
2. Método de Simpson 1/3: La función `simpson13` implementa el método de Simpson 1/3. Asegura que el número de intervalos `n` sea par.
3. Método de Simpson 3/8: La función `simpson38` implementa el método de Simpson 3/8. Asegura que el número de intervalos `n` sea múltiplo de 3.
4. Función `main`: Solicita al usuario los límites de integración y el número de intervalos, luego calcula y muestra los resultados de ambas integrales.

Compilación y ejecución


Para compilar y ejecutar el programa, puedes usar un compilador de C como `gcc`:

1
2
gcc -o simpson_integration simpson_integration.c -lm
./simpson_integration

Este programa te permitirá calcular la integral definida de la función que elijas utilizando ambos métodos de Simpson. ¡Buena suerte, Renny!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar