C语言实习用梯形法或辛普森法求解定积分的值//梯形法求定积分
#includestdio.h
#includemath.h
//定义被积函数
double func(double x){
return sin(x)*cos(x);
}
void main(){
double a,b,h,x,sum;
int i,n;
printf("Input a b and n: ");
scanf("%lf%lf%d",a,b,n);
h=(b-a)/n;
x=a;
sum=(func(a)+func(b))/2;
for(i=1; in; i++){
x += h;
sum += func(x);
}
sum *= h;
printf("sum=%.4lf\n",sum);
}
怎样编写c语言积分函数用梯形法求函数f(x#include
float f(float x)
{
return x*x+2*x+1;
}
void main()
{
float a,b,len,F=0;//
int n,i;
printf("Please input a,b: ");
scanf("%f%f",a,b);
printf("Please input n: ");
scanf("%d",n);
len=(a+b)/n;//区间度
for(i=0;in;i++)
{
F+=len*f(a);
a+=len;
}
printf("%f\n",F);
}
结例:
Please input a,b: 0 10.0
Please input n: 100
437.349792
怎样编写c语言积分函数积分分为两种 , 数值积分,公式积分 。
公式积分:部分函数可以直接用公式求得其不定积分函数 。C语言中可以直接用积分公式写出其积分函数 。
数值积分:按照积分的定义,设置积分范围的步长,用梯形面积累加求得其积分 。
以【f(x)=x*sin(x) 从1到2的积分】为例:
#include math.h
#include stdio.h
double integral(double(*fun)(double x),double a,double b,int,n){
double s,h,y;
int i;
s=(fun(a)+fun(b))/2;
h=(b-a)/n; /*积分步长*/
for(i=1;in;i++)
s=s+fun(a+i*h);
y=s*h;
return y;/*返回积分值*/
}
double f(double x){
return(x*sinx)/*修改此处可以改变被积函数*/
}
int main(){
double y;
y=integral(f,1.0,2.0,150);/*修改此处可以改变积分上下限和步数,步长=(上限-下限)/步数*/
printf("y=%f\n",y);
return 0;
}
C语言,用梯形法编程求定积分x^3+x/2+1的值这个其实很简单,给你做了一个很简单的通用的积分函数,
已经做过优化 , 自己一调用就可以了,效率很高 。
#include stdio.h
double f(double x) //返回函数的值
{ double y;
y=x*x+x*2+1.0;
return y;
}
double Integrate(double (*f)(double),double a,double b,int n) //计算函数的定积分
{ double dx,y,sy,x;
if(n=1)return 0.0;
dx=(b-a)/n;
x=a;
sy=0.0;
for(int i=0;i=n;i++,x+=dx)
sy+=f(x);
sy-=f(a)/2.0;
sy-=f(b)/2.0;
return sy*dx;
}
void main()
{ double s;
s=Integrate(f, 1, 3, 100000);
printf("s=%lf\n",s);
}
求C语言 用梯形法求定积分(数值求解算法)#includestdio.h
float f(float x)
{
returnx*x+2*x+1;
}
void main()
{
float a,b,len,F=0;//
int n,i;
printf("Please input a,b: ");
scanf("%f%f",a,b);
printf("Please input n: ");
scanf("%d",n);
len=(a+b)/n;//区间长度
for(i=0;in;i++)
{
F+=len*f(a);
a+=len;
}
printf("%f\n",F);
}
结果例如:
Please input a,b: 0 10.0
Please input n: 100
437.349792
c语言用梯形法求积分a区间起点c语言积分函数梯形法 , b积分区间中点c语言积分函数梯形法,n是这个区间划分数 。每一个划分的长度为h=(b-a)/n 。每一个划分利用梯形算法来求积分c语言积分函数梯形法,即:上底+下底乘以高再除以2 。第一个小梯形面积为 (f(a) + f(a+h))*h/2c语言积分函数梯形法,第二个为 (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即可 。
推荐阅读
- 做电商如何找热卖货源合作,电商怎么去找货源呢
- 黑马程序员sqlserver,黑马程序员培训学费
- 什么直播可以卖东西吗,现在什么直播平台可以卖货
- html还用手写代码吗,html能用手机编写吗
- 忘记linux命令怎么办 linux忘记了密码
- 做系统怎么设置u盘启动,做系统怎么设置u盘启动顺序
- 视频系统识别内容是什么,视频识别技术有哪些
- 2021抖音没有直播口,抖音没有直播入口怎么回事
- php论坛数据库地址 php网站数据库配置