當前位置:首頁 » 編程語言 » c語言函數定積分

c語言函數定積分

發布時間: 2024-12-03 15:04:30

『壹』 c語言 求定積分的通用函數

對於一重定積分來說其求解可以使用梯形法進行求解,計算公式如下所示:

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

//功能:返回f(x)在積分區間[a,b]的值
//參數:FunCallBack指向用於計算f(x)的函數
//a積分區間的起始值
//b積分區間的結束值
//dx橫坐標的間隔數,越小計算結果越准確
doubleCalculate(double(*FunCallBack)(doublex),
doublea,doubleb,doubledx)
{
doubledoui;
doubletotal=0;//保存最後的計算結果

for(doui=a;doui<=b;doui+=dx)
{
total+=FunCallBack(doui)*dx;
}
returntotal;
}

doublef2(doublex)
{
returnx*x;
}

doublef(doublex)
{
returnx;
}

doublef3(doublex)
{
returnx*x*x;
}

intmain()
{
doubletotal;
total=(Calculate(f,2,3,0.000001));
printf("total=%lf ",total);

total=(Calculate(f2,2,3,0.000001));
printf("total=%lf ",total);

total=(Calculate(f3,2,3,0.000001));
printf("total=%lf ",total);

return0;
}
其中,函數f,f2,f3為自行編寫的關於x的被積函數。
運行結果:
total=2.500000
total=6.333331
total=16.249991

『貳』 用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語言求定積分的問題。

根據梯形法求積分的原理,設間隔h= (b-a)/n,則積分近似計算公式為:

s = h/2 *[f(a)+f(a+h)] +h/2 *[f(a+h)+f(a+2h)] +...+h/2 *[f(b-h)+f(b)]

=h/2 *[f(a)+f(b)] + h*[ f(a+h) + f(a+2h) +f(a+3h) + ... +f(b -h)]

令積分s初始值為h/2 *[f(a)+f(b)] ,後面令i=1,...,n-1來迭代s = s+h*f(a+ih)。

熱點內容
nltk中文python 發布:2025-01-06 14:25:27 瀏覽:974
安卓如何格機刪掉系統應用 發布:2025-01-06 14:16:29 瀏覽:530
android異常退出 發布:2025-01-06 14:12:22 瀏覽:521
vbsql資料庫查詢 發布:2025-01-06 14:02:59 瀏覽:329
手機存儲空間小會影響數據網路嗎 發布:2025-01-06 14:02:52 瀏覽:313
安卓手機如何把手游變成端游 發布:2025-01-06 14:02:50 瀏覽:23
星球基地源碼 發布:2025-01-06 13:57:58 瀏覽:190
手機淘寶前面的密碼是什麼 發布:2025-01-06 13:44:02 瀏覽:141
小米圖標文件夾 發布:2025-01-06 13:41:54 瀏覽:77
指數函數的演算法 發布:2025-01-06 13:32:06 瀏覽:423