<thead id="htxjv"><meter id="htxjv"><del id="htxjv"></del></meter></thead>
      <thead id="htxjv"></thead>
      <thead id="htxjv"></thead>

        <dfn id="htxjv"></dfn>

        <thead id="htxjv"><dfn id="htxjv"></dfn></thead>
        <meter id="htxjv"><thead id="htxjv"><del id="htxjv"></del></thead></meter>

        <mark id="htxjv"></mark>
        <th id="htxjv"></th>

        <thead id="htxjv"><menuitem id="htxjv"><ol id="htxjv"></ol></menuitem></thead>
        北京物流信息聯盟

        線性方程組的求解

        油藏地質與開發 2021-10-07 11:26:42


        線性方程組的求解釋工科學生的基本能力,也是油藏數值模擬編程的重要內容。建立質量守恒方程之后,方程組的求解是程序編制的主要問題,因此數值分析成了油藏工程專業的必修課程。

        ?

        1 一般線性方程組的求解

        線性方程組的求解有三種途徑:直接法、迭代法和極小化方法。

        直接法:利用Gauss消元或矩陣分解,通過有限次運算可求出精確解。

        迭代法:構造迭代格式,產水迭代序列,通過無限次迭代過程求解。有限次截斷得近似解。

        極小化方法:構造二次模函數,用迭代過程求二次模函數的極小化問題,即變分法,要求A對稱正定,現實中該條件很難滿足,因此主要討論直接法和迭代法。

        ?

        直接解法基于Gauss消去或矩陣分解,根據矩陣形式的不同,其分解方法不同,因此形成了多種基于矩陣分解的直接解法,這些求解方法在Accord.Net庫中基本都有,在Accord.Math.Decomopositions的命名空間下,可以直接拿來用。如正交分解QR,奇異值分解SVD,三角分解LU,Cholesky分解和NMF分解,只需輸入系數矩陣A和右端項b即可得到線性方程組的計算結果x,非常方便,但是有必要知道這些分解方法是如何實現及由哪些優點和缺點。

        直接法是在沒有舍入誤差的情況下,通過有限步四則運算以求解方程組。但是,在實際計算時,由于初始數據變為機器數而產生的誤差,以及計算過程中所產生的舍入誤差等都對解的精度產生影響,因此直接法實際上也只能算出方程組的近似解。這種方法的優點是計算量小,可事先估計,缺點是所需存儲單元較多,編寫程序復雜。

        ?

        迭代法是按照某種規則產生近似解序列,是極限逼近精確解,迭代方法的好壞集中體現在此迭代序列的收斂速度上。優點是算法簡單,編程容易實現。缺點是要求方程組系數矩陣具有某種特殊性質,以保證迭代過程的收斂性,發散的迭代過程是沒有使用價值的。

        ?

        一般簡單迭代法有Jacobi迭代法,Gauss-Seidel迭代法,SOR方法,SSOR方法,共軛梯度法等。

        Jacobi迭代格式通常不一定收斂,主對角占優下一定收斂。Gauss-Seidel迭代格式收斂速度更快,但迭代格式同樣不一定收斂。

        假設線性方程組為Ax=b可以寫作:

        ?
        ? ? ? ? ? ?

        Jacobi迭代格式為:


        Gauss-Seidel迭代格式為:


        ? ? ??為了用矩陣形式表示迭代格式,若將A變為A=D-L-U, 其中D為對角矩陣,LD分別為嚴格下三角和嚴格上三角矩陣。

        如果將(D-L-U)x=b改寫為Dx=(L+U)x+b,據此建立迭代格式即為Jacobi迭代格式:


        ? ? ??如果將方程Ax=(D-L-U)x=b改寫為Dx=Lx+Ux+b,據此建立迭代格式,則Gauss-Seidel迭代格式為:


        ? ?如果A=(aij)nm是嚴格對角占優矩陣,則線性方程組的雅可比迭代法與高斯-塞德爾迭代法都收斂,且塞德爾迭代的收斂速度不低于雅可比迭代法。

        逐次超松弛迭代法(Successive OverRelaxation Method,簡稱SOR方法)是高斯-塞德爾方法的一種加速方法,是解大型稀疏矩陣方程組的有效方法之一,它具有計算公式簡單,程序設計容易,占用計算內存較少等優點,但需要較好的加速因子,也稱松弛因子。松弛因子的選取對迭代格式的收斂性影響極大。實際計算時,需要根據系數矩陣的性質,結合經驗通過反復計算來確定松弛因子。

        ?

        2 大型線性稀疏方程組的求解

        現實中許多的科學和科學計算問題的求解往往歸結為大型稀疏線性方程組的求解,如石油地震數據處理,油藏數值模擬和數值天氣預報等。

        假設線性方程組Ax=b,其中An階實系數矩陣,xb是長度為n的向量。對于大型稀疏線性方程組,,由于存儲量和計算量的限制,常采用迭代法求解。根據經驗,對于中等規模的n階(n<100)的線性方程組,由于直接解法的準確性和可靠性,所以它們是經常被采用的方法。如果對大型稀疏線性方程組也用直接法求解,需要過多的存儲空間和運算量,并且容易產生過多的填入,破壞原始矩陣的洗屬性因而效率不高。所以直接解法的計算代價較高,使得迭代方法更具競爭力。

        上述介紹了常用的迭代方法,YoungVarga也對迭代法進行了細致的描述與探討,并已成為迭代法方面的經典著作。但由于科技的發展,越來越多的非結構、特殊的、大型的、稀疏的問題放在了計算數學的工作者面前,仍用這些方法顯得收斂速度太慢,甚至不收斂,且這些方法依賴于最優參數的選?。ㄈ?/span>SOR,SSOR),但一般的方程組無法直接得到最優參數,從而限制了方法的高效使用。目前這些方法已經很少用于直接求解大型稀疏線性方程組,而是作為預處理和其他方法結合使用。

        20世紀70年代以來,人們將研究的重點轉移到了對大型稀疏方程組的高效求解上來,大型稀疏線性方程的并行計算也越來越受到關注。目前這方面的研究熱點是Krylov子空間方法類及其并行實現。

        ?

        參考文獻

        李曉愛, 陳玉花, 張耘,. 求解大型稀疏線性方程組的Krylov子空間方法的發展[J]. 科技導報, 2013, 31(11):68-73.

        Young D M. Iterative solution of largelinear systems[M]. Elsevier, 2014.

        Varga, Richard S. Matrix iterativeanalysis. Vol. 27. Springer Science & Business Media, 2009.

        安學慶,求解大型稀疏線性方程組算法研究[D]鄭州大學,2006

        ?

        油藏地質和開發交流qq 63231398

        ?