積分就是求曲線到x軸上在區間內的面積,編程時都變成求和了
在區間(1,4.5)上分N份,然後每份的面積都可以求出近似值——就是當前的高度x每小份的寬度,寬度就是dx=(4.5-1)/N; 每份的高度為:y=xi*xi;
編程時先定義N=100(越多越精確),定義計算公式y=x*x;然後定義dx=(4.5-1)/N,定義x0=1,定義xi=x0+n*dx;然後計算時先求當前的xi,然後求對應的yi=xi*xi, 然後yi*dx就是當前面積,把N份面積都累加起來就是總面積也就是積分了,當N等於無窮時得到真正的積分。
妳還可以定義真正的積分公式,求的每次不同的N值和絕對正確值做比較。
妳參考:
/question/369178124.html?an=0&si=2
/question/203583587.html?an=0&si=7
/question/105401072.html?an=0&si=9
例程序如下:
#include<iostream.h>
#include<math.h>
double y(double x)//定義壹個函數y=f(x)
{
double xx;
xx=x*x;
return xx;
}
double yy(double x)//給定函數y=f(x)的定積分公式
{
double xx;
xx=x*x*x/3;
return xx;
}
void main()//用於計算函數積分,對於取不同份數時的求和結果和積分結果
{
int n,i;
double x0,xn,xi,yi,dx,sum;
x0=1;//給定函數定積分區間下限
xn=4.5;//給定函數定積分區間上限
for(n=10;n<1000000;n*=10)//將定積分區間分為不同數量進行求和
{
dx=(xn-x0)/n;//定積分分為n份後,每份的長度
xi=x0;//第壹份是最左端的開始位置
sum=0;//初始化總求和面積
for(i=0;i<n;i++)//將每份面積求出並累加起來
{
yi=y(xi);//根據xi當前數確定對應yi
sum+=yi*dx;//yi*dx既為當前長方向的面積,求和
xi+=dx;//繼續下壹份
}
cout<<"n="<<n<<'\t'<<"ANS="<<sum<<endl;//輸出劃分的份數和求和結果
}
sum=yy(xn)-yy(x0);//用積分方程得到的結果
cout<<"Integral Answer is: "<<sum<<endl;//輸出積分方程得到的結果,利於比較
}