当前位置:首页 » 编程语言 » c语言中的积分

c语言中的积分

发布时间: 2023-01-13 07:23:38

Ⅰ 怎样编写c语言积分函数

积分分为两种,数值积分,公式积分。

  1. 公式积分:部分函数可以直接用公式求得其不定积分函数。C语言中可以直接用积分公式写出其积分函数。

  2. 数值积分:按照积分的定义,设置积分范围的步长,用梯形面积累加求得其积分。

    以【f(x)=x*sin(x) 从1到2的积分】为例:

    #include<math.h>
    #include<stdio.h>
    doubleintegral(double(*fun)(doublex),doublea,doubleb,int,n){
    doubles,h,y;
    inti;
    s=(fun(a)+fun(b))/2;
    h=(b-a)/n;/*积分步长*/
    for(i=1;i<n;i++)
    s=s+fun(a+i*h);
    y=s*h;
    returny;/*返回积分值*/
    }
    doublef(doublex){
    return(x*sinx)/*修改此处可以改变被积函数*/
    }
    intmain(){
    doubley;
    y=integral(f,1.0,2.0,150);/*修改此处可以改变积分上下限和步数,步长=(上限-下限)/步数*/
    printf("y=%f ",y);
    return0;
    }

Ⅱ c语言 求数值积分

H=(B-A)/N这一句不应该放在变量声明中,因为刚定义时,A,B,N没有赋值,是随机值

应该将
float A,B,N,H=(B-A)/N,sum=0;

改为:

float A,B,N,H,sum=0;

将H=(B-A)/N;放在scanf ("%f",&N); 后面。

#另外建议将int i放在主函数起始处。

-----------------------------------------

更改后的程序:

#include<stdio.h>
float f(float x)
{
return 4/(x*x+1);
}
void main()
{
float A,B,N,H,sum=0;
int i;
printf ("请输入A值:");
scanf ("%f",&A);
printf ("请输入B值:");
scanf ("%f",&B);
printf ("请输入N值:");
scanf ("%f",&N);
H=(B-A)/N;
for(i=1;i<=N;i++)
{
sum+=(f(A)+f(A+H))*H/2;
A=A+H;
}
printf("%.5f\n",sum);

}

Ⅲ 在C语言中,积分函数怎么写

把积分算式算出来,然后用C写。
比如[a,b]的积分上限和下限,对x积分,就是x^2/2, 代入a,b

Ⅳ C语言求积分

float I_Control(float Input)
{
static float OutData = 0;
OutData+=Input*deltaT;

deltaT+=deltaT;

return OutData;
}

Ⅳ 用c语言进行积分计算

楼下用的方法不对,题目要求梯形法
但他用了矩形法
这个才是梯形法

#include<stdio.h>
#define STEP 10000
double f(double x)
{
return 1.0/(1+x*x);
}
void main()
{
double a,b,x1,x2,area=0,h;
scanf("%lf%lf",&a,&b);
h=(b-a)/STEP;
x1=a;
x2=a+h;
while(x2<=b)
{
area+=h*(f(x1)+f(x2))/2;
x1=x2;
x2+=h;
}
printf("%lf\n",area);

}

Ⅵ 用C语言求积分

基本是这样的,用梯形发求定积分,对应于一个积分式就要有一段程序,不过你可以改变程序的一小部分来改变你所要求的积分式。
以c为例:求f(x)=xsinx从1到2的积分
#include <math.h>
float integral(float(*fun)(float x),float a,float b,int,n)
{float s,h,y;
int i;
s=(fun(a)+fun(b))/2;
h=(b-a)/n; /*积分步长*/
for(i=1;i<n;i++)
s=s+fun(a+i*h);
y=s*h;
return y;/*返回积分值*/
}

float f(float x)
{return(x*sinx) /*修改此处可以改变被积函数*/
}

main()
{float y;
y=integral(f,1.0,2.0,150);/*修改此处可以改变积分上下限和步长*/
printf("y=%f\n",y);
}

Ⅶ C语言如何实现积分运算

