用复梯形法求解积分的c语言

复合梯形公式的c代码;

#includeiostream

#包含math.h

使用命名空间std

双重乐趣(双x)

{

return(x * sin(x));/*在此修改以更改被积函数*/

}

二重积分(二重a,二重b,int n)

{

双倍总和、步骤、结果;

int I;

sum =(fun(a)fun(b))/2;

step =(b-a)/n;/*积分步长*/

for(I = 1;在;我)

sum = sum fun(a I * step);

结果=总和*步长;

返回结果;/*返回整数值*/

}

void main() {

双重结果;

结果=积分(1.0,2.0,150);/*在此修改以更改积分上限和下限以及步长*/

printf("result=%f\n ",结果);

系统(“暂停”);

}

运行结果:

结果=1.440418

c语言用梯形法求积分 区间A的起点,整数区间B的中点,n是这个区间的整除数。每一格的长度为h = (b-a)/n,每一格用梯形算法积分,即上底+下底乘以高度再除以2。第一个小梯形的面积是(f(a) f(a h))*h/2,第二个是(f(a h) f(a 2h))*h/2,依此类推。把这些加起来,再加起来:

h*(f(a)/2 f(a h)...f(a (n-1)h) f(b))/2).预先把f(a)/2和f(b)/2加起来,还有其他数据,就是f(a h)...f(a (n-1)n),会循环处理,然后所有结果都乘以h。

C语言练习中用梯形法或辛普森法求解定积分的值 //定积分的梯形法

# includestdio.h

#包含math.h

//定义被积函数

双功能(双x){

返回sin(x)* cos(x);

}

void main(){

双a,b,h,x,sum

int i,n;

printf("输入a b和n:");

scanf("%lf%lf%d ",a,b,n);

h =(b-a)/n;

x = a;

sum =(func(a)func(b))/2;

for(I = 1;在;i ){

x = h;

sum = func(x);

}

sum * = h;

printf("sum=%.4lf\n ",sum);

}

用复杂的梯形公式计算积分,使误差小于0.0015。 首先你需要提供已知的f(x)函数,然后做数值计算。

使用Matlab软件,利用复梯形公式计算数值积分的方法如下。

1.用户定义的复杂梯形函数,traint()

函数y = traint(a,b,n,func)

h =(b-a)/n;

x = linspace(a,b,n ^ 1);

y1 = h * feval(func,x);

y1(1) = y1(1) / 2

y1(n-1)= y1(n-1)/2

y = sum(y1);

结束

2.自定义已知的f(x)函数,func()

函数y = func(x)

Y=f(x)%特定函数表达式

结束

3.在命令窗口中,输入

a = 1.8b = 2.6n = 10%回车

火车(-1,0,8,f)%回车

如何用C语言写一个整函数,用梯形法求函数f(x #包括

浮点f(浮点x)

{

返回x * x 2 * x 1;

}

void main()

{

float a,b,len,F = 0;//

int n,I;

printf("请输入a,b:");

scanf("%f%f ",a,b);

printf("请输入n:");

scanf("%d ",n);

len =(a b)/n;//区间度

for(I = 0;在;我)

{

f = len * f(a);

a = len

}

printf("%f\n ",F);

}

结束示例:

请输入a,b: 0 10.0

请输入n: 100

437.349792

相关文章

发表新评论