版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、太原理工大學數(shù)值計算方法實 驗報告本科實驗報告課程名稱:計算機數(shù)值方法實驗項目:方程求根、線性方程組的直接解法、線性方程組的迭代解法、代數(shù)插值和最小一乘擬合多項式實驗地點:行勉樓專業(yè)班級:*學號: *學生姓名:*指導教師:李 誌,崔冬華2016學生姓實驗成名績實驗名稱實驗一方程求根實驗內(nèi)容和要求熟悉使用二分法、迭代法、牛頓法、割線法等方法對給定的方程進行根的求解。選擇上述方法中的兩種方法 求方程:f(x)=x 3+4x2-10=0在1,2內(nèi)的一個實根,且要求滿足精 度|x -x n|<0.5 X 10-(1) 了解非線性方程求根的常見方法,如二分法、牛頓法、割線法。(2) 加深對方程求根
2、方法的認識,掌握算法。(3 )會進行誤差分析,并能對不同方法進行比較。實驗原理1. 二分法:如果要求已知函數(shù)f(x) = 0的根(x的解),那先要找出一個區(qū)間a, b,使得f(a)與f(b)異號。根據(jù)介值定理,這個區(qū)間內(nèi)一定包含著方程式的根。求該區(qū)間的中點m=(a+b)/2,并找出f(m) 的值。若f(m) 與f(a) 正負號相同,則取m, b 為新 的區(qū)間,否則取a, m。重復第3步和第4步,直到得到理想的精確度為止。2. 割線法是利用牛頓迭代法的思想,在根的某個領(lǐng)域內(nèi),函數(shù)有直至二階的連續(xù)導數(shù),并且不等于0,則在領(lǐng)域內(nèi)選取初值X0,X1,迭代均收斂。(1) 在區(qū)間m ,n內(nèi)輸入初值x0,
3、x1.(2) 計算 x2。x2=x1-f(x1)*(x1-x0)/(f(x1)-f(x0)(3) x0-x1,x1-x2(4)判斷是否達到精度,若是輸出x1,若否 執(zhí)行(2)主要儀器設(shè)備HP計算機實驗記錄1.二分法/方程求根(二分法).cpp :定義控制臺應(yīng)用程序的入口點。/#i nclude "stdafx.h"#i nclude"iostream"using n amespace std;class Textpublic:float x, y, a, b, c, n = 0;void Getab()cout << "請輸入計算區(qū)
4、間:(以空格隔開)"<< endl; cin >> a >> b;float GetY(float x)y = x*x*x + 4 * x*x - 10;return y;float Calculate(float a,float b)c = (a + b) / 2;n+;if (GetY(c) = 0 | (b - a) / 2) < 0.000005)cout << c <<"為方程的解"<< endl; return 0;if (GetY(a)*GetY(c) < 0)ret
5、urn Calculate(a,c);if (GetY(c)*GetY(b)< 0)retur n Calculate(c,b);int mai n()cout << "方程組為:f(x)=xA3+4xA2-10=0" << endl;float a, b;Text text;text.Getab();a = text.a;b = text.b;text.Calculate(a, b);return 0;gg C Yd NDOWE1 eyramewe|方程組為* f®刊3-4匸2-10-0 請輸入計銓區(qū)間以空格陰開);1 2L 365
6、23為方弄的科請按任意鍵樂續(xù).2.割線法:/方程求根(割線法).cpp :定義控制臺應(yīng)用程序的入口點。/#i nclude "stdafx.h"#i nclude"iostream"using n amespace std;class Apublic:float x0,x1,y;float GetY(float x)y= x*x*x+4*x*x-10;return y;void GetNumber()cout<<"請輸入兩個初始近似值:(以空格隔開)"<< endl;cin >> x0;cin &g
7、t;> x1;void Calculate(float x0,float x1)float x2;x2 = x1 - (GetY(x1) / (GetY(x1) - GetY(x0)*(x1 - x0);if (x2=x1)cout <<x2<<"為方程的解"<< endl;elsecout << x2 << en dl;return Calculate(x1, x2);int mai n()cout << "方程組為:f(x)=xA3+4xA2-10=0" <<
8、endl; float a, b;A text;text.GetNumber();a = text.x0;b = text.x1;text.Calculate(a,b);return 0;SB C:VVINDitem32cfnd.exe|方程組為2f(x)x"3+4x 210-0 幘輸入兩個初始近似值;以寧格隔開) 1 21. 263161.33883L 366621. 36521L 365231. 30523方程的解請按仕意鍵繼續(xù).:心得體會使用不同的方法,可以不同程度的求得方程的解,通過二分法計算的程序?qū)崿F(xiàn)更加 了解二分法的特點,二分法過程簡單,程序容易實現(xiàn),但該方法收斂比較慢一
9、般用于求 根的初始近似值,不同的方法速度不同。面對一個復雜的問題,要學會簡化處理步驟, 分步驟一點一點的循序處理,只有這樣,才能高效的解決一個復雜問題。實驗名稱實驗二線性方程組的直接求解實驗內(nèi)容和要求合理選擇利用 Gauss消元法、主元素消元法、LU分解法、追趕法求解下列方程組:1 23xi14012x282 41x313(1) 了解線性方程組常見的直接解法,如Guass消元法、LU分解法、追趕法。(2)加深對線性方程組求解方法的認識,掌握算法。(3)會進行誤差分析,并能對不同方法進行比較。實驗原理1.咼斯分解法:將原方程組化為三角形方陣的方程組:l ik =aik /a kka ij = a
10、 ij - l ik* a kjk=1,2,n-1i=k+1,k+2,n j=k+1,k+2,n+1由回代過程求得原方程組的解:X n= a nn+1/ a nnx k=( a kn+i-刀 akj x j)/ a kk (k=n-1,n-2,2,1)2. LU分解法:將系數(shù)矩陣A轉(zhuǎn)化為A=L*U, L為單位下三角矩陣,U為普通上三角矩陣, 然后通過解方程組l*y=b,u*x=y, 來求解x.主要儀器設(shè)備HP計算機實驗記錄1.高斯消兀法:#i nclude "stdio.h"#i nclude "math.h"#i nclude <stdio.h&
11、gt;double a5 6,a0 56; double l5,tmp;void Excha nge(i nt i)int j,l,k;double max=aOii,temp; j=i;for(k=i;k<=3;k+)if(aOki>max) max=aOki; j=k; for(l=i;l<=4;l+)temp=aOil; aOil=aOjl; aOjl=temp;for(i=1;i<=3;i+)for(j=1;j<=4;j+) aij=aOij;void displayA()int i,j;pri ntf("n");for(j=1;j&l
12、t;=3;j+)for(i=1;i<=4;i+)prin tf("%lf ",aji);prin tf("n");void mai n()int i,j,k;for(i=1;i<=3;i+)for(j=1;j<=4;j+) scan f("%lf",&aij); a0ij=aij;displayA(); printf(”列主元素消元法如下");/消元過程k=1;doExcha nge(k); displayA();for(i=k+1;i<=3;i+)li=aOik/aOkk;prin tf(&
13、quot;l%i%i=%lf",i,k,li); for(j=k;j<=4;j+) aij=a0ij-li*a0kj;displayA();k+;if(k=3) break;for(j=1;j<=3;j+)for(i=1;i<=4;i+)a0ji=aji;while(1);/回代過程l3=a34/a33;for(k=3;k>=1;k-)tmp=0; for(j=k+1;j<=3;j+)tmp+=akj*lj; lk=(ak4-tmp)/akk;for(i=1;i<=3;i+)prin tf("x%i=%lfn",i,li);2
14、3 141 2 S4 1 132-0B000U1 .98398012.0600004 *0盹盹 0列主元索消元法如下2.G6OOO0 Q6Q0C00 1.000000 121E1J-0 206000Q esesea 1.000000 1L31E1J-0 2.QH060Q4.000900 1000盹0 s.aeena 0000004.B0B00B 10009002.0BMH0 5300004.D000O06,0666002.0U060Q1.0000001 s. aeawa4.00W001 - 00090010.000000 0.000000l3H2=B.OB(90n2.QU0O0Q 4.00dU
15、UU6.0000001 - 90390013.0900992.03麗陽1 9000081.0990092 0303003 0093001 aaoaaa2 090090a ” 0000001.00090(92.0009002.000881.0389km2.0909002.5900091 .2.09899014.0000309 _B008SBU 003000L3000000 8000000 14.000HAR直3000000 BB0000B14.00000013.0000008.S00000758068813.0000008.B000007.5000006.0000000.0000002.5303
16、00xl11.000000工2=2-盹0盹0x3 1=3 .盹盹00Pres 殆ny key to cont inuie13.0000008.S3000B7-5000002.LU分解法:#in clude<stdio.h> #in clude<math.h>int i,j,k,r;double m=0,p=0;double a33;void lu(double a33)for(i=1;i<=2;i+)if(aOO!=O) ai0=ai0/a00;for(k=1;k<=2;k+) for(j=k;j<=2;j+)for(r=0;r<=k-1;r+)
17、m=m+akr*arj;akj=akj-m;m=0;for(i=k+1;i<=2;i+)for(r=0;r<=k-1;r+)P=P+air*ark;aik=(aik-p)/akk;p=0; void mai n() static double a33=1,2,3,0,1,2,2,4,1;static double b3=14,8,13;double c3;double d3;double f33;double m=0;double n=0;int r;int i,j;lu(a);printf("輸出U的矩陣為n");for(i=0;i<=2;i+)for(
18、j=i;j<=2;j+)fij=aij;prin tf(" %f',fij);prin tf("n ”);printf("輸出L的矩陣為n”);for(i=0;i<=2;i+)for(j=0;j<=i;j+)if(i=j)aij=1;printf(" %f",aij);elseprintf(" %f",aij);prin tf("n");&0=b0;for(i=1;i<=2;i+)for(r=0;r<=i-1;r=r+1)m=m+air*cr;ci=bi-m;
19、m=0;d2=c2/f22;for(i=1;i>=0;i=i-1)for(r=2;r>i;r=r-1)n=n+fir*dr;di=(ci-n)/fii;n=0;printf(”所求方程組解為x仁%f, x2=%f, x3=%f",d0,d1,d2);/*根據(jù)LU分解所得兩個矩陣及求解步驟計算所求X 一組解*/刪出U旳矩陣為1.030000 2.806m 3.BM0081 .00(10輸岀L的矩陣為1,0060000”000000 1.0000902.030000 0.000090 1.000000所求方程組解xi =1.000000, xS =2 -, x3 =3 .QS
20、QSBSPress an ij key t:o con tiniuie心得體會對于求解線性方程組的各種直接方法來說各有優(yōu)缺點,在所有的求解方法中都應(yīng) 該注意其解的精度。注意不同求解方法的不同誤差求法。編寫程序的時候需要一步一步 慢慢來,逐步增加自己的算法知識水平和解決問題的能力。實驗名稱實驗三線性方程組的迭代求解實驗內(nèi)容和要求10捲x2 2x37.2Xi 10x2 2x38.3捲x2 5x34.2使用雅可比迭代法或高斯-賽德爾迭代法對下列方程組進行求解。實驗原理雅可比迭代法:設(shè)線性方程組Ax=b的系數(shù)矩陣A可逆且主對角元素aii,a22,ann均不為零,令D=diag(a ii,a 22,a
21、nn)并將A分解成A=(A-D)+D從而線性方程組可寫成Dx=(D-A)x+b則有迭代公式x(k+1)=Bix(k)+fi其中,B=l-D-1A,f i=D 1b。主要儀器設(shè)備HP計算機實驗記錄#include <stdio.h> #include <math.h> int main()int i;double x120,x220,x320;double x10,x20,x30;printf( "please in put x1,x2,x3:n");sea nf( "%lf%lf%lf",& x10, &x20,
22、&x30);printf( " nx1nx2nx3nn");for (i= 0;i< 18;i+)x10=x10;x20=x20;x30=x30;x1i+ 1=0.1*x2i+ 0.2*x3i+ 0.72;x2i+ 1=0.1*x1i+ 0.2*x3i+ 0.83;x3i+ 1=0.2*x1i+ 0.2*x2i+ 0.84;printf( "%5d %5lf %5lf %5lfn" ,i,x1i,x2i,x3i);return 0;Iplease input 衣1,x2,;b b 3nxl Tnlx2(nlx3nl00.606066
23、7;.03030013.84990821.0700B0i.i&aoaa31.8570001.1571001-24S20041.0853501.1853401.28282051.0950981.1950991.294130S1.6983341.1983371.29803?716994421.1994421.2?33581.B99S111.19981112?77?56999361.19993612?24IM1.0999791-19997?1.2?99?5111.6999931 -1?931121S999981.19999B12?7131.8999991-1999951.2?T?¥
24、丄4l.ieoem1.2000001.300900151.2600001.30903016i.lessee1.2060081,3011090171.2000001303300心得體會在編寫算法是不熟悉, 查閱了很多資料,經(jīng)過反復研究和試驗后實現(xiàn)了題目的要求,使用雅克比迭代法和高斯-賽德爾都可以得到方程的解,但相比之下,高斯-賽德爾的迭代次數(shù)要比雅克比的迭代次數(shù)少,能夠更快的達到所求的解的精度。實驗名稱實驗四代數(shù)插值和最小二乘法擬合實驗內(nèi)容和要求1. 學習使用拉格朗日插值法或牛頓插值法求解 方法。2. 了解最小二乘法的多項式擬合的具體計算方 法并且注意克服正規(guī)方程組的病態(tài)。給定數(shù)據(jù)點(Xi ,
25、y )如下:Xi00.50.60.70.80.91.0yi11.751.962.192.442.713.00(1) 使用拉格朗日插值法或牛頓插值法,求f(0.856)的近似值.(2) 用最小二乘法擬合數(shù)據(jù)的(n次)多項式,求f(0.856)的近似值.(3) 對比、分析上兩結(jié)果實驗原理設(shè)函數(shù)在區(qū)間a,b上n+1互異節(jié)點xo,x i,,x n上的函數(shù)值分別為 yo,y i,,y n,求n次插值多項式Pn(x),滿足條件Pn(xj)=yj, j=0,1,n令Ln(x)=y ol o(x)+y il i(x)+ +ynl n(x)= 刀yl(x)其中10(x),l1(X),,l n(x) 為以xo,x
26、 1,x n為節(jié)點的n次插值基函數(shù),則 Ln(x)是一次數(shù)不超過n的多項式,且滿足Ln(x j )=y j, L=0,1,n再由插值多項式的唯一性,得Pn(x) = Ln(x)主要儀器設(shè)備HP計算機實驗記錄(寫出實驗內(nèi)容中的程序代碼和運行結(jié)果)(可分欄或加頁)拉格朗日插值法:#i nclude "stdio.h"int mai n()double m=1.0,a=0.856,l=0;int i,j;double x6=0.50,0.60,0.70,0.80,0.90,1.00;double y6=1.75,1.96,2.19,2.44,2.71,3.00;for(i=0;i<=5;i+)for(j=0;j<=5;j+)if(i=j) con ti nue; m=m*(a-xj)/(xi-xj);l+=yi*m;m=1;printf("結(jié)果為 lf",l);return 0;§#2-588736Pi*ess 日n少 l<ey to cont inue最小二乘法
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文件保護課程設(shè)計
- 插班課程設(shè)計
- 山東交通學院《山東紅色文化與當代價值》2023-2024學年第一學期期末試卷
- 山東工藝美術(shù)學院《環(huán)境微生物試驗》2023-2024學年第一學期期末試卷
- 山東工業(yè)職業(yè)學院《景觀生態(tài)學原理與應(yīng)用》2023-2024學年第一學期期末試卷
- 微電網(wǎng)技術(shù)課程設(shè)計
- 教學樓電氣照明課程設(shè)計
- 幼兒課程設(shè)計唱歌活動
- 安吉物流園區(qū)課程設(shè)計
- 插畫課程設(shè)計評價標準
- 知行合一 - 社會實踐?創(chuàng)新創(chuàng)業(yè)(江西師范大學)知到智慧樹章節(jié)答案
- 城市排水系統(tǒng)維護員合同范例
- 人教版英語八年級上冊《Unit 10 If you go to the party,you'll have a great time!》大單元整體教學設(shè)計2022課標
- Unit5《Lovely faces》(說課稿)-2024-2025學年滬教版(五四制)(2024)英語一年級上冊
- 2024年度文化旅游產(chǎn)業(yè)投資與運營合同6篇
- 胸痛的診斷及護理
- 2025年專項債券投向及申報要求
- 列管式(正丁醇)換熱器設(shè)計
- 工廠配電系統(tǒng)培訓
- 職場禮儀概述與常見的禮儀
- 客戶減肥合同范例
評論
0/150
提交評論