新聞中心
C語言編寫f(x)=x^2在區(qū)間[0,1]定積分
思路就是將區(qū)間無限細(xì)分
創(chuàng)新互聯(lián)專注于開江企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開發(fā),商城網(wǎng)站建設(shè)。開江網(wǎng)站建設(shè)公司,為開江等地區(qū)提供建站服務(wù)。全流程按需設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
小區(qū)間梯形就可以看成矩形,小矩形所有面積相加,就是定積分
#include?"stdio.h"
#include?"math.h"
double?f(double?x)//被積函數(shù)
{
?return?x*x;
}
double?fun(double?p,double?q,int?n)//p,q分別表示積分下上限,n為細(xì)分的區(qū)間數(shù),越大值越精確
{
int?i;
double?sum=0,h=(q-p)/n;
for?(i=1;i=n;i++)?//f(p+i*h)*h就是小矩形的面積,加到sum上去。
sum+=f(p+i*h)*h;
return?sum;
}
int?main()
{
printf("(x*x)在(0,1)上定積分為%lf\n",fun(0,1,1000000));//區(qū)間數(shù)自己設(shè)越大值越精確
}
結(jié)果:
數(shù)學(xué)分析:
f(x)=x^2=x*x;
定積分:x*x*x/3+c(常數(shù))
在區(qū)間(0,1)上定積分:1/3=0.333333
結(jié)果正確。
用C語言編寫一個求定積分的程序
#includestdio.h
#includemath.h
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));
}
用C語言求定積分
實(shí)際問題描述:
求定積分近似值
程序代碼如下:
#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.\n",s1);
printf("梯形法算得積分值:%f.\n",s2);
}
程序運(yùn)行結(jié)果如下:
矩形法算得積分值:0.855821
梯形法算得積分值:0.855624
由上面的比較可知,梯形法的精度要高于矩形法。
標(biāo)題名稱:c語言二元函數(shù)定積分 c語言二元二次方程
文章網(wǎng)址:http://www.ef60e0e.cn/article/dogoseg.html