北航研究生數(shù)值分析編程大作業(yè)_第1頁
北航研究生數(shù)值分析編程大作業(yè)_第2頁
北航研究生數(shù)值分析編程大作業(yè)_第3頁
北航研究生數(shù)值分析編程大作業(yè)_第4頁
北航研究生數(shù)值分析編程大作業(yè)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、WORD格式整理版數(shù)值分析大作業(yè)一、算法設(shè)計(jì)方案1、矩陣初始化矩陣A二bj 501 501的下半帶寬r=2,上半帶寬s=2,設(shè)置矩陣C 'r s 1 fed 1, 在矩陣C中檢索矩陣A中的帶內(nèi)元素訐的方法是:aj =cKj.這樣所需要的 存儲單元數(shù)大大減少,從而極大提升了運(yùn)算效率.2、利用幕法求出,501幕法迭代格式:非零向量 u0 e Rn=JukUky k J - u k J / k _1u k = Ay k3 k = yku k'J當(dāng)|悅-B|/Bk蘭10上時,迭代終止.首先對于矩陣A利用幕法迭代求出一個,然后求出矩陣B,其中 B二A -1 ( |為單位矩陣),對矩陣B進(jìn)

2、行幕法迭代,求出,之后令"', 比擬與,的大小,大者為'501,小者為 1.3、利用反幕法求出-s, ik反幕法迭代格式:'非零向量u0ERn4 = JUk 4Uk* yk=Uk/nk J-Auk =yz和=yLu當(dāng)|丘-円/陳蘭10孔時,迭代終止,丸s=1Rk.每迭代一次都要求解一次線性方程組 Auyk4,求解過程為:(1)作分解A二LU對于k =1,2,., n執(zhí)行k 二cks.1,j:=cks 1,j -' Ck_t -s 1,tcts 1,jt=max(i,k_r,j _s)l.j = k, k 1,., min( k s, n) Ikci _

3、k s 1,k : 二(ci _k來申,k 一 為 Ci_t衣*tct_k韋申,k )/Cs 1,kt maxOi_r ,k_s) = k 1,k2,., min( k - r, n); k : s 1(2)求解Ly二b,Ux =y (數(shù)組b先是存放原方程組右端向量,后來存放中間向量y)i 二bi 二 bi ci _k;s 1,tbt (i = 2,3,.,n)t max(1 ,i _r)xn =bn / cs 1.nmin(i -s,n)Xi = (bi -' Ci_t s 1.tXt)/Cs 1,i(i = n -1, n -2,.,1)t丄卅使用反幕法,直接可以求得矩陣按模最小的

4、特征值s O求與數(shù)1輸二011(k =1,2,.,39)最接近的特征值 h,對矩陣A-SI40實(shí)行反冪法,即可求出對應(yīng)的= 1/ k -k O4、求出A的條件數(shù)和行列式根據(jù)cond(A)2 =|甲彳,其中分子分母分別對應(yīng)按模最大和最小的特征值.det(A)的計(jì)算:由于A二LU ,其中L為下三角矩陣,且對角線元素為1,故det(L) =1,所以有A = LU = U,又U為上三角矩陣,故det(U )為對其對角線上各元素的乘積,最后可得det(A)二det(U )學(xué)習(xí)參考好幫手二、程序源代碼(1) 定義所需要的函數(shù):#i nclude <stdio.h>#in elude vconi

5、 o.h>#in elude <math.h>#defi ne N 501#defi ne R 2#defi ne S 2int min (i nt a,i nt b); /求最小值int max(i nt a,i nt b,i nt c); /求最大值double Fan_two(double xN);計(jì)算二范數(shù)void FenjieLU(double (*C)N);解線性方程組的LU分解過程void Solve(double (*C)N, double *b,double *x);解線性方程組的求解過程double PowerMethod(double CN,double

6、 uN,double yN,double bta,double D);幕法double In versePowerMethod(double CN,double uN,doubleyN,double bta,double D);反幕法;(2) 程序的主函數(shù),Main.cpp代碼如下:void mai n()double CR+S+1N;double uN;double yN;double miu39;double C1R+S+1N;double bta = 1.0;double Namda1,Namda501,NamdaS;double Namda39;double Co ndA2;doubl

