當前位置:編程學習大全網 - 源碼下載 - C語言中求定積分的通用函數

C語言中求定積分的通用函數

對於定積分,可以用梯形法求解,計算公式如下:

其中f(x)是被積函數,橫坐標上兩點之間的間隔越小,計算結果越精確。

為了解決這類問題,可以使用C語言中的回調函數編寫壹個通用的計算函數,代碼如下:

#包含?& ltstdio.h & gt

#包含?& ltstdlib.h & gt

# include & ltmath.h & gt

//函數:返回f(x)在整數區間[a,b]的值。

//參數:FunCallBack?指向用於計算f(x)的函數

//整數區間的起始值

//b積分區間的結束值。

//dx?橫坐標的區間數越小,計算結果越準確。

雙倍?算(雙倍?(*FunCallBack)(double?x),

雙倍?a,雙份?b,雙份?dx)

{

雙倍?doui

雙倍?總計?=?0;//保存最終計算結果。

為了什麽?(doui?=?a;?杜伊?& lt=?b;?杜伊?+=?dx)

{

總計?+=?FunCallBack(doui)* dx;

}

回歸?總計;

}

雙倍?f2(雙?x)

{

回歸?x * x

}

雙倍?f(雙?x)

{

回歸?x;

}

雙倍?f3(雙?x)

{

回歸?x*x*x?;

}

int?主()

{

雙倍?總計;

總計?=?(計算(f,?2,?3,?0.000001));

printf("總計?=?%lf\n ",合計);

總計?=?(計算(f2,?2,?3,?0.000001));

printf("總計?=?%lf\n ",合計);

總計?=?(計算(f3,?2,?3,?0.000001));

printf("總計?=?%lf\n ",合計);

回歸?0?;

}

其中函數f,f2,f3是關於x的自寫被積函數。

運行結果:

總計?=?2.500000

總計?=?6.333331

總計?=?16.249991

  • 上一篇:我是個很愛面子的人,怎麽去向喜歡的女孩表白!每次準備說的時候,就不好意思了!
  • 下一篇:如何看月線?
  • copyright 2024編程學習大全網