欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

c語(yǔ)言定積分函數(shù)庫(kù) c語(yǔ)言中的積分函數(shù)

用C語(yǔ)言求定積分

實(shí)際問(wèn)題描述:

東港網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)公司成立于2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司

求定積分近似值

程序代碼如下:

#include

#include

void main()

{

int i,n=1000;

float a,b,h,t1,t2,s1,s2,x;

printf("請(qǐng)輸入積分限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.\n",s1);

printf("梯形法算得積分值:%f.\n",s2);

}

程序運(yùn)行結(jié)果如下:

矩形法算得積分值:0.855821

梯形法算得積分值:0.855624

由上面的比較可知,梯形法的精度要高于矩形法。

c語(yǔ)言 求定積分的通用函數(shù)

對(duì)于一重定積分來(lái)說(shuō)其求解可以使用梯形法進(jìn)行求解,計(jì)算公式如下所示:

其中,f(x)為被積函數(shù),為橫坐標(biāo)的兩點(diǎn)間的間隔,越小,則計(jì)算出的結(jié)果越精確。

對(duì)于求解此類(lèi)問(wèn)題可以使用C語(yǔ)言中的回調(diào)函數(shù)編寫(xiě)通用的計(jì)算函數(shù),代碼如下:

#include?stdio.h

#include?stdlib.h

#includemath.h

//功能:返回f(x)在積分區(qū)間[a,b]的值

//參數(shù):FunCallBack?指向用于計(jì)算f(x)的函數(shù)

//??????a??積分區(qū)間的起始值

//??????b??積分區(qū)間的結(jié)束值

//??????dx?橫坐標(biāo)的間隔數(shù),越小計(jì)算結(jié)果越準(zhǔn)確

double?Calculate(double?(*FunCallBack)(double?x),

double?a,double?b,double?dx)

{

double?doui;

double?total?=?0;????????//保存最后的計(jì)算結(jié)果

for?(doui?=?a;?doui?=?b;?doui?+=?dx)

{

total?+=?FunCallBack(doui)*dx;

}

return?total;

}

double?f2(double?x)

{

return?x*x;

}

double?f(double?x)

{

return?x;

}

double?f3(double?x)

{

return?x*x*x?;

}

int?main()

{

double?total;

total?=?(Calculate(f,?2,?3,?0.000001));

printf("total?=?%lf\n",?total);

total?=?(Calculate(f2,?2,?3,?0.000001));

printf("total?=?%lf\n",?total);

total?=?(Calculate(f3,?2,?3,?0.000001));

printf("total?=?%lf\n",?total);

return?0?;

}

其中,函數(shù)f,f2,f3為自行編寫(xiě)的關(guān)于x的被積函數(shù)。

運(yùn)行結(jié)果:

total?=?2.500000

total?=?6.333331

total?=?16.249991

C語(yǔ)言求函數(shù)定積分

問(wèn)題就是出在數(shù)據(jù)類(lèi)型上的選用上,precision=0.0000001時(shí)已經(jīng)超過(guò)了float的數(shù)據(jù)范圍,所以導(dǎo)致數(shù)據(jù)截?cái)嗪髉recision=0.000000,從而程序在計(jì)算積分時(shí)可能陷入死循環(huán),應(yīng)該采用double型數(shù)據(jù)類(lèi)型。其實(shí)不推薦樓主用如此多的define語(yǔ)句,程序的可讀性和風(fēng)格應(yīng)該重于編程員的勞動(dòng)度。。。

還有樓主對(duì)自然對(duì)數(shù)e的define也已經(jīng)超過(guò)了計(jì)算機(jī)的可識(shí)別范圍。。您那樣精確的定義e并不會(huì)在結(jié)果上獲得更加精確地結(jié)果,其實(shí)反倒會(huì)起到相反的作用,要知道與其用一個(gè)這樣可能導(dǎo)致內(nèi)存出錯(cuò)以及必定會(huì)導(dǎo)致數(shù)據(jù)截?cái)嗟淖兞縼?lái)實(shí)現(xiàn)精度的提高遠(yuǎn)遠(yuǎn)不如采用一個(gè)更精確的積分算法,而且c語(yǔ)言提供了自然數(shù)e為底的指數(shù)函數(shù)~而且貌似您的積分算法是不準(zhǔn)確的,梯形積分的定義并非如此,其再兩端的函數(shù)值應(yīng)該只取1/2.希望您多加細(xì)心~

如果不介意的話(huà),就是你的precision應(yīng)該改為step~這樣會(huì)能更加準(zhǔn)備的表達(dá)了這個(gè)變量的作用,在你的程序中precision變量其實(shí)是積分步長(zhǎng)~在數(shù)值計(jì)算方法中積分精度的控制往往不是通過(guò)細(xì)化步長(zhǎng)來(lái)表達(dá),而是通過(guò)后一個(gè)積分值-前一個(gè)積分值precision 這樣來(lái)實(shí)現(xiàn)精度控制~呵呵

網(wǎng)站題目:c語(yǔ)言定積分函數(shù)庫(kù) c語(yǔ)言中的積分函數(shù)
本文路徑:http://www.chinadenli.net/article30/ddopeso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄做網(wǎng)站云服務(wù)器企業(yè)網(wǎng)站制作微信小程序定制開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)