#include<math.h>
double f(double x)
{
return sqrt(4-x*x)
}
main()
{
double a,b,s1,s2,s,h,m=1E-6
int n,i
scanf("%lf%lf",&a,&b)
s2=0
n=10000
// do
{
s1=s2
n=2*n
h=(b-a)/n
i=1
s2=0
do
{
s=(f(a+i*h)+f(a+(i-1)*h))*h/2
s2=s2+s
i=i+1
}
while(i<=n)
}
// while((fabs(s1-s2))>(m*(fabs(s2)-fabs(s1))))
printf("f(x)在[a,b]上的定积分为%.10lf",s2)
return 0
}
#include<stdio.h>
#include<math.h>
void
main()
{int
i,n
float
t,v1,v2,s=0,d,s=0
printf("请输入分段个数")
scanf("%d",&n)
printf("请输入右端点的值")
scanf("%f",&t)
v1=cos(0)
v2=cos(t)
d=t/n
for(i=1i<ni++)
s+=cos(i*d)
s=s*d+(v1+v2)/2
printf("cosx从0到%f的定积分的近似值(梯形法)是:%f",t,s)
}
#include<stdio.h>float f(float x)
{
return x*x+2*x+1
}
void main()
{
float a,b,len,F=0//
int n,i
printf("Please input a,b: ")
scanf("%f%f",&a,&b)
printf("Please input n: ")
scanf("%d",&n)
len=(a+b)/n//区间长度
for(i=0i<ni++)
{
F+=len*f(a)
a+=len
}
printf("%f\n",F)
}
结果例如:
Please input a,b: 0 10.0
Please input n: 100
437.349792