天天看點

《C語言及程式設計》實踐參考——矩陣運算

【項目2-矩陣運算】

  在數學中,一個矩陣由若幹行和若幹列資料組成,可以直接存儲為一個二維數組。

(1)矩陣相加

  兩個矩陣相加,要求其行、列數均相等。運算規則為:一個n行m列的矩陣a加上另一個n行m列的矩陣,得到的結果是一個n行m列的矩陣c,c中的第i行第j列位置上的數等于a和b矩陣第i行第j列上數相加的和。例如:

《C語言及程式設計》實踐參考——矩陣運算

  請程式設計式,實作兩個矩陣的加法。

[參考解答]

(2)矩陣相乘

  一個n行m列的矩陣可以乘以一個m行p列的矩陣,得到的結果是一個n行p列的矩陣,其中的第i行第j列位置上的數等于前一個矩陣第i行上的m個數與後一個矩陣第j列上的m個數對應相乘後所有m個乘積的和。

  例如,下面的算式表示一個2行3列的矩陣乘以3行4列的矩陣,其結果是一個2行4列的矩陣:

《C語言及程式設計》實踐參考——矩陣運算

  按二維數組習慣,從第0行第0列開始計數,結果中第1行第2列的元素是9,是通過左矩陣中的第1行(2  0  3),乘以右矩陣中的第2列(3  2  1),對應數相乘并加起來,就得到了9,即2×3-0×2+3×1=9。請将這個矩陣乘手工計算一下,規則不複雜。

  請程式設計式,實作兩個矩陣的乘法。

注:①由後面c[i][j]=s知,接下來要求s,為c[i][j]求值。s是累加和,需要置0

②c[i][j]的值是a中第i行中的每一個數a[i][k]乘以b中第j列中的每一個數b[k][j]累加得出,關于k的循環保證了能将這裡的每一個數相乘并累加,是以累加的項目是a[i][k]*b[k][j]

繼續閱讀