作业帮 > 综合 > 作业

用C语言编写一个求定积分的程序

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/04/28 23:08:06
用C语言编写一个求定积分的程序
用C语言编写一个求定积分的通用函数,用它分别求以下5个函数的定积分:∫ab (1+x)dx ,∫ab (2x+3)dx ,∫ab (ex+1)dx ,∫ab (1+x)2dx ,∫ab x3dx .其中,a,b为积分上下限,数值待定.
用C语言编写一个求定积分的程序
这是辛普森积分法.
给你写了fun_1( ),fun_2(),请自己添加另外几个被积函数.
调用方法 t=fsimp(a,b,eps,fun_i);
a,b --上下限,eps -- 迭代精度要求.
#include
#include
#include
double fun_1(double x)
{
return 1.0 + x ;
}
double fun_2(double x)
{
return 2.0 * x + 3.0 ;
}
double fsimp(double a,double b,double eps,double (*P)(double))
{
int n,k;
double h,t1,t2,s1,s2,ep,p,x;
n=1; h=b-a;
t1=h*(P(a)+P(b))/2.0;
s1=t1;
ep=eps+1.0;
while (ep>=eps)
{
p=0.0;
for (k=0;k
再问: 程序可以运行,但是看不懂fsimp函数。 所以,我将fsimp函数修改了一下: double fsimp(double a,double b,double (*p)(double)) { double c,s; c=(a+b)/2; s=(b-a)/6*(p(a)+4*p(c)+p(b)); return s; }
再答: 变步长辛普森公式,看懂是难一点,但速度快,不因a,b范围变化 使精度变化。