分法與線性方程組求解全主元線性方程的直接解法試驗報告_第1頁
分法與線性方程組求解全主元線性方程的直接解法試驗報告_第2頁
分法與線性方程組求解全主元線性方程的直接解法試驗報告_第3頁
分法與線性方程組求解全主元線性方程的直接解法試驗報告_第4頁
分法與線性方程組求解全主元線性方程的直接解法試驗報告_第5頁
免費預覽已結(jié)束,剩余12頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、數(shù)值分析實驗報告二分法與線性方程組求解班級:11級計本二班組號:組長:第一組狄永鋒組員:聶嘉俊范中義許君晉王浩陳廣清時間:2014年6月13日實驗報告題目:非線性方程求解摘要:非線性方程的解析解通常很難給出,因此線性方程的數(shù)值解法就尤為重要。本實驗 采用最常見的求解方法二分法。算法說明:對于二分法,其數(shù)學實質(zhì)就是說對于給定的待求解的方程f(x),其在a,b上連續(xù),f(a)f(b)<0,且f(x)在a,b內(nèi)僅有一個實根x*,取區(qū)間中點d,若,則d恰為其根,否則根 據(jù)f(a)f(d)<0是否成立判斷根在區(qū)間a,d和c,b中的哪一個,從而得出新區(qū)間,仍稱為 a,b。重復運行計算,直至滿足

2、精度為止。這就是二分法的計算思想。程序設計:#i nclude <stdio.h>#in elude <math.h>void fun (double x1,double x2,double(*f)(double)double x;int k=0;while(f(x1)*f(x2)>0)printf("請重新輸入:n");scan f("%f,%f", &x1, &x2);while(fabs(f(x)>5e-6)x=(x2+x1)/2;if(f(x)*f(x1)<0)x2=x;elsex1=x;

