用复梯形法求解积分的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
最后更新于 2023-10-07 13:25:57 并被添加「」标签,已有 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
相关文章