猫史档案馆


【C++计算不定积分】

用户:开朗的网友1kl开朗的网友1kl查看:0 回复:0 评论:0 创建时间:2023-08-12T16:55:22


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

//定义函数
double f(double x)
{
    return printf("请输入需要计算的不定积分,例2*x,2/x,x^2,x-1,x+1,x^0.5等");
}

//计算梯形积分
double trapezoid(double a, double b, int n)
{
    double h,sum;
    int i;
    h=(b-a)/n;
    sum=0.5*(f(a)+f(b));
    for(i=1;i<n;i++)
    {
        sum+=f(a+i*h);
    }
    sum=sum*h;
    return sum;
}

//计算辛普森积分
double simpson(double a, double b, int n)
{
    double h, sum;
    int i;
    h=(b-a)/n;
    sum=f(a)+f(b);
    for(i=1;i<n;i++)
    {
        if(i%2==1)
            sum+=4*f(a+i*h);
        else
            sum+=2*f(a+i*h);
    }
    sum=sum*h/3;
    return sum;
}

int main()
{
    double a,b,ans1,ans2;
    int n;
    printf("请输入积分下限a:");
    scanf("%lf",&a);
    printf("请输入积分上限b:");
    scanf("%lf",&b);
    printf("请输入分割数n:");
    scanf("%d",&n);
    ans1=trapezoid(a,b,n);
    ans2=simpson(a,b,n);
    printf("梯形积分结果为:%lf\n",ans1);
    printf("辛普森积分结果为:%lf\n",ans2);
    getchar();
	return 0;
}


回复

上一页1 页 / 共 0下一页