資源描述:
《復(fù)化梯形法復(fù)化矩形法變步長梯形變步長辛普森》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、陜西科技大學(xué)機械教改班用C++的積分其實積分的思想就是,微分—>求和—>取極限,如果是用純手工法那就是先對一個函數(shù)微分,再求出它的面積,在取極限,因為我們的計算速度和計算量有限,現(xiàn)在有了計算機這個速度很快的機器,我們可以把微分后的每個小的面積加起來,為了滿足精度,我們可以加大分區(qū),即使實現(xiàn)不了微分出無限小的極限情況,我們也至少可以用有限次去接近他,下面我分析了四種不同的積分方法,和一個綜合通用程序。一.積分的基本思想1、思路:微分—>求和—>取極限。2、Newton—Leibniz公式其中,被積函數(shù)的原函數(shù)。3、用計算機積分的思路在積分區(qū)間內(nèi)“微分—>求和—>控制精
2、度”。因為計算機求和不可以取極限,也就是不可以無限次的加下去,所以要控制精度。二.現(xiàn)有的理論1、一階求積公式---梯形公式他只能精確計算被積函數(shù)為0、1次多項式時的積分。2、二階求積分公式——牛頓、科特斯公式他只能精確計算被積函數(shù)為0、1、2、3次多項式時的積分。三.四種實現(xiàn)方法1.復(fù)化矩形法將積分區(qū)間[a,b]等分成n個子區(qū)間:則h=(b-a)/n,區(qū)間端點值=a+kh............................源程序:#include#includedoublef(doublex)//計算被積函數(shù){double
3、y;y=log(1+x)/(1+x*x);//被積函數(shù)returny;}doubleTn(doublea,doubleb,intn)//求Tn{doublet=0.0;doublexk;//區(qū)間端點值doublet1,t2;//用來判斷精度do{doubleh=(b-a)/n;for(intk=1;k<=n-1;k++)//每一小段的矩形疊加{t1=t;xk=a+k*h;t+=h*f(xk);t2=t;}n++;//如果精度不夠就對區(qū)間再次細分,直到達到精度要求}while(fabs(t1-t2)<=1e-7);//判斷計算精度returnt;}voidmain()
4、{doublea=0.0;//積分下線doubleb=2.0;//積分上限intn=1024;//把區(qū)間分為1024段cout<#includedoublef(doublex)//計算被積函數(shù){doubley;y=log(1+x)/(1+x*x);//被積函數(shù)returny;}doubleTn(do
5、ublea,doubleb,intn)//求Tn{doublet=0.0;doublexk;//區(qū)間端點值doublet1,t2,h=(b-a)/n;//用來判斷精度do{h=(b-a)/n;for(intk=1;k<=n-1;k++)//余項疊加,相當(dāng)于每一個小梯形相加{t1=t;xk=a+k*h;t+=f(xk);t2=t;}n++;//如果精度不夠就對區(qū)間再次細分,直到達到精度要求}while(fabs(t1-t2)<=1e-7);//判斷計算精度t=h*(f(a)+f(b))/2+t*h;//加上初項就是積分結(jié)果了returnt;}voidmain(){do
6、ublea=0.0;//積分下線doubleb=2.0;//積分上線intn=1024;//把區(qū)間分為1024段cout<7、點的中點處增加一個求積節(jié)點,那么變形一下:源程序:#include#includedoublef(doublex)//計算被積函數(shù)的值{doubley;y=log(1+x)/(1+x*x);returny;}doublet2ntn(doublea,doubleb){intn=1;doublehn=b-a;//原步長doubletn=0.0;doublet2n=(f(a)+f(b))*hn/2.0;while(fabs(t2n-tn)>1e-7)//判斷精度{tn=t2n;t2n=0.0;for(intk=0;k<=n-1;