【正文】
感謝我的同學(xué)和朋友,在我寫論文的過(guò)程中給予我了很多 參考 素材,還在論文的撰寫和排版 等 過(guò)程中提供熱情的幫助。尤其要 特別 感謝我的論文指導(dǎo)老師 — 禹海雄 老師,她對(duì)我進(jìn)行了無(wú)私的指導(dǎo)和幫助,不厭其煩的幫助進(jìn)行論文的修改和改進(jìn)。 [4] 林成森、數(shù)值計(jì)算方法。通過(guò)對(duì)幾種方法 的計(jì)算精度和收斂性等作出比較,而得出結(jié)論,在這一章還介紹了一種求解非線性方程的新的迭代法,相比其他傳統(tǒng)的迭代法,新的迭代法有其迭代收斂速度更快、精度更高等特點(diǎn) 最后我再次對(duì)自己隨寫的論文坐下總結(jié),對(duì)于非線性方程組的求解數(shù)值的方法,論文介紹了牛頓法,擬牛頓法,割線法這三種最常見的方法,并把其算法步棸進(jìn)行了闡述,形象簡(jiǎn)單,容易讓人接受。 我們把輔助點(diǎn)定位 ,k i k kiix x h e?? , i=1, ..., n, 其此時(shí) ie 作為第 i 個(gè)分量為 1 的 17 坐標(biāo)向量, ? ?1 ,...,k k knh h h?是 kx 的已知向量,得到 kH =1 00kknhh?????? ? ? ? ?,k i kF x F x? =? ? ? ?? ? ? ?11...k k kiik k kn i i nf x h e f xf x h e f x?????????????? 我們?nèi)绻阉涀鳛椋?? ? ? ?? ?, , .k k k kijJ x h x h n n?, 其中 ? ? ? ? ? ?1,k k k k kij i i i ikix h f x h e f xh ??? ? ??? 此時(shí)這種割線法可以轉(zhuǎn)化為: ? ? ? ?? ? ? ? ? ?? ? ? ?11111,1, , ...,1,k k k k kk k k k kkk k knnknx x J x h F xJ x h F x h e F xhF x h e F xh????????????????? ? ????????????????? ① 我們通過(guò)割線法轉(zhuǎn)化得到的也可以說(shuō)是離牛頓法。 ?xf ,那么初值 10,xx 就會(huì)無(wú)限接近 *x ,此時(shí)雙點(diǎn)割線法的迭代過(guò)程收斂,收斂速度的計(jì)算方法為: 61 *61 *39。 現(xiàn)在來(lái)闡述一下割線法的幾何意義: 我們知道雙點(diǎn)割線法是將過(guò)點(diǎn) ))(,( 00 xfx 和 ))(,( 11 xfx 的割線與 x 軸交點(diǎn)的橫坐標(biāo) 2x 作為方程 0)( ?xf 的根 *x 的近似值 ,可以重復(fù)此過(guò)程進(jìn)行運(yùn)算,將 ))(,( 11 ?? kk xfx 16 和 ))(,( kk xfx 這兩點(diǎn)的割線與 x 軸交點(diǎn)的橫坐標(biāo) 1?kx 理解為方程 0)( ?xf 解 *x 的近似值。可以看得出一個(gè)非奇異矩陣 ? ?nkA L R? , nkbR? ,我們已知 F( x)在某點(diǎn)上的值,就可以利用插值得的方法來(lái)進(jìn)一步確定方程( 3 .2)中的 KA 和 KB ,從而得到這一類不用到算導(dǎo)數(shù)就可以求數(shù)值的方法,這就是我準(zhǔn)備所要介紹的割線法: 我們假設(shè)在 nR 中 n+1 個(gè)上面有互不相同的點(diǎn) ,kjx ( j=0., 1, ...n)上所對(duì)應(yīng)的函數(shù)值 F( ,kjx ),這是我們可以得到: ? ? ? ?, , ,k j k j k jk k kL x A x b F x? ? ?, i=0 , .......n。這就說(shuō)明了擬牛頓法的計(jì)算量小,不復(fù)雜,同時(shí)收斂性好。 擬牛頓法的算法 現(xiàn)在我們來(lái)說(shuō)下擬牛頓法的算法過(guò)程: 1. 首先我們要確定 ??0x 的初值,數(shù)值的精確度: ? , 0k? ,并定義初始矩陣為:oH ; 2. 其次求解 ? ?? ?kFx 的數(shù)值,假如 ? ?? ?kFx ?? ,那么就令 ? ?kxx?? ,停止; 3. 把 ? ? ? ? ? ?? ?1k k kkx x H F x? ??進(jìn)行迭代計(jì)算; 4. 在求解 ? ?? ?1kFx? ; 5. 1kk??,代入上面的( 2),來(lái)循環(huán)計(jì)算。 我們把 kB 定義為非奇異的。 kFx有奇異,那么這個(gè)時(shí)候牛頓法將無(wú)法計(jì)算。 kFx是 2n 個(gè)偏導(dǎo)數(shù)值建立的矩陣,我們不可能遇到的都是簡(jiǎn)單的數(shù)據(jù),假如我們遇到每個(gè)數(shù)值都很復(fù)雜,這個(gè)時(shí)候我們將無(wú)法進(jìn)行計(jì)算。 } 最后總結(jié):我們可以從上面的實(shí)例可以得到,牛頓法是求解非線性方程組最簡(jiǎn)單的一種線性方法,它的構(gòu)想是通過(guò)非線性方程組以線性方程組轉(zhuǎn)化,從 而來(lái)形成一種迭代形式然后迭代達(dá)到迭代次數(shù)來(lái)逼近,最終來(lái)求解。 getch()。 coutendl。imatrixNum。jmatrixNum。 *(matrixF2+j)=*(matrixF2+i*matrixNum+j)*t。 } 11 t=*(matrixF1+1)。 for(i=1,j=0。jmatrixNum。j++) { *(matrixF1+i*matrixNum+j)/=t。 coutendl。imatrixNum。 cout矩陣 F 在 [*x39。 *(matrixF1+3)=(f1(*x,(*(x+1)+x_))f1(*x,*(x+1)))/x_。 else *(matrixF2+i*matrixNum+j)=0。imatrixNum。 //矩陣 F 的雅可比矩陣 double *matrixF2。 getch()。,39。i++) p+=pow(*(b+i),2)。 cout*(x+i) 。i++) { for(j=0。 *(matrixF+1)=f1(*x,*(x+1))。 for(i=0。 for(i=0。 //矩陣 F 的雅可比矩陣的逆 b=(double *)malloc(matrixNum)。 double p,*x。 ,其精度 __ix k x k? 時(shí),我們需要重復(fù) 2— 5 次,一直使精度達(dá)到最?。ň?_xk? )時(shí)停止迭代,最后的迭代結(jié)果為 _ixk。 4. ??39。Fx? 。 2.把 ??Fx轉(zhuǎn)化為雅克比矩陣,得到 ??39。Fx,通過(guò) ??39。 ( 5) 這就是我們所說(shuō)的求解非線性方程組( 2)的牛頓法。若果知道方程組 ??Fx=0 的一個(gè)近似根? ? ? ?1 ,..., Tk kknx x x? ,再用函數(shù) ??Fx的分量 ? ?? ?1,....,if x i n? 在 ??kx 用多元函數(shù)泰勒的方法展開,提取線性方程就可以得到: ? ? ? ?? ? ? ?? ? ? ?? ?39。我們來(lái)比較一下牛頓法,牛頓法簡(jiǎn)單的來(lái)說(shuō)其實(shí)也是一種線性化方法,他的理念就是把非線性方程 f( x)轉(zhuǎn)化成某種類型的線性方程求解 x的值。 我們用差分方法離散化得到: 1 ,1h n? ? jt jh? , j=0,1,2,3,、 n+1 , 在得到: ? ? ? ?39。 ( 1) 我們可以把 F 可以看做在 nR 區(qū)域內(nèi)展開的非線性映像, 表示為 : nnF D R R? ? ? 下面我們來(lái)介紹簡(jiǎn)單的邊值問(wèn)題: ? ?39。我在圖書館查閱了資料和在老