3、k+;prin tf("%15.14fn",x);prin tf("%15.14fn",f(x);prin tf("%dn",k);/例一double t(double x)return (12-3*x+2*cos (x);/*/ 例二:double t(double x)return sin( x)-x*x/3;/例三double t(double x)return (x*x*x-x-1);/例四double t(double x)return (x*x-x-1);/例五double t(double x)return x*x-3*

4、x -11;*/int mai n() double x1,x2;prin tf("e nter x1,x2:");scan f("%lf,%lf", &x1, &x2);fun (x1,x2,t);return 0;實例分析和討論:1.用二分法計算方程 12-3*x+2*cos (x)=0在2 , 4內(nèi)的根。(;=0.0001,下同) 運行結(jié)果為:en ter x1,x2:2,43.34740447998047-0.0000042413694118計算結(jié)果為x= 3.34740447998047;f(x)= -0.00000424136

5、941;k=18;迭代次數(shù)為:17由f(x)知結(jié)果滿足要求。2xsinx =02.用二分法計算方程3 在1,3內(nèi)的根。運行結(jié)果為:en ter x1,x2:1,31.722122192382810.0000037921943817實際意義為:x= 1.72212219238281 ;f(x)=0.00000379219438 ;k=17;由f(x)知結(jié)果滿足要求。3.用二分法計算方程x3-x-1=0在1 ,1.5內(nèi)的根。 運行結(jié)果為:en ter x1,x2:1,1.51.324718475341800.0000022094948517計算結(jié)果為x=1.32471847534180;f(x)=

6、 0.00000220949485 ;k=17 ;由f(x)知結(jié)果滿足要求4.用二分法計算方程x*x-x-1=0在1 , 2內(nèi)的根。 運行結(jié)果為:en ter x1,x2:1,21.618034362792970.0000008363858817計算結(jié)果為x= 1.61803436279297;f(x)= 0.00000083638588 ; k=17 ;由f(x)知結(jié)果滿足要求。5.用二分法計算方程x2 3x-10在0,3內(nèi)的根 運行結(jié)果為:en ter x1,x2:0,32.140044179595950.0000017105032821 實際意義為:x=2.14004417959595

7、; f(x)=0.00000171050328 ; k=21;由f(x)知結(jié)果滿足要求。結(jié)論:當時收斂的速度和對于二分法,只要能夠保證在給定的區(qū)間內(nèi)有根,使能夠收斂的,給定的區(qū)間有關,二且總體上來說速度比較慢。5 / 16實驗報告二題目:全主元線性方程的直接解法摘要:求解線性方程組的方法很多,主要分為直接法和間接法。本實驗運用直接法的Guass 消去法,并采用選主元的方法對方程組進行求解。算法說明:本次試驗是n階線性代數(shù)方程組 Ax=b,其中A=(aij)是方程組的系數(shù)aij構(gòu)成的nx n 階矩陣,叫做系數(shù)矩陣。B= (ai (n+1), x為所求的解。主元素消去法是為控制舍入誤 差而提出來的

8、一種算法,在Gauss消去法的消元過程中,若出現(xiàn)akk(k)=O,則消元無法進行,即使akk(k)工0,但很小,把它作為除數(shù),就會導致其他元素量級的巨大增長和舍入 誤差的擴散,最后使計算結(jié)果不可靠,而全主元消去法正式解決這種問題的算法。抑制舍入誤差的增長,通常有兩個途徑,一是增加參加計算的數(shù)字位數(shù),從而使最后結(jié)果中積累起來的誤差隨之減小。但這樣做會使計算的時間增加,我們這里要講的是另一種途徑,在做除法運算時,分母的絕對值越小,舍入誤差影響就越大,因此在做除法運算時,要選取 絕對值比較大的做分母,這就是主元素消去法的基本思想。程序設計:#i nclude "stdio.h"#

9、in clude "math.h"struct Cxi nt n, m;double *x;i nt *p;templatevtype name T> void LtoL(T a,i nt n ,i nt m,i nt t,i nt s)T d;int k, i;for(i=0;i<m;i+)d=at*m+i;at*m+i=as*m+i;as*m+i=d;templatevtype name T> void CtoC(T a,i nt n ,i nt m,i nt t,i nt s)T d;int k, i;for(i=O;i< n;i+)d=ai*

10、m+t;ai*m+t=ai*m+s;ai*m+s=d;void swap RC(double a,double b,i nt b1,i nt n,i nt k,i nt t,i nt s)LtoL(a, n,n ,k,t);LtoL(b, n,1,k,t);CtoC(a, n,n ,k,s);LtoL<i nt>(b1, n,1,k,s);/*int i;double d;for(i=0;i< n;i+)d=ak* n+i;ak* n+i=at* n+i;at* n+i=d; d=bk;bk=bt;bt=d;for(i=0;i< n;i+) d=ai* n+k;ai*

11、n+k=ai* n+s;ai* n+s=d;int d1;d仁 b1k;b1k=b1s;b1s=d1;*/voidmaxRC(double a,i nt n,i nt k,i nt &t,i nt &s)t=k;s=k;for(i nt i=k;i <n ;i+)for(i nt j=k;j <n ;j+)if(abs(at* n+s)<abs(ai* n+j)t=i;s=j;void Rns(double a,double b,int n,int i)/ 消元 i 列for(i nt j=i+1;j <n ;j+)double m=-aj* n+i/a

12、i* n+i;aj*n+i=0;for(i nt k=i+1;k< n;k+) aj* n+k=aj* n+k+ai* n+k*m; bj=bj+bi*m;void gsT(double a,double b,double y,i nt n ,i nt m)int i,j;ym-1=bm-1/a(m-1)* n+m-1;for(i=m-2;i>=0;i-)double s=0;for(j=i+1;j<m;j+)s+=ai* n+j*yj;yi=(bi-s)/ai* n+i;double* gsTm(double a,double b,i nt n ,i nt m)int i,

13、k;double *x=new double n*(n-m+1),*b仁 new doublem,*y=new doublem;for(i=m;i< n*( n-m+1);i+) xi=0;gsT(a,b,y, n, m);for(k=0;k<m;k+)xk*( n-m+1)=yk;for(i=m;i< n;i+)xi*( n-m+1)+i-m+1=1;for(k=0;k<m;k+) b1k=-ak* n+i;gsT(a,b1,y, n,m);for(k=0;k<m;k+) xk*( n-m+1)+i-m+1=yk;delete y;delete b1;retur

14、n x;void PtoP(double x,i nt p,i nt n,i nt m)int i,j;for(i=0;i< n;i+)if(pi!=i)LtoL<double>(x, n, m,i,pi);LtoLvi nt>(p ,n ,1,i,pi);Cx gaAII(double a,double b ,int n) 解 Ax=b,n 元 double *x=NULL;int *p=new in t n;i nt m=n ,i,j,t,s;Cx cx= n,n-m+1,NULL,p;for(i=0;i< n;i+) pi=i;for(i=0;i< n

15、;i+)maxRC(a, n,i,t,s);/*if(at* n+s=0) m=i;for(j=m;j <n ;j+) if(bj!=0) return cx;break;else swapRC(a,b,p, n,i,t,s);Rn s(a,b, n,i);/ */cx.m=n-m+1;cx.x=gsTm(a,b, n,m);PtoP(cx.x,cx.p, n,n-m+1);return cx;void prin t(double a,double b,i nt n)int i,j;for(i=0;i< n;i+)for(j=0;j< n;j+) pri ntf("

16、%-15.6f",ai* n+j);prin tf("%-15.6fn",bi);prin tf("n");void prin tx(Cx ex)int i,j;if(cx.x=NULL) retur n;for(i=0;i<ex. n;i+)prin tf("%-3d:",cx.pi);for(j=0;j<cx.m;j+)prin tf("%15.6f",cx.xi*cx.m+j);prin tf("n");void test(double a,double b,Cx c

17、x)int i,j;for(i=0;i<cx. n;i+)double s=0;for(j=0;j<cx .n ;j+)s+=ai*cx. n+j*cx.xj*cx. n;prin tf("%f",bi-s);void copyAb(double a,double b,i nt n ,double a1,double b1)for(i nt i=0;i< n;i+)for(i nt j=0;j <n ;j+)a1i* n+j=ai* n+j;b1i=bi;void main()int i,j;double a=1, 1,1 ,2,2, 2, 2 ,4

18、,3, 3, 3, 6,1, 1, 1,2,b=1,2, 3, 1;9 / 16prin t(a,b,4);Cx cx=gaAII(a,b,4);prin t(a,b,4);prin tx(cx); getchar();實例分析和討論:例1、求解方程:葛:訂:氣;運行結(jié)果為:24.00000046.00000062.00000083.00000019.00000038.00000024.00000046.00000062.00000083.00000019.00000038.0000000 :-1.2500001 :2.000000計算結(jié)果為:X = -1.250000, x?=2.00000

19、0;驗證:數(shù)據(jù)代入原方程結(jié)果滿足要求運行結(jié)果為:3.000000-1.0000004.0000003.000000-1.0000004.0000000 :1 :2 :-1.0000002.000000-3.000000-1.0000002.000000-3.0000002.166667-0.5000000.0000004.000000-2.0000001.0000004.000000-2.0000001.0000007.000000-1.0000000.0000007.000000-1.0000000.000000_3-14x1/I例2、求解方程-1 2 -2x2J14 -3 1 一M3 一1

20、。J15 / 16計算結(jié)果為:Xi = 2.166667X2= -0.500000X3=0.000000驗證:數(shù)據(jù)代入原方程結(jié)果滿足要求-258 3 r-xjI468 9 3x4例3、求解方程:4315 2X36020 1 2X45-000 0 0'X5 一j0 一運行結(jié)果為:2.0000005.0000008.0000003.0000001.0000002.0000004.0000006.0000008.0000009.0000003.0000004.0000004.0000003.0000001.0000005.0000002.0000006.0000000.0000002.000

21、0000.0000001.0000002.0000005.0000000.0000000.0000000.0000000.0000001.0000000.0000002.0000005.0000008.0000003.0000001.0000002.0000004.0000006.0000008.0000009.0000003.0000004.0000004.0000003.0000001.0000005.0000002.0000006.0000000.0000002.0000000.0000001.0000002.0000005.0000000.0000000.0000000.0000000

22、.0000001.0000000.0000000 :23.2500001 :18.5000002 :-19.0000003 :5.0000004 :0.000000計算結(jié)果為:X1=23.250000,X2= 18.500000, x3=-19.000000 , X4 =5.000000 , x5= 0.000000驗證:數(shù)據(jù)代入原方程結(jié)果滿足要求1.0000001.0000001.0000002.0000001.0000002.0000002.0000004.0000003.0000002.0000003.0000006.0000001.0000001.0000003.0000002.000

23、0003.0000004.0000006.0000001.0000002.0000003.0000004.0000005.0000006.000000運行結(jié)果為:2.0000003.0000001.0000003.0000006.0000001 2 2-X1*4 33x221 1 1x3=34 63x414 56_-x5 一6 一1 12 2例4、求解方程3 623231.0000001.0000001.0000002.0000002.0000001.0000002.0000002.0000004.0000003.0000003.0000002.0000003.0000006.0000001.

24、0000001.0000001.0000003.0000002.0000003.0000004.0000006.0000003.0000001.0000002.0000003.0000004.0000005.0000006.0000006.0000000 :2.0000001 : -4.6666672 :2.3333333:-0.3333334 :1.000000計算結(jié)果為:X1 = 2.000000,X2 = -4.666667, X3 =2.333333, X4 =-0.333333, X5 =1.000000驗證:數(shù)據(jù)代入原方程結(jié)果滿足要求9 3 6 2 7 1 6 8 10jx1 -3

25、1 2 5 9 13 4 6 12 27 6x227 21 2591 3541x396 18 27631728x471 19 10 23 7 6 1 1 0 1x561 774278352x650393865351x77| 3 5 1 0 3 4 3 6 3 5x844489791321x9972 10 8167097_x1011 _例5、求解方程:其中£ =8。運行結(jié)果為:8.0000009.0000003.0000006.0000002.0000007.0000001.0000006.0000008.00000010.0000003.0000001.0000002.0000005

26、.0000009.00000013.0000004.0000006.00000012.00000027.0000006.0000002.0000007.00000021.0000002.0000005.0000009.0000001.0000003.0000005.0000004.0000001.0000009.0000006.00000018.0000002.0000007.0000006.0000003.0000001.0000007.0000002.0000008.0000007.0000001.00000019.00000010.00000023.0000007.0000006.000

27、0001.0000001.0000000.0000001.0000006.0000001.0000007.0000007.0000004.0000002.0000007.0000008.0000003.0000005.0000002.0000005.0000000.0000003.0000009.0000003.0000008.0000006.0000005.0000003.0000005.0000001.0000007.0000003.0000005.0000001.0000000.0000003.0000004.0000003.0000006.0000003.0000005.0000004

28、.0000004.0000004.0000008.0000009.0000007.0000009.0000001.0000003.0000002.0000001.0000009.0000007.0000002.00000010.0000008.0000001.0000006.0000007.0000000.0000009.0000007.0000001.0000008.0000009.0000003.0000006.0000002.0000007.0000001.0000006.0000008.00000010.0000003.0000001.0000002.0000005.0000009.00000013.0000004.0000006.00000012.00000027.0000006.0000002.0000007.00000021.0000002.0000005.0000009.0000001.0000003.0000005.0000004.0000001.0000009.0000006.00000018.0000002.0000007.0000006.0000003.0000001.0000007

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論