超松弛迭代法解线性方程组c语言,超松弛迭代法解线性方程组.doc
PAGE
PAGE 2
姓名:___________________________
設計題目:超松弛迭代法解線性方程組
專業:
摘要
本文是在matlab環境下熟悉的運用計算機編程語言并結合超松弛變量超松弛迭代法的理論基礎對方程組求解。
首先,本文以微分方程邊值問題為例,導出了離散化后線性方程組即稀疏線性方程組,轉化對稀疏線性方程組求解問題。其次,用超松弛( SOR) 迭代法編寫matlab程序,對產生的稀疏線性方程組進行迭代法求解。然后,分別改變松弛因子ω和分段數n的值,分析其收斂性和收斂速度,做出各個方面的分析和比較得到相關結論。最后,將超松弛迭代算法在計算機上運用matlab語言實現, 得出了一組與精確解較接近的數值解,并畫圖比較,驗證逐次超松弛( SOR) 迭代法的精確性。
關鍵詞 : 稀疏線性方程組 逐次超松弛迭代法 松弛因子
matlab編程
問題提出
考慮兩點邊值問題
容易知道它的精確解為
為了把微分方程離散,把區間等分,令,,得到差分方程
簡化為
從而離散后得到的線性方程組的系數矩陣為
對,,,分別用、和的超松弛迭代法求解線性方程組,要求有4位有效數字,然后比較與精確解的誤差,探討使超松弛迭代法收斂較快的取值,對結果進行分析。改變,討論同樣問題。
二、超松弛迭代法產生的背景
對從實際問題中得到維數相當大的線性代數方程組的求解仍然十分困難, 以至使人們不能在允許的時間內用直接方法得到解, 因此, 客觀上要求用新的方法來解決大維數方程組的求解問題。
現有大多數迭代法不是對各類線性方程組都有收斂性, 在解題時, 要對原方程組矩陣作一根本的變換, 從而可能使條件數變壞, 也可能破壞了變換前后方程組的等價性, 以及喪失使原方程組的對稱性等。探求新的有效的解題方法依然是迫切的任務。逐次超松弛(Successive Over Relaxation)迭代法是在高斯-賽德爾(GS)迭代法基礎上為提高收斂速度,采用加權平均而得到的新算法。
在求解過程中由于線性方程組的系數矩陣維數較大, 采用計算機編寫算法來求解, 從而實現了對解析模型的計算機數值逼近的計算方法#本論文以逐次超松弛迭代法為主要的求解方法。
三、超松弛迭代法的理論基礎
逐次超松弛迭代法
逐次超松弛(Successive Over Relaxation)迭代法,簡稱SOR迭代法,它是在GS法基礎上為提高收斂速度,采用加權平均而得到的新算法,設解方程(7.1.3)的GS法記為 (1)再由與加權平均得 這里ω>0稱為松弛參數,將(1)代入則得 (2)該法稱為SOR迭代法,[WTBX]ω>0稱為松弛因子,當ω=1時(2)式即為高斯-賽德爾迭代法,簡記GS法,將(2)寫成矩陣形式,則得 即 于是得SOR迭代的矩陣表示 (3)其中 (4) 分解后,有.
逐次超松弛迭代法的收斂性
根據迭代法收斂性定理,SOR法收斂的充分必要條件為,收斂的充分條件為,但要計算比較復雜,通常都不用此結論,而直接根據方程組的系數矩陣A判斷SOR迭代收斂性,下面先給出收斂必要條件.
定理1 設,則解方程的SOR迭代法收斂的必要條件是0<ω<2.
該定理為SOR迭代法收斂的必要條件。
定理 2 若對稱正定,且0<ω<2,則解Ax=b的SOR迭代法對迭代收斂.
對于SOR迭代法,松弛因子的選擇對收斂速度影響較大,關于最優松弛因子研究較為復雜,且已有不少理論結果.下面只給出一種簡單且便于使用的結論。
定理3 設為對稱正定的三對角矩陣,是解方程的J法迭代矩陣,若,記,則SOR法的最優松弛因子為 (5)且 (6) 根據定理,,如圖1所示.由(6)可知,當ω=1,時,收斂速度為 . 說明GS法比J法快一倍.
圖1
定理4 設,如果:
A為嚴格對角占優矩陣;(2)0
則解的SOR迭代法收斂。
實驗內容
1.自定義函數 sor(A, b, nm, e, w),以實現SOR方法求解線性方程組AX=B,其中
A——系數矩陣;
b——常數列向量;
w——松弛因子;
nm——迭代的最大次數
e——達到的精度上限
由離散后的差分方程:
得到的線性方程組的系數矩陣為
常數列向量b=
其中,,,,則有。A為(aij)200*200型矩陣,b為(bij)200*1型矩陣。
在本次試驗中,由于所提供數據較小,當最大迭代次數nm較小時,在nm迭代次數范圍內,不能判斷該超松弛迭
總結
以上是生活随笔為你收集整理的超松弛迭代法解线性方程组c语言,超松弛迭代法解线性方程组.doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hadoop 2.6.5 + hive
- 下一篇: Intellij idea 出现错误 e