版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)值計(jì)算課程設(shè)計(jì)說(shuō)明書(shū)題目: 典型數(shù)值算法的c+語(yǔ)言程序設(shè)計(jì) 院 (系): 理學(xué)院 專(zhuān)業(yè)班級(jí): 數(shù)學(xué)1xx 學(xué) 號(hào): xxxx12010134 學(xué)生姓名: x 指導(dǎo)教師: xxxx 2014年7月 6日陜 西 科 技 大 學(xué)數(shù)值計(jì)算課程設(shè)計(jì)任務(wù)書(shū)理學(xué)院信息與計(jì)算科學(xué)/應(yīng)用數(shù)學(xué)專(zhuān)業(yè)信息12*/數(shù)學(xué)12* 班級(jí) 學(xué)生: xxx 題目:典型數(shù)值算法的c+語(yǔ)言程序設(shè)計(jì) 課程設(shè)計(jì)從 2014 年 5 月 26 日起到 2014 年 7 月 6 日1、課程設(shè)計(jì)的內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)要求、工作要求等):每人需作10個(gè)算法的程序、必做6題、自選4題。對(duì)每個(gè)算法要求用c+語(yǔ)言進(jìn)行編程。必選題:1、高斯
2、列主元法解線性方程組2、牛頓法解非線性方程組3、經(jīng)典四階龍格庫(kù)塔法解一階微分方程組4、三次樣條插值算法(壓緊樣條)用c+語(yǔ)言進(jìn)行編程計(jì)算 依據(jù)計(jì)算結(jié)果,用matlab畫(huà)圖并觀察三次樣條插值效果。5、龍貝格求積分算法6、m次多項(xiàng)式曲線擬合,據(jù)計(jì)算結(jié)果,用matlab畫(huà)圖并觀察擬合效果。自選題:自選4道其他數(shù)值算法題目.每道題目重選次數(shù)不得超過(guò)5次.2、對(duì)課程設(shè)計(jì)成果的要求包括圖表、實(shí)物等硬件要求:2.1 提交課程設(shè)計(jì)報(bào)告按照算法要求,應(yīng)用c+語(yǔ)言設(shè)計(jì)和開(kāi)發(fā)算法程序,提交由:每個(gè)算法說(shuō)明;與算法相應(yīng)的程序設(shè)計(jì)說(shuō)明(程序中的主要變量語(yǔ)義說(shuō)明,變量的數(shù)據(jù)類(lèi)型,數(shù)據(jù)在內(nèi)存中組織和存儲(chǔ)結(jié)構(gòu)說(shuō)明,各函數(shù)模塊
3、的主要流程圖,函數(shù)功能說(shuō)明,函數(shù)的形參說(shuō)明,函數(shù)的調(diào)用方法說(shuō)明);程序調(diào)試與實(shí)例運(yùn)行記錄 (包括程序調(diào)試和修改記錄、測(cè)試結(jié)論、運(yùn)行結(jié)果記錄),每個(gè)算法的源程序代碼編入附錄構(gòu)成的課程設(shè)計(jì)報(bào)告。2.2 課程設(shè)計(jì)報(bào)告版式要求目錄的要求:居中打印目錄二字,(四號(hào)黑體,段后1行),字間空一字符;章、節(jié)、小節(jié)及其開(kāi)始頁(yè)碼(字體均為小四號(hào)宋體)。節(jié)向右縮進(jìn)兩個(gè)字符,小節(jié)及以后標(biāo)題均向右縮進(jìn)四個(gè)字符。目錄中應(yīng)包含正文部分每個(gè)算法章節(jié)標(biāo)題、設(shè)計(jì)體總結(jié)、無(wú)序號(hào)的“參考文獻(xiàn)資料”,目錄的最后一項(xiàng)是“附錄”正文的要求:算法說(shuō)明論述清楚,公式符號(hào)撰寫(xiě)規(guī)范,流程圖圖符規(guī)范, 計(jì)算正確,文字簡(jiǎn)練通順,插圖簡(jiǎn)潔規(guī)范,書(shū)寫(xiě)整潔
4、。文中圖、表按制圖要求繪制,程序調(diào)試和運(yùn)行情況記錄詳實(shí)。打印版面要求:a4紙,頁(yè)邊距:上2cm,下2cm,左2.5cm、右2cm;字體:正文宋體、小四號(hào);行距:固定值20;頁(yè)眉1.5cm ,頁(yè)腳1.75cm;頁(yè)碼位于頁(yè)腳居中打?。黄鏀?shù)頁(yè)頁(yè)眉“數(shù)值計(jì)算課程設(shè)計(jì)”,偶數(shù)頁(yè)頁(yè)眉“具體算法名稱(chēng)”,頁(yè)眉宋體小5號(hào);段落及層次要求:每節(jié)標(biāo)題以四號(hào)黑體左起打印(段前段后各0.5行),節(jié)下為小節(jié),以小四號(hào)黑體左起打?。ǘ吻岸魏蟾?.5行)。換行后以小四號(hào)宋體打印正文。章、節(jié)、小節(jié)編號(hào)分別以1、1.1、1.1.1格式依次標(biāo)出,空一字符后接各部分的標(biāo)題。每一章的標(biāo)題都應(yīng)出現(xiàn)在本章首頁(yè)的第一行上。當(dāng)課程設(shè)計(jì)報(bào)告結(jié)構(gòu)
5、復(fù)雜,小節(jié)以下的標(biāo)題,左起頂格書(shū)寫(xiě),編號(hào)依次用(1)、(2)或1)、2)順序表示。字體為小四號(hào)宋體。對(duì)條文內(nèi)容采用分行并敘時(shí),其編號(hào)用(a)、(b)或a)、b)順序表示,如果編號(hào)及其后內(nèi)容新起一個(gè)段落,則編號(hào)前空兩個(gè)中文字符。曲線圖表要求:所有曲線、圖表、線路圖、流程圖、程序框圖、示意圖等不準(zhǔn)徒手畫(huà),必須按國(guó)家規(guī)定標(biāo)準(zhǔn)或工程要求繪制(應(yīng)采用計(jì)算機(jī)繪圖)。課程設(shè)計(jì)說(shuō)明書(shū)(報(bào)告)中圖表、公式要求如下:(a)圖:圖的名稱(chēng)采用中文,中文字體為五號(hào)宋體,圖名在圖片下面。引用圖應(yīng)在圖題右上角標(biāo)出文獻(xiàn)來(lái)源。圖號(hào)以章為單位順序編號(hào)。格式為:圖1-1,空一字符后接圖名,比如第1章第5個(gè)圖是關(guān)于高斯列主元法解方程
6、組算法圖,圖的下方的圖號(hào)圖名應(yīng)為:圖1-5 高斯列主元法解方程組算法圖。(b)表格:表的名稱(chēng)及表內(nèi)文字采用中文,中文字體為五號(hào)宋體,表名在表格上面。表號(hào)以章為單位順序編號(hào),表內(nèi)必須按規(guī)定的符號(hào)標(biāo)注單位。格式為:表1-1,空一字符后接表格名稱(chēng)。(c)公式:公式書(shū)寫(xiě)應(yīng)在文中另起一行,居中排列。公式序號(hào)按章順序編號(hào)。字體為五號(hào)宋體,序號(hào)靠頁(yè)面右側(cè)。格式為:(1-1)。設(shè)計(jì)體會(huì)及今后的改進(jìn)意見(jiàn):設(shè)計(jì)總結(jié)要寫(xiě)出算法理解,編程經(jīng)驗(yàn)等技術(shù)性、學(xué)術(shù)性總結(jié);體會(huì)要簡(jiǎn)潔、真實(shí)、深刻,切忌空話(huà)、大話(huà),客套話(huà)和矯揉造作之詞。改進(jìn)意見(jiàn)要合理、中肯。參考文獻(xiàn)的要求:另起一頁(yè),居中打印參考文獻(xiàn)四字(四號(hào)黑體,段前段后1行)
7、,字間空一字符;另起一行,按論文中參考文獻(xiàn)出現(xiàn)的先后順序用阿拉伯?dāng)?shù)字連續(xù)編號(hào)(參考文獻(xiàn)應(yīng)在正文中注出);參考文獻(xiàn)中每條項(xiàng)目應(yīng)齊全(字體均為小四號(hào)宋體)。(格式:編號(hào)作者.論文或著作名稱(chēng).期刊名或出版社.出版時(shí)間)。(期刊應(yīng)注明第幾期、起止頁(yè)數(shù)(包括論著)。參考文獻(xiàn)中條目要符合科技文獻(xiàn)引用文獻(xiàn)條目書(shū)寫(xiě)的國(guó)家標(biāo)準(zhǔn)規(guī)范。2.3 設(shè)計(jì)報(bào)告裝訂順序與規(guī)范封面數(shù)值計(jì)算課程設(shè)計(jì)任務(wù)書(shū)目錄數(shù)值計(jì)算課程設(shè)計(jì)報(bào)告正文設(shè)計(jì)體會(huì)及今后的改進(jìn)意見(jiàn)參考文獻(xiàn)(無(wú)需加目錄序號(hào))附錄(無(wú)需加目錄序號(hào))左邊緣裝訂3、課程設(shè)計(jì)工作進(jìn)度計(jì)劃:時(shí)間設(shè)計(jì)任務(wù)及要求第19周編寫(xiě)和調(diào)試程序并按要求撰寫(xiě)設(shè)計(jì)報(bào)告 目 錄1高斯列主元法解線性方程
8、組11.1算法說(shuō)明11.2算例11.3程序代碼12牛頓法解非線性方程組22.1算法說(shuō)明22.1算例:32.2程序代碼53經(jīng)典四階龍格庫(kù)塔法解一階微分方程組93.1算法說(shuō)明93.2算例103.3程序代碼104三次樣條插值算法(壓緊樣條)124.1算法說(shuō)明124.2算例124.3 c+程序代碼134.4 matlab程序代碼165龍貝格求積分算法175.1算法說(shuō)明175.2算例175.3 程序代碼176 m次多項(xiàng)式曲線擬合186.1算法說(shuō)明186.2算例196.3程序代碼197拉格朗日插值解多項(xiàng)式227.1算法說(shuō)明227.2算例227.3程序代碼238二分法求解非線性方程248.1算法說(shuō)明248.
9、1算例248.2程序代碼249 不動(dòng)點(diǎn)迭代269.1算法說(shuō)明269.2算例269.3程序代碼2610復(fù)化梯形求積分公式2710.1算法說(shuō)明2710.2算例2810.3程序代碼2811設(shè)計(jì)體會(huì)29參 考 文 獻(xiàn)30數(shù)值計(jì)算課程設(shè)計(jì)1高斯列主元法解線性方程組1.1算法說(shuō)明將線性方程組做成增廣矩陣,對(duì)增廣矩陣進(jìn)行行變換。對(duì)第1列元素,在第i行及以下的元素中選取絕對(duì)值最大的元素,將該元素最大的行與第i行交換,然后采用高斯消元法將新得到的消去第i行以下的元素。一次進(jìn)行直到。從而得到上三角矩陣。再對(duì)得到的上三角矩陣進(jìn)行回代操作,即可以得到方程組的解。1.2算例課本99頁(yè)例3.16,求解方程組的解運(yùn)行結(jié)果如
10、圖1-1所示。圖1-11.3程序代碼#include#includeusing namespace std;const n=20;float ann;int m;int main()int i,j;int c,k,n,p,r;float xn,lnn,s,d;coutm;coutendl;cout請(qǐng)按順序輸入增廣矩陣a:endl;for(i=0;im;i+)for(j=0;jaij;for(i=0;im;i+) for(j=i;jfabs(aii)?j:i; /*找列最大元素*/for(n=0;nm+1;n+) s=ain; ain=acn; acn=s; /*將列最大數(shù)防在對(duì)角線上*/for
11、(p=0;pm+1;p+)coutaipt;coutendl;for(k=i+1;km;k+) lki=aki/aii; for(r=i;r=0;i-) d=0;for(j=i+1;jm;j+)d=d+aij*xj;xi=(aim-d)/aii; /*求解*/cout該方程組的解為:endl;for(i=0;im;i+)coutxi=xit; /system(pause); return 0; 2牛頓法解非線性方程組2.1算法說(shuō)明設(shè)已知,第一步計(jì)算函數(shù)第二步計(jì)算雅可比矩陣第三步求線性方程組的解。第四步計(jì)算下一點(diǎn)重復(fù)以上過(guò)程。2.1算例:設(shè)有非線性方程組(課本137頁(yè)例3.32)設(shè)初始值,用牛頓
12、法計(jì)算。解:迭代3次后的近似解向量為1.9068,0.311219;具體運(yùn)行結(jié)果如圖2-1,2-2,2-3所示。 圖2-1圖2-2圖2-12.2程序代碼#include#include#define n 2 /非線性方程組中方程的個(gè)數(shù)、未知量的個(gè)數(shù)#define epsilon 0.0001 /差向量的上限#define max 100 /最大迭代次數(shù)using namespace std;const int n2=2*n;int main()void ff(float xxn,float yyn); /計(jì)算向量函數(shù)的因變量向量yynvoid ffyakebi(float xxn,float
13、yynn);/計(jì)算雅可比矩陣yynnvoid inv_yakebi(float yynn,float invnn);/計(jì)算雅可比矩陣的逆矩陣invvoid newton(float x0n,float invnn,float y0n,float x1n);/由近似解向量x0求近似解向量x1float x0n=2.0,0.25,y0n,yakebinn,invyakebinn,x1n,errornorm;int i,iter=0;cout初始近似解向量:endl;for(i=0;ix0i;for(i=0;in;i+)coutx0i ;coutendl;coutendl;doiter=iter+1
14、;cout第iter次迭代開(kāi)始endl;ff(x0,y0);ffyakebi(x0,yakebi);inv_yakebi(yakebi,invyakebi);newton(x0,invyakebi,y0,x1);errornorm=0;for(i=0;in;i+)errornorm=errornorm+fabs(x1i);if(errornormepsilon) break;for(i=0;in;i+)x0i=x1i;while(itermax);return 0;void ff(float xxn,float yyn)float x,y;int i;x=xx0;y=yy1;yy0=x*x-2
15、*x-y+0.5;yy1=x*x+4*y*y-4;cout向量函數(shù)的因變量向量是:endl;for(i=0;in;i+)coutyyi ;coutendl;coutendl;void ffyakebi(float xxn,float yynn)float x,y;int i,j;x=xx0;y=xx1;yy00=2*x-2;yy01=-1;yy10=2*x;yy11=8*y;cout雅可比矩陣是:endl;for(i=0;in;i+)for(j=0;jn;j+)coutyyij ;coutendl;coutendl;void inv_yakebi(float yynn,float invnn)
16、float augnn2,l;int i,j,k;cout開(kāi)始計(jì)算雅可比矩陣的逆矩陣:endl;for(i=0;in;i+)for(j=0;jn;j+)augij=yyij;for(j=n;jn2;j+)if(j=i+n)augij=1;elseaugij=0;for(i=0;in;i+)for(j=0;jn2;j+)coutaugij ;coutendl;coutendl;for(i=0;in;i+)for(k=i+1;kn;k+)l=-augki/augii;for(j=1;jn2;j+)augkj=augkj+l*augij;for(i=0;in;i+)for(j=0;jn2;j+)co
17、utaugij ;coutendl;cout0;i-)for(k=i-1;k=0;k-)l=-augki/augii;for(j=n2-1;j=0;j-)augkj=augkj+l*augij;for(i=0;in;i+)for(j=0;jn2;j+)coutaugij ;coutendl;cout=0;i-)for(j=n2-1;j=0;j-)augij=augij/augii;for(i=0;in;i+)for(j=0;jn2;j+)coutaugij ;coutendl;for(j=n;jn2;j+)invij-n=augij;coutendl;cout雅可比矩陣的逆矩陣是:endl;f
18、or(i=0;in;i+)for(j=0;jn;j+)coutinvij ;coutendl;coutendl;void newton(float x0n,float invnn,float y0n,float x1n)int i,j;float sum=0;for(i=0;in;i+)sum=0;for(j=0;jn;j+)sum=sum+invij*y0j;x1i=x0i-sum;cout近似解向量:endl;for(i=0;in;i+)coutx1i ;coutendl;coutendl;3經(jīng)典四階龍格庫(kù)塔法解一階微分方程組3.1算法說(shuō)明4階龍格-庫(kù)塔方法(rk4)可模擬n=4的泰勒方法
19、的精度。這種算法可以描述為,自初始點(diǎn)開(kāi)始,利用下面的計(jì)算方法生成近似序列3.2算例:用4階龍格-庫(kù)塔方法計(jì)算區(qū)間0.0,0.2上式(3)的數(shù)值解,采用10個(gè)子區(qū)間,步長(zhǎng)h=0.02。(課本400頁(yè)例9.15)求解運(yùn)行結(jié)果如圖3-1所示。初值圖3-13.3程序代碼#include#includeusing namespace std;void lg(double (*f)(double t,double x,double y),double (*g)(double t,double x,double y),double chuzhi3,double resu3,double h)double f
20、1,f2,f3,f4,g1,g2,g3,g4,t0,x0,y0,x1,y1;t0=chuzhi0;x0=chuzhi1;y0=chuzhi2;f1=f(t0,x0,y0);g1=g(t0,x0,y0);f2=f(t0+h/2,x0+h*f1/2,y0+h*g1/2);g2=g(t0+h/2,x0+h*f1/2,y0+h*g1/2);f3=f(t0+h/2,x0+h*f2/2,y0+h*g2/2);g3=g(t0+h/2,x0+h*f2/2,y0+h*g2/2);f4=f(t0+h,x0+h*f3,y0+h*g3);g4=f(t0+h,x0+h*f3,y0+h*g3);x1=x0+h*(f1+2
21、*f2+2*f3+f4)/6;y1=y0+h*(g1+2*g2+2*g3+g4)/6;resu0=t0+h;resu1=x1;resu2=y1;int main()double f(double t,double x,double y);double g(double t,double x,double y);double chuzhi3,resu3;double a,b,s;double t,step;int i;coutchuzhi0chuzhi1chuzhi2;coutab;coutstep;s=(b-a)/step;coutchuzhi0setw(10)chuzhi1setw(10)c
22、huzhi2endl;for(i=0;istep;i+)lg(f,g,chuzhi,resu,s);coutresu0setw(10)resu1setw(10)resu2endl;chuzhi0=resu0;chuzhi1=resu1;chuzhi2=resu2;return 0;double f(double t,double x,double y)double dx;dx=x+2*y;return(dx);double g(double t,double x,double y)double dy;dy=3*x+2*y;return(dy);4三次樣條插值算法(壓緊樣條)4.1算法說(shuō)明表5-
23、1 三次樣條插值算法說(shuō)明表策略描述包含和的方程(i)三次緊壓樣條,確定,(如果導(dǎo)數(shù)已知,這是“最佳選擇”)(ii)natural三次樣條(一條“松弛曲線”),(iii)外掛到端點(diǎn)(iv) 是靠近端點(diǎn)的常量,(v)在每個(gè)端點(diǎn)處指定,4.2算例求三次緊壓樣條曲線,以經(jīng)過(guò)點(diǎn)(0,0),(1,0.5),(2,2.0)和(3,1.5),且一階導(dǎo)數(shù)的邊界條件為s(0)=0.2和s(3)=-1。(課本222頁(yè)例5.7)求解運(yùn)行結(jié)果界面如下:圖4-1 三次樣條插值算法(壓緊樣條)matlab作圖如圖4-2所示。 圖4-24.3 c+程序代碼#include#includeusing namespace std
24、;const int max = 50;float xmax, ymax, hmax;float cmax, amax, fxymmax;float f(int x1, int x2, int x3) float a=(yx3-yx2)/(xx3-xx2); float b=(yx2-yx1)/(xx2-xx1); return (a-b)/(xx3-xx1); /求差分void cal_m(int n)/用追趕法求解出彎矩向量m float bmax; b0 = c0 / 2; for(int i = 1; i n; i+) bi = ci / (2 - ai*bi-1); fxym0 =
25、fxym0 / 2; for(i = 1; i = 0; i-) fxymi = fxymi - bi*fxymi+1;void printout(int n);int main() int n,i; char ch; do coutn; for(i = 0; i = n; i+) coutplease put in xixi; coutplease put in yiyi; for(i = 0; i n; i+) /求步長(zhǎng) hi = xi+1 - xi; coutt; switch(t) case 1:cout輸入 y0 ynf0f1; c0 = 1; an = 1; fxym0 = 6*(
26、y1 - y0) / (x1 - x0) - f0) / h0; fxymn = 6*(f1 - (yn - yn-1) / (xn - xn-1) / hn-1; break; case 2:cout輸入 y0 ynf0f1; c0 = an = 0; fxym0 = 2*f0; fxymn = 2*f1; break; default:cout不可用n;/待定 ; for(i = 1; i n; i+) fxymi = 6 * f(i-1, i, i+1); for(i = 1; i n; i+) ai = hi-1 / (hi + hi-1); ci = 1 - ai; an = hn-
27、1 / (hn-1 + hn); cal_m(n); coutn輸出三次樣條插值函數(shù):n; printout(n); coutch; while(ch = y | ch = y); return 0;void printout(int n)coutsetprecision(6); for(int i = 0; i n; i+)couti+1: xi , xi+1nt;coutsi+1 0) cout-t*(x - xi+1)3; else cout-t*(x - xi+1 0) cout + t*(x - xi)3; else cout - t*(x - xi)3; cout 0) cout-
28、 t*(x - xi+1); else cout- -t*(x - xi+1 0) cout + t*(x - xi); else cout - -t*(x - xi); coutendl; coutendl;4.4 matlab程序代碼x1=0:0.01:1;y1=0.06*(x1 - 1).3 + 0.42*(x1 - 0).3 - 0.06*(x1 - 1) + 0.08*(x1 - 0);x2=1:0.01:2;y2=-0.42*(x2 - 2).3 - 0.62*(x2 - 1).3 - 0.08*(x2 - 2) + 2.62*(x2 - 1);x3=2:0.01:3;y3=0.6
29、2*(x3 - 3).3 + 0.06*(x3 - 2).3 - 2.62*(x3 - 3) + 1.44*(x3 - 2);x=0 1 2 3;y=0 0.5 2 1.5;plot(x1,y1,x2,y2,x3,y3,x,y,*)gtext(s1)gtext(s2)gtext(s3)5龍貝格求積分算法5.1算法說(shuō)明生成的逼近表,并以為最終解來(lái)逼近積分逼近存在于一個(gè)特別的下三角矩陣中,第0列元素用基于個(gè)a,b子區(qū)間的連續(xù)梯形方法計(jì)算,然后利用龍貝格公式計(jì)算。當(dāng)時(shí),第行的元素為當(dāng)時(shí),程序在第行結(jié)束。5.2算例用龍貝格求積公式計(jì)算的值,運(yùn)行結(jié)果如圖5-1所示。圖5-15.3 程序代碼#includ
30、e#include#includeusing namespace std;#define f(x) (sin(x) /列舉函數(shù)#define n 20 /區(qū)間等分?jǐn)?shù)#define max 10 /最大迭代次數(shù)#define a 0 /所求積分的上下限#define b 1#define epsilon 0.0001 /精度double romberg(double aa,double bb,long int n)int i;double sum,h=(bb-aa)/n;sum=0;for(i=1;in;i+)sum=sum+f(aa+i*h);sum=sum+(f(aa)+f(bb)/2;re
31、turn (h*sum);void main()int i;long int n=n,m=0;double t2max+1;t10=romberg(a,b,n);n=n*2;for(m=1;mmax;m+)for(i=0;i=m;i+)t0i=t1i;t10=romberg(a,b,n);n=n*2;for(i=1;i=m;i+)t1i=t1i-1+(t1i-1-t0i-1)/(pow(2,2*m)-1);if(t0m-1-t1m)epsilon)coutt=t1mendl;return;6 m次多項(xiàng)式曲線擬合6.1算法說(shuō)明設(shè)有n個(gè)點(diǎn),橫坐標(biāo)是確定的。最小二乘拋物線的系數(shù)表示為(6-1)求解a
32、,b和c的線性方程組為6.2算例 根據(jù)4個(gè)點(diǎn)(-3,3),(0,1),(2,1)和(4,3),求解最小二乘拋物線。(課本211頁(yè)例5.6)求解結(jié)果如圖6-1所示。圖6-16.3程序代碼#include#include#define max 20using namespace std;int main()int n,m,i,j,k;void inv(double xmaxmax,int n,double emaxmax);double xmax=0,ymax=0,zmaxmax=0,bmax=0,cmax=0;double amaxmax=0,bzmaxmax=0,emaxmax=0;coutn
33、;coutendl;cout請(qǐng)輸入n個(gè)點(diǎn)的x坐標(biāo)序列:;for(i=0;ixi;coutendl;cout請(qǐng)輸入n個(gè)點(diǎn)的y坐標(biāo)序列:;for(i=0;iyi;coutendl;coutm;for(i=0;in;i+)for(k=1;k=m+1;k+)zik-1=pow(xi,k-1);/求z的轉(zhuǎn)置for(i=0;in;i+)for(j=0;jm+1;j+)bzji=zij; /計(jì)算其轉(zhuǎn)置的bf與z的乘 for(i=0;im+1;i+)for(j=0;jm+1;j+)for(k=0;kn;k+)aij+=bzik*zkj;/計(jì)算z的轉(zhuǎn)置bz與y的乘for(i=0;im+1;i+)for(j=0;
34、jn;j+)bi+=bzij*yj;/調(diào)用inv函數(shù)求解矩陣a的逆矩陣einv(a,n,e);/計(jì)算a的逆bz與b的乘for(i=0;im+1;i+)for(j=0;jn;j+)ci+=eij*bj;coutendl;cout擬合后的m次多項(xiàng)式系數(shù)為,冪次由高到低:=0;i-)coutcit;coutendl;cout擬合后的m次多項(xiàng)式為:endl;cout=0;i-)if(i=0)cout+ci;elsecout+ci*xi;coutendl;return 0;void inv(double xmaxmax,int n,double emaxmax)/求解任意可逆矩陣的逆,x為待求解矩陣,e
35、為全零矩陣,非單位矩陣,也可以是單位矩陣int i,j,k;double temp=0;for(i=0;imax;i+)for(j=0;jmax;j+)if(i=j)eij=1;for(i=0;in-1;i+)temp=xii;for(j=0;jn;j+)xij=xij/temp;eij=eij/temp;for(k=0;kn;k+)if(k=i)continue;temp=-xii*xki;for(j=0;jn;j+)xkj=xkj+temp*xij;ekj=ekj+temp*eij;7拉格朗日插值解多項(xiàng)式7.1算法說(shuō)明7.2算例給定函數(shù)四個(gè)點(diǎn)坐標(biāo)(1.1,3.887),(2.3,4.276
36、),(3.9,4.651),(5.1,2.117),試用拉格朗日插值確定函數(shù)在x=2.101處的值。求解運(yùn)行結(jié)果界面如圖7-1所示,可知函數(shù)在點(diǎn)2.101處的值為4.14569。圖7-17.3程序代碼#include#define n 4/插值節(jié)點(diǎn)的個(gè)數(shù)using namespace std;void main()float xn,yn,a,f=0,temp;int i,j;cout輸入插值節(jié)點(diǎn)的坐標(biāo):endl;for(i=0;ixi;cinyi;couta;for(i=0;in;i+)temp=1;for(j=0;jn;j+)if(i!=j)temp=temp*(a-xj)/(xi-xj);
37、f=f+temp*yi;cout所求值為:fendl;8二分法求解非線性方程8.1算法說(shuō)明若要求已知函數(shù)的根(x的解),則第一步先找出一個(gè)區(qū)間a,b,使得與異號(hào),因此這個(gè)區(qū)間內(nèi)一定包含著方程的根。第二步求該區(qū)間的中點(diǎn) ,并找出的值。若與正負(fù)號(hào)相同則取m,b為新的區(qū)間, 否則取a,m,重復(fù)第二和第三步至理想精確度為止。8.1算例利用二分法尋找函數(shù)在區(qū)間0,2內(nèi)的的零點(diǎn)。(課本44頁(yè)例2.7)運(yùn)行結(jié)果如圖8-1所示。圖8-18.2程序代碼#include #include #define eps 0.001double fun(double x)return x*sin(x)-1;double d
38、ichotomy(double a,double b)double c=0.0;if(fun(a)0)while(true)c=(a+b)/2;if(fun(c)0)a=c;if(fabs(a-b)eps)return (a+b)/2;else if(fun(c)=0)return c;elseb=c;if(fabs(a-b)eps)return (a+b)/2;elsecout你輸入的a和b不正確endl;return -1;int main()double a=0;double b=2;double result=dichotomy(a,b);cout求解的結(jié)果是:resultendl;return 0;9 不動(dòng)點(diǎn)迭代9.1算法說(shuō)明 先將改寫(xiě)成,然后對(duì)進(jìn)行迭代,即 其中然后判斷是否成立,成立則返回,不成立就重復(fù)以上步驟9.2算例當(dāng)使用函數(shù)時(shí),設(shè)迭代。通過(guò)求解方程可找到不動(dòng)點(diǎn)。(課本36頁(yè)例2.4)求解運(yùn)行結(jié)果界面如圖9-1所示,可知迭代在區(qū)間-2,2上最終收斂到2。圖9-19.3程序代碼#include#include#include#define max 20#define eps 0.00001using
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《唯美模板》課件
- 《禮儀插花的應(yīng)用》課件
- 單位管理制度集粹匯編人員管理十篇
- 《離合器檢修》課件
- 單位管理制度匯編大合集人事管理十篇
- 單位管理制度分享匯編【人力資源管理】十篇
- 單位管理制度分享大全職員管理篇
- 單位管理制度范例選集職員管理篇十篇
- 《中級(jí)計(jì)量經(jīng)濟(jì)學(xué)》課程教學(xué)大綱 (二)
- 八下期中測(cè)試卷02【測(cè)試范圍:第1-11課】(原卷版)
- 鄧州市龍理鄉(xiāng)第一初級(jí)中學(xué)-2025年春節(jié)寒假跨學(xué)科主題實(shí)踐作業(yè)模板【課件】
- 公司安全事故隱患內(nèi)部舉報(bào)、報(bào)告獎(jiǎng)勵(lì)制度
- 倉(cāng)儲(chǔ)類(lèi)企業(yè)企業(yè)風(fēng)險(xiǎn)分級(jí)管控和隱患排查治理雙體系(2022-2023手冊(cè))
- 應(yīng)聘人員面試登記表
- 中職學(xué)校優(yōu)秀班主任事跡材料(完整版)
- 草莓采摘機(jī)械手的設(shè)計(jì)與實(shí)現(xiàn)
- 最全的官能團(tuán)化合物的紅外吸收峰特征
- 世界氣候類(lèi)型(圖很清晰)
- 新版【處置卡匯編】重點(diǎn)崗位人員應(yīng)急處置卡(全套25頁(yè))
- EE系列磁芯參數(shù)
- 工程勘察現(xiàn)場(chǎng)見(jiàn)證報(bào)告
評(píng)論
0/150
提交評(píng)論