方程组的直接解法和迭代法 python_数据与算法总结——基本数值算法2(线性方程组)...
4 基本數(shù)值算法
4.2 線性方程組
4.2.1 線性方程組的特性
解的存在性和唯一性
滿足下面條件之一,A非奇異,可逆:
如果b屬于A的列向量張成的空間,則稱方程組是相容的。
范數(shù)需要滿足次可加性(三角不等式)。
對(duì)于n維矢量x,可以定義p范數(shù),p為大于0的整數(shù):
。所以1范數(shù)為相加,2范數(shù)為平方和開根, 范數(shù)為最大的x。定義矩陣范數(shù):
。根據(jù)相應(yīng)的向量范數(shù),我們可以得到:1范數(shù)為列向量求和最大,2范數(shù)為行向量求和最大。
矩陣范數(shù):滿足這些性質(zhì):
,如果對(duì)于任一標(biāo)量
,有對(duì)任意矢量x,有
問題的敏感性和病態(tài)性
:A的條件數(shù)如果A奇異,則
矩陣的條件數(shù)刻畫了矩陣對(duì)于非零矢量最大的延伸和壓縮能力,矩陣的條件數(shù)越大,說(shuō)明矩陣越接近奇異。
矩陣條件數(shù)的性質(zhì):
對(duì)于任意矩陣A,
;對(duì)于單位陣I, ;對(duì)于任意矩陣A和標(biāo)量 ,有 ;對(duì)于任意對(duì)角陣 , 。4.2.2 線性方程組的直接解法
主要是兩種:高斯消去法和LU分解
高斯消去法主要的計(jì)算量消耗在消元過程,時(shí)間復(fù)雜度為
。在消去過程中,對(duì)角線上的元素會(huì)作為除數(shù),如果它很小,就會(huì)發(fā)生上溢從而嚴(yán)重影響求解精度。于是就有了一個(gè)操作叫做:列選主元。講的是一個(gè)矩陣計(jì)算到
的時(shí)候,從 向下看,找到一個(gè)最大的家伙,然后把那一行整個(gè)搬過來(lái),把這一行搬過去,于是就很好的控制了上溢的問題。用時(shí)間換精度。然后LU分解在線性代數(shù)里面已經(jīng)學(xué)過了,這里就不再說(shuō)了......
線性方程組解的精度
殘差向量:
解為 ,定義殘差向量: 。有 。當(dāng)A為良態(tài)時(shí),小的相對(duì)殘差意味著解的相對(duì)誤差也小。A如果病態(tài),穩(wěn)定的算法可以得到小的殘差,但解的精度不一定高。
高斯-約當(dāng)法:把A變成一個(gè)對(duì)角陣。
喬列斯基分解:如果A是對(duì)稱正定陣則可以使用。
,L為下三角陣。4.2.3 線性方程組的迭代解法
迭代求解:直接解法的時(shí)間復(fù)雜度都是
,迭代運(yùn)算復(fù)雜度不超過 ,其中k為迭代步數(shù)。不動(dòng)點(diǎn)迭代
,定義譜半徑 為矩陣M所有特征值的最大值。如果
,則不動(dòng)點(diǎn)迭代收斂。分裂A是實(shí)現(xiàn)不動(dòng)點(diǎn)迭代的基本方法,令
,得到 ,得到不動(dòng)點(diǎn)迭代的形式: ,當(dāng) 時(shí),收斂雅可比方法
,D為對(duì)角陣,L和U為嚴(yán)格的上三角陣和下三角陣。 ,帶入迭代式: 。高斯-賽德方法
,D為對(duì)角陣,L和U為嚴(yán)格的上三角陣和下三角陣。 ,帶入迭代式: 。高斯-賽德方法能夠及時(shí)利用更新過的分量參與下一步計(jì)算,因此收斂速度要比雅可比大約快一倍,但這兩種方法收斂通常很慢。
總結(jié)
以上是生活随笔為你收集整理的方程组的直接解法和迭代法 python_数据与算法总结——基本数值算法2(线性方程组)...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果怎么自定义手机铃声
- 下一篇: python程序设计之文件_Python