#include<stdio.h>
#include<math.h>
double integ(double a,double b)
{
double s,x,h;
int n=100,i;
h=fab(b-a)/n;
s=(sin(a)+sin(b))/2.0;
for(i=1;i<=n-1;i++)
{
x=a+i*h;
s=s+sin(x);
}
s=s*h;
return s;
}
main()
{
double s;
s=integ(0.0,0.15);
printf("s=%f\n",s);
}
你自己跑下,可能有语法错误。呵呵。。

Ⅷ 用C语言求定积分

实际问题描述:

求定积分近似值

程序代码如下:
#include
#include
void main()
{
int i,n=1000;
float a,b,h,t1,t2,s1,s2,x;
printf("请输入积分限a,b:");
scanf("%f,%f",&a,&b);
h=(b-a)/n;
for(s1=0,s2=0,i=1;i<=n;i++)
{
x=a+(i-1)*h;
t1=(float)exp(-x*x/2);t2(float)=exp(-(x+h)*(x+h)/2);
s1=s1+t1*h; /*矩形面积累加*/
s2=s2+(t1+t2)*h/2; /*梯形面积累加*/
}
printf("矩形法算得积分值:%f. ",s1);
printf("梯形法算得积分值:%f. ",s2);
}
程序运行结果如下:
矩形法算得积分值:0.855821
梯形法算得积分值:0.855624
由上面的比较可知,梯形法的精度要高于矩形法。

Ⅸ 怎么用C语言表示积分

源代码如下:

#include#includefloat f1(float x)

{

return(1.0+x);

}

float f2(float x)

{

return(2.0*x+3.0);

}

float f3(float x)
{
return(exp(x)+1);
}

float f4(float x)
{
return(pow(1+x,2));

}

float f5(float x)
{

return(pow(x,3));

}

float fsimp(float a,float b,float (*p)(float))

{

float c,s;

c=(a+b)/2;

s=(b-a)/6*(p(a)+4*p(c)+p(b));

return s;

}

int main()

{

float a,b;

printf("请输入积分下限a的值:");

scanf("%f",&a);

printf("请输入积分上限b的值:");

scanf("%f",&b);

printf("%f ",fsimp(a,b,f1));

}

(9)c语言中的积分扩展阅读

1、对应于一个积分式要有一段程序,可以改变程序的一小部分来改变所要求的积分式。

2、除数不能位0。

3、两个整数相除,结果仍是整数。

4、若被除数其中有一个为浮点数或者两个都为浮点数,则结果为浮点类型。操作数必须为整数,不能是浮点数。

Ⅹ 用c语言编程计算积分

#include #include float f1(float x) { return(1.0+x); } float f2(float x) { return(2.0*x+3.0); } float f3(float x) { return(exp(x)+1); } float f4(float x) { return(pow(1+x,2)); } float f5(float x) { return(pow(x,3)); } float fsimp(float a,float b,float (*p)(float)) { float c,s; c=(a+b)/2; s=(b-a)/6*(p(a)+4*p(c)+p(b)); return s; } int main() { float a,b; printf("请输入积分下限a的值:"); scanf("%f",&a); printf("请输入积分上限b的值:"); scanf("%f",&b); printf("%f\n",fsimp(a,b,f1)); printf("%f\n",fsimp(a,b,f2)); printf("%f\n",fsimp(a,b,f3)); printf("%f\n",fsimp(a,b,f4)); printf("%f\n",fsimp(a,b,f5)); }

热点内容
手机版我的世界怎么输入服务器ip 发布:2025-07-14 16:25:21 浏览:721
pythonsysstdout 发布:2025-07-14 16:15:29 浏览:196
ef数据库更新模型 发布:2025-07-14 16:14:05 浏览:411
少儿编程教育平台 发布:2025-07-14 16:13:54 浏览:301
相关存储格式图片 发布:2025-07-14 16:13:50 浏览:144
搭建酒店服务器 发布:2025-07-14 16:13:49 浏览:133
下载pythonmysqldb 发布:2025-07-14 16:05:43 浏览:977
生化危机5配置要求怎么样 发布:2025-07-14 15:38:56 浏览:301
苹果电话为什么打不开密码 发布:2025-07-14 15:33:45 浏览:45
安卓如何取消短消息通知 发布:2025-07-14 15:30:54 浏览:373