用户:
开朗的网友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;
}