/*
*
* 用变步长梯形求积公式求定积分
* 1
* ∫ (x/(4+x^2))dx
* 0
*/
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
#define epsilon 0.00001
float f(float x)
{
return(x/(4+x*x));
}
float computeT(float a,float b)
{
float T=0,h=(b-a)/2;
T=h*(f(a)+2*T+f(b))/2;
return(T);
}
main()
{
int i;
float a,b,T1,T2,S,x,h;
printf("\n Input the begin :");
scanf("%f",&a);
printf("\n Input the end :");
scanf("%f",&b);
h=b-a;
T1=computeT(a,b);
while(1)
{
S=0;
x=a+h/2;
do
{
S+=f(x);
x+=h;
}while(x<b);
T2=(T1+h*S)/2;
if(fabs(T2-T1)>=epsilon)
{
T1=T2;
h=h/2;
continue;
}
else
break;
}
printf("solve is : %f",T2);
getch();
return(S);
}计算方法之用变步长梯形求积公式求定积分
最新推荐文章于 2026-05-23 13:19:33 发布
本文介绍了一个使用C语言实现的变步长梯形法来计算定积分的程序。该程序通过逐步减小步长并计算积分值,直至满足预设精度要求。文章中的代码实现了从用户输入区间到最终输出积分结果的完整过程。

6481

被折叠的 条评论
为什么被折叠?



