c語言編一個(gè)積分函數(shù) c語言編寫積分函數(shù)

用C語言編寫一個(gè)求定積分的程序

這是辛普森積分法。

專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)津市免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了千余家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

給你寫了fun_1( ),fun_2(),請(qǐng)自己添加另外幾個(gè)被積函數(shù)。

調(diào)用方法 t=fsimp(a,b,eps,fun_i);

a,b --上下限,eps -- 迭代精度要求。

#includestdio.h

#includestdlib.h

#include math.h

double fun_1(double x)

{

return 1.0 + x ;

}

double fun_2(double x)

{

return 2.0 * x + 3.0 ;

}

double fsimp(double a,double b,double eps, double (*P)(double))

{

int n,k;

double h,t1,t2,s1,s2,ep,p,x;

n=1; h=b-a;

t1=h*(P(a)+P(b))/2.0;

s1=t1;

ep=eps+1.0;

while (ep=eps)

{

p=0.0;

for (k=0;k=n-1;k++)

{

x=a+(k+0.5)*h;

p=p+P(x);

}

t2=(t1+h*p)/2.0;

s2=(4.0*t2-t1)/3.0;

ep=fabs(s2-s1);

t1=t2; s1=s2; n=n+n; h=h/2.0;

}

return(s2);

}

void main()

{

double a,b,eps,t;

a=0.0; b=3.141592653589793238; eps=0.0000001;

// a definite integral by Simpson Method.

t=fsimp(a,b,eps,fun_1);

printf("%g\n",t);

t=fsimp(a,b,eps,fun_2);

printf("%g\n",t);

// ...

printf("\n Press any key to quit...");

getch();

}

怎樣編寫c語言積分函數(shù)用梯形法求函數(shù)f(x

#include

float f(float x)

{

return x*x+2*x+1;

}

void main()

{

float a,b,len,F=0;//

int n,i;

printf("Please input a,b: ");

scanf("%f%f",a,b);

printf("Please input n: ");

scanf("%d",n);

len=(a+b)/n;//區(qū)間度

for(i=0;in;i++)

{

F+=len*f(a);

a+=len;

}

printf("%f\n",F);

}

結(jié)例:

Please input a,b: 0 10.0

Please input n: 100

437.349792

用C語言求定積分

實(shí)際問題描述:

求定積分近似值

程序代碼如下:

#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語言求積分

基本是這樣的,用梯形發(fā)求定積分,對(duì)應(yīng)于一個(gè)積分式就要有一段程序,不過你可以改變程序的一小部分來改變你所要求的積分式。

以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; /*積分步長(zhǎng)*/

for(i=1;in;i++)

s=s+fun(a+i*h);

y=s*h;

return y;/*返回積分值*/

}

float f(float x)

{return(x*sinx) /*修改此處可以改變被積函數(shù)*/

}

main()

{float y;

y=integral(f,1.0,2.0,150);/*修改此處可以改變積分上下限和步長(zhǎng)*/

printf("y=%f\n",y);

}

當(dāng)前題目:c語言編一個(gè)積分函數(shù) c語言編寫積分函數(shù)
分享地址:http://bm7419.com/article28/ddcdhcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)App設(shè)計(jì)、定制網(wǎng)站域名注冊(cè)、電子商務(wù)、面包屑導(dǎo)航

廣告

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

成都網(wǎng)站建設(shè)公司