對于一階線性方程的求解有多種方式,這里將介紹利用高斯消去法解一階線性方程組。在介紹高斯消去法前需要對《線性代數(shù)》做一下溫習,同時在代碼中對于矩陣的存儲做一個簡要介紹。
通常遇到矩陣我們會利用二維數(shù)組來進行對矩陣數(shù)值的存儲(例如前幾篇中動態(tài)規(guī)劃中對于求解矩陣初始化就是利用二維數(shù)組),但在計算機的內(nèi)存中是沒有“二維”這種存儲方式的,內(nèi)存都是以“一維”的方式存儲數(shù)據(jù),那么這就帶來一個問題,在代碼層面定義一個二維數(shù)組時,計算機內(nèi)部是怎么存儲的呢?
int[][] array = new int[3][3]; //Java中定義一個3行3列的矩陣
Java中的二維數(shù)組定義在內(nèi)存中實際如下圖所示,它是按照行優(yōu)先的順序進行存儲的。
在編寫矩陣計算的程序時,應當盡量避免跳躍訪問矩陣中的元素——《算法筆記》。所以如果我們運算順序是按照列來運算的話,此時Java定義的二維數(shù)組就會對元素進行跳躍訪問。不妨利用一維數(shù)組按照自定義的行優(yōu)先或者列優(yōu)先來存儲矩陣數(shù)據(jù),這樣對于列運算也有應對策略。