當前位置:首頁 » 編程語言 » 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)); }

熱點內容
application緩存 發布:2025-07-14 09:01:56 瀏覽:345
安卓怎麼看綁定地區 發布:2025-07-14 09:01:49 瀏覽:85
籽岷的生存伺服器IP 發布:2025-07-14 08:51:06 瀏覽:419
我的世界搭建tcp伺服器 發布:2025-07-14 08:42:55 瀏覽:659
安卓jj比賽哪個版本有全記牌器 發布:2025-07-14 08:28:27 瀏覽:73
python腳本執行hive 發布:2025-07-14 08:26:24 瀏覽:489
媒體存儲可以刪除嗎 發布:2025-07-14 08:26:13 瀏覽:813
ios網易雲音樂上傳 發布:2025-07-14 08:16:58 瀏覽:393
榮耀8x可以用方舟編譯器嗎 發布:2025-07-14 08:09:49 瀏覽:278
雲伺服器商家怎麼購買 發布:2025-07-14 08:05:34 瀏覽:46