复合梯形公式与Simpson公式的数值积分

时间:2024-11-25 15:35:02

#include <iostream>
#include<math.h>
#include<stdio.h>
using namespace std;

float f(float x)
{
    float Y;
    Y=sin(x)/x;
    return  Y;
}

int main()
{
    float a,b,N,T,h,s1,s2,s;
    int i;
    cout<<"请输入a,b,N:"<<endl;
    while(cin>>a>>b>>N)
    {
        T=0;
        h=(b-a)/N;
        for(i=1; i<N; i++)
        {
            T+=f(a+i*h);
        }
        T=h/2*((f(a)+2*T+f(b)));
        cout<<T<<endl;

h=(b-a)/N;
        s2=0;
        s1=f(a+h/2);
        for(i=1;i<N;i++)
        {
            s1+=f(a+i*h+h/2);
            s2+=f(a+i*h);
        }
        s=h/6*(f(a)+4*s1+2*s2+f(b));
        cout<<s<<endl;
    }
}