日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

12.高斯消去法(1)——矩阵编程基础

發布時間:2024/8/26 综合教程 37 生活家
生活随笔 收集整理的這篇文章主要介紹了 12.高斯消去法(1)——矩阵编程基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  對于一階線性方程的求解有多種方式,這里將介紹利用高斯消去法解一階線性方程組。在介紹高斯消去法前需要對《線性代數》做一下溫習,同時在代碼中對于矩陣的存儲做一個簡要介紹。

  通常遇到矩陣我們會利用二維數組來進行對矩陣數值的存儲(例如前幾篇中動態規劃中對于求解矩陣初始化就是利用二維數組),但在計算機的內存中是沒有“二維”這種存儲方式的,內存都是以“一維”的方式存儲數據,那么這就帶來一個問題,在代碼層面定義一個二維數組時,計算機內部是怎么存儲的呢?

int[][] array = new int[3][3]; //Java中定義一個3行3列的矩陣

  Java中的二維數組定義在內存中實際如下圖所示,它是按照行優先的順序進行存儲的。

  

  在編寫矩陣計算的程序時,應當盡量避免跳躍訪問矩陣中的元素——《算法筆記》。所以如果我們運算順序是按照列來運算的話,此時Java定義的二維數組就會對元素進行跳躍訪問。不妨利用一維數組按照自定義的行優先或者列優先來存儲矩陣數據,這樣對于列運算也有應對策略。

  舉個例子:

  根據矩陣乘法的定義,A顯然不能與X直接相乘,將A作轉置得到:

  A與X相乘=>X·AT

  綜上,A與X相乘可推出:

  矩陣與向量相乘有兩種實現方式(參照《算法筆記》):

  第一種:

for j ∈ {1, 2, 3, …, n} do
    bj ← 0
end for
for i ∈ {1, 2, 3, …, m} do
    for j ∈ {1, 2, 3, …, n} do
        bj ← bj + aij·xj
    end for
end for

  顯然利用這種方式計算矩陣與向量的乘積時,按行優先存儲的矩陣速度更快。

  第二種:

for j ∈ {1, 2, 3, …, n} do
    bj ← 0
    for i ∈ {1, 2, 3, …, m} do
        bj ← bj + aij·xj
    end for
end for

  顯然利用這種方式計算矩陣與向量的成績時,按列優先存儲的矩陣速度更快。


總結

以上是生活随笔為你收集整理的12.高斯消去法(1)——矩阵编程基础的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。