Программа компилируется, но получает неправильный ответ - интеграция правил Симпсона в C - PullRequest
1 голос
/ 23 марта 2019

Я пытаюсь вычислить интеграл от sin (x) от 0 до PI в C, используя функцию правила Симпсона. Моя программа компилируется, но я получаю ответ 0,0000 независимо от того, что я вношу. Кто-нибудь может посоветовать?

/*Simpson's Rule*/

#include<stdio.h>
#include<math.h>


/*sin(x) is the function to be integrated*/
double f(double x){
        return sin(x);
}

/*Define the Simpson's Rule function*/
double simps(double f(double x), double a, double b, double n){
        double h, integral, x, sum=0;
        int i;
        h=fabs(b-a)/n;
                for(i=1; i<n; i++){
                        x=a+i*h;
                if(i%2==0){
                        sum=sum+2*f(x);
                }
                else{
                        sum=sum+4*f(x);
                }
        }
        integral=(h/3)*(f(a)+f(b)+sum);
        return integral;
}

/*Main Program*/
main(){
        int n, i;
        double a = 0.0, b = M_PI, h, x, sum=0, integral;
/*Ask for number of intervals */
        printf("\nEnter the number intervals: ");
        scanf("%d",&n);
/*Print the answer */
        printf("\nThe integral of sin(x) using Simpson's Rule is: %lf\n",integral);
        printf("\nActual value of sin(x) from 0 to pi: 2\n");
}

Я знаю, что ответ должен быть близок к 2, но независимо от того, что я ввожу для количества интервалов, я получаю ответ 0,00000.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...