复化梯形和复化辛普生公式,积分函数在0~1上积分结果应该是PI
2010-06-01 18:56
417 查看
#include <conio.h> /* 此头函数请不要删除 */
#include <stdio.h>
float N,A,B,X;
float F(float x);
float Ti() //复化梯形公式
{
float i,n,h,t,g=0;
n=N;
h=(B-A)/n;
for(i=1;i <n;i++)
{X=A+i*h;
g=F(X)+g;
}
t=h*(F(A)+2*g+F(B))/2;
return(t);
}
float Si() //复化辛普生公式
{float i,n,h,t,p=0,g=0;
n=N;
h=(B-A)/n;
for(i=1;i <(1+n/2);i=i+2)
{X=A+i*h;
g=F(X)+g;
}
i=0;
for(i=2;i <(n/2);i=i+2)
{X=A+i*h;
p=F(X)+p;
}
t=h*(F(A)+4*g+2*p+F(B))/3;
return(t);
}
float F(float x) //被积分函数f(x)
{float f;
f=4/(1+x*x);
return(f);
}
double main() //主函数
{float z;
int i;
loop:printf( "/n/n/n1为复化梯形公式,2为复化辛普生公式./n请输入你要用的公式的代码:/n ");
scanf( "%d ",&i);
if(i!=1&&i!=2)
{printf( "输入错误代码! ");
goto loop;
}
else {printf( "输入积分上下限:/n ");
scanf( "%f%f ",&A,&B);
printf( "/n输入子区间个数:/n ");
scanf( "%f ",&N);
// printf( "/n/n%f,%f,%f ",A,B,N);
if(i==1)
{z=Ti();
printf( "利用复化梯形公式计算 ");
}
else if(i==2)
{z=Si();
printf( "利用复化辛普生公式计算 ");
}
printf( "结果为:%f ",z);
goto loop;
getch(); /* 此语句请不要删除*/
}
return 0;
}
#include <stdio.h>
float N,A,B,X;
float F(float x);
float Ti() //复化梯形公式
{
float i,n,h,t,g=0;
n=N;
h=(B-A)/n;
for(i=1;i <n;i++)
{X=A+i*h;
g=F(X)+g;
}
t=h*(F(A)+2*g+F(B))/2;
return(t);
}
float Si() //复化辛普生公式
{float i,n,h,t,p=0,g=0;
n=N;
h=(B-A)/n;
for(i=1;i <(1+n/2);i=i+2)
{X=A+i*h;
g=F(X)+g;
}
i=0;
for(i=2;i <(n/2);i=i+2)
{X=A+i*h;
p=F(X)+p;
}
t=h*(F(A)+4*g+2*p+F(B))/3;
return(t);
}
float F(float x) //被积分函数f(x)
{float f;
f=4/(1+x*x);
return(f);
}
double main() //主函数
{float z;
int i;
loop:printf( "/n/n/n1为复化梯形公式,2为复化辛普生公式./n请输入你要用的公式的代码:/n ");
scanf( "%d ",&i);
if(i!=1&&i!=2)
{printf( "输入错误代码! ");
goto loop;
}
else {printf( "输入积分上下限:/n ");
scanf( "%f%f ",&A,&B);
printf( "/n输入子区间个数:/n ");
scanf( "%f ",&N);
// printf( "/n/n%f,%f,%f ",A,B,N);
if(i==1)
{z=Ti();
printf( "利用复化梯形公式计算 ");
}
else if(i==2)
{z=Si();
printf( "利用复化辛普生公式计算 ");
}
printf( "结果为:%f ",z);
goto loop;
getch(); /* 此语句请不要删除*/
}
return 0;
}
相关文章推荐
- 复化梯形求积公式 c语言实现 数值积分
- 变步长梯形求积公式 c语言实现 数值积分
- 梯形和辛普生积分
- Windows平台下GCC编程之根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。 s=1+1/3+1/5+···+1/(2n-1)
- 复化的梯形公式、Simpson公式与Cotes公式的比较(用Matlab实现)
- 【数值分析】复化积分公式
- 求解函数定积分,梯形公式、复化梯形公式、复合辛普森公式求解定积分近似值程序
- 定步长复化梯形求解积分方程
- 【数值分析】复化积分公式
- 数值积分之Simpson公式与梯形公式
- HDU 5826(水题,物理公式推导,积分公式推导直接出结果)
- 复化梯形公式
- 利用复化梯形积分和龙贝格积分法计算积分
- 用复化梯形公式求定积分举例(C++实现)
- 复化梯形求积分——用Python进行数值计算
- 171111—函数练习:梯形法求积分
- 编程之美 - 写一个函数,返回数组中所有元素被第一个元素除的结果
- 应用mysql_num_rows()函数获取查询结果集中的记录数
- [leetcode 241] Different Ways to Add Parentheses--------计算运算公式字符串中所有可能结果
- 变步长梯形求数值积分