7、e detA = 1.0;double D = 1.0e-12;int i, j, k;FILE * fp;fp = fope n( "Namda.txt","w");/對數(shù)組進(jìn)行初始化/int i, j;for (i = 0; i < N; i+)ui = 1;for (i = 0;i< R + S + 1;i+)for (j = 0;j< N;j+)if (i=0|i=4)Cij=-0.064;else if (i=1|i=3)Cij=0.16;else if (i=2)Cij=(1.64-0.024*(j+1)*si n(0.2*

8、(j+1) -0.64*exp(0.1/(j+1);/幕法求Namda1Namda1 = PowerMethod(C, u, y, bta, D);prin tf("n=n"); prin tf("Namda1 = %12.11e", Namdal);prin tf("n=n");/ 幕法求 Namda501bta = 1.0;for (i = 0; i < R + S + 1; i+)for (j = 0; j < N; j+)if (i = 2)C1ij =Cij -Namdal;elseC1ij = Cij;Namd

9、a501 = algorism.PowerMethod(C1, u, y, bta, D) +Namda1;prin tf("n=n");prin tf("Namda501 = %12.11e", Namda501);prin tf("n=n"); /反幕法求NamdaS/bta = 1.0;NamdaS = In versePowerMethod(C, u, y, bta, D);prin tf("n=n"); prin tf("NamdaS = %12.11e", NamdaS);prin

10、tf("n=n"); /反幕法求Namdakprin tf("n=n"); for (k = 0; k < 39; k+)miuk = Namda1 + (k + 1) * (Namda501 - Namda1) / 40.0;bta = 1.0;for (i = 0; i < R + S + 1; i+)for (j = 0; j < N; j+)if (i = 2)C1ij =Cij - miuk;elseC1ij = Cij;Namdak = In versePowerMethod(C1, u, y, bta, D) + miuk

11、; fprin tf(fp,"與%12.11e最接近的特征值為:12.11en",miuk,Namdak);printf(" 求與miuk最接近的Namdak的計(jì)算結(jié)果已經(jīng)輸出到文件Namda.txt 中");prin tf("n=n"); /求A的譜范數(shù)/prin tf("n=n");printf("A 的譜范數(shù)為:%12.11e", sqrt(Namda501);prin tf("n=n"); /求A的條件數(shù)/Con dA2 = fabs( Namda1 / NamdaS

12、);prin tf("n=n");printf("A 的譜范數(shù)的條件數(shù) Cond(A)2為:%12.11e",CondA2);prin tf("n=n"); / 求det(A)2 的值/for (j = 0; j < N; j+)detA *= C2j;prin tf("n=n");printf("行列式 A的值為:%12.11e",detA);prin tf("n=n"); fclose(fp);_getch();return;(3)成員函數(shù)的實(shí)現(xiàn)int min (i

13、 nt a,i nt b)return a < b ? a : b;int max(i nt a,i nt b,i nt c)int temp;temp = a > b ? a : b;return temp > c ? temp : c;double Fan_two(double xN) _double sum = 0.0;int i;for (i = 0; i < N; i+)sum += pow(xi,2);return sqrt(sum);void FenjieLU(double (*C)N)double sum = 0;int i, j, k,t;for (k

14、 = 0; k < N; k+)j = k;i = k + 1;while (1)if (j = mi n(k + S + 1, N)break;for (t = max(0, k - R, j - S); t <= k - 1; t+) sum += Ck-t+St * Ct-j+Sj;Ck-j+Sj = Ck-j+Sj - sum;sum = 0.0;j+;if (k = N-1)break;if (i = mi n(k + R + 1, N) break;for (t = max(0, i - R,k - S); t <= k - 1; t+)sum += Ci-t+S

15、t * Ct-k+Sk;Ci-k+Sk = (Ci-k+Sk - sum) / CSk;sum = 0;i+;void Solve(double (*C)N, double *b,double *x)double sum = 0;int i, t;sum = 0;for (i = 1; i < N; i+)for (t = max(0, i - R); t <= i - 1; t+)sum += Ci-t+St * bt;bi = bi - sum;sum = 0;xN-1 = bN-1 / CSN-1;for (i = N - 2; i >= 0; i-)for (t =

16、i+1; t <= mi n(i + S, N - 1); t+)sum += Ci-t+St * xt;xi = (bi - sum) / CSi;sum = 0;double PowerMethod(double CN,double uN,double yN,double bta,double D)double ita;double sum = 0;double temp = 0.0;int i,j,k = 0;while (fabs(bta - temp) / fabs(bta) > D)temp = bta;ita = Fan _two(u);for (i = 0; i &

17、lt; N; i+)yi = ui / ita;for (i = 0; i < N; i+)for (j = max(0,i - R); j < mi n(i + S + 1,N); j+)sum += Ci - j + Sj * yj;ui = sum;sum = 0;for (i = 0; i < N; i+)sum += yi * ui;bta = sum;sum = 0;k+;return bta;double In versePowerMethod(double CN,double uN,double yN,double bta,double D)double TC

18、R+S+1N;double tyN;double ita;double sum = 0;double temp = 0.0;int i,j,k = 0;FenjieLU(C);while (abs(1/bta - 1/temp) / abs(1/bta) > D)temp = bta;ita = Fan _two(u);for (i = 0; i < N; i+)yi = ui / ita;/用到臨時存儲數(shù)組TC和ty是由于函數(shù)Solve執(zhí)行過程中會改變 A和 yfor (i = 0; i < R + S + 1; i+)for (j = 0; j < N; j+)TC

19、ij = Cij;for (i = 0; i < N; i+)tyi = yi;Solve(C, y, u);for (i = 0; i < R+S+1; i+)for (j = 0; j < N; j+)Cij = TCij;for (i = 0; i < N; i+)yi = tyi;for (i = 0; i < N; i+)sum += yi * ui;bta = sum;sum = 0;k+;bta = 1.0 / bta;return bta;三、程序運(yùn)行結(jié)果下列圖為主程序運(yùn)行結(jié)果其中'ik的結(jié)果輸出在Namda.txt文件中,結(jié)果如下:與Y

20、018949*i9222e + 001> 與-9.67887622933e*000S: -9.16825753648e*00eft _-8 .65763S8436Ue + caoJr -ft_lH702 QISOSQe + OOsW -7-63640145795etO8Ow 4-7-1257fi276511et00fl® 4-&-&15164ft7226e + 0O0£ 與-6.1045537942e + 0O_ -5.59392668657e+O00jg; _-5.O833B799373e + 00Bft -4-572fi893 0O89e + O0

21、04. 06207 06 08 0Ue + 0Bfl< -3.551H519152Oe + 000<: 4-3 O083322235e + 00Oft -2.53 021452951e + 0O01 近的牛 近的 近的 近的 近的-2.01959583666e + O0Cb|; 寫亠T. 50S977143«2e + O0GS; -9.98358U5 0975e-O0lW -4-87739758131e-001 2.28789347135e- 002> 與 $ ,33M7627558e-O0lfc 1 .C4411632 0t|0e+00R 與X .554735O1

22、325e+0O0M -2.06535370609? +000 _2.57597239894e + 000ft 與8-O86S91S9178e+BO&fe 3-59720978ii62e+O0&S 4>107«2fiV77e+O0B 4-618717 0319+001 與 5.125>06586316e+0OBft 5 _63968H-55600 +BOB% 6.1S0363248859 + 與血-660921 ?i*l69e+00&fe 7.1715UB63ii53e+00B 7.6«215932738e+00B 4e-192778 02

23、 022e+ 006 與8,70339671307e+OOft& -9_21£»8154O591e+000近的征566891I近的 近的 近的 近的 近的卡征等征近的恃征 近的轉(zhuǎn) 近的彳 近的 近的 近的匕 近的占 近的 近的 近舸 近的 遊的 近的 近的: 近的 近的 近的: 近的 近的占 近飾-1.01829340331+091 -9-5857O742S07e+008 -9+0OO :-8-652284007909+000 :-fi _fl93483B0868e+0Q0 :-7.659U05iiG769e+ftO0 :-7.11968a

24、»6Xi869e+00O :-6.61176i»3394fle+00O :-6.06610322660P+000 :-5.585101 05263e*090 :-5,11408352981e+000 :->»-57887217687e+000 為:-.0978293G79Oe+flO0 :-3.55421121575e+000:-3 . B4109 001813e+ 080 :-2-526430591?+DOB :-2,00323076956?+000 :-1.0355761123?+000 :-9 -4386060089-061 :-.73UU062771

25、1e"ftO1 2征 征 征 征 征 征 征 征 征 征 征 征 征 征 征 征22332317362U957e-002 B11&3921fi46e-0n OS289896269&+0O0 615786874956+ODO B6Q330U6027?+B00 6 034577ii527e*B0a 08024050931?+000 61362 0867«9«*O0O 09137851045e+000 C03 03537028+000+SCO 59490634&Ofle+OOO 08093385703P+000 6S035ii 09211?+00a 2938774iU813e+0O0 71711171ii2Jie+000 2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論