導航:首頁 > 源碼編譯 > n階矩陣相加的演算法

n階矩陣相加的演算法

發布時間:2023-09-17 15:44:22

❶ 輸入m*n階矩陣A和B,用函數編程實現兩個函數相加和相乘

輸入m*n階矩陣A和B,用C語言編程實現兩個函數相加和相乘:

一、矩陣相乘。程序中先初始化矩陣,然後判斷第一個矩陣的列數和第二個矩陣的行數是否相等,如果不相等則直接提示錯誤後退出程序。相等的話則利用公式計算乘積,結果賦給matrix二維數組。最後用for循環列印出結果驗證。

#include<stdio.h>

#include<stdlib.h>

#define M 100

int main(void)

{

int i,j,k,matrix1[M][M],matrix2[M][M],row1,col1,row2,col2,matrix[M][M];

printf("輸入第一個矩陣的行數和列數:");

scanf("%d%d",&row1,&col1);

printf("輸入第一個矩陣: ");

for(i=0;i<row1;i++){

for(j=0;j<col1;j++){

scanf("%d",&matrix1[i][j]);

}

}

printf("輸入第二個矩陣的行數和列數:");

scanf("%d%d",&row2,&col2);

printf("輸入第二個矩陣: ");

for(i=0;i<row2;i++){

for(j=0;j<col2;j++){

scanf("%d",&matrix2[i][j]);

}}

for(i=0;i<row1;i++){

for(j=0;j<col2;j++){

matrix[i][j]=0;

} }

if(col1!=row2){

fprintf(stderr,"enput error!");

exit(EXIT_FAILURE);

}

printf("The result: ");

for(i=0;i<row1;i++){

for(j=0;j<col2;j++){

for(k=0;k<col1;k++){

matrix[i][j]=matrix[i][j]+matrix1[i][k]*matrix2[k][j];

} } }

for(i=0;i<row1;i++){

for(j=0;j<col2;j++){

printf("%d ",matrix[i][j]); }

printf(" "); }

return 0;}



二、矩陣相加:

#include<stdio.h>

#define M 20

#define N 20

float A[M][N];

float B[M][N];

float C[M][N];

int i,j,m,n,p,q;

float y=1.0;

void main()

{

scanf("%d,%d",&i,&j);

printf("請輸入矩陣B的行數和列數(用逗號隔開):");

scanf("%d,%d",&m,&n);

if(i!=m||j!=n)

printf("***對不起,您輸入的兩個矩陣不能相加,請重試.*** ");

else printf("請輸入矩陣A: ");

for(p=0;p<i;p++)

for(q=0;q<j;q++)

scanf("%f",&A[p][q]);

printf("輸出矩陣A: ");

for(p=0;p<i;p++)

for(q=0;q<j;q++)

{

printf("%10.2f",A[p][q]);

if((q+1)%j==0)

printf(" ");

}

printf("請輸入矩陣B: ");

for(p=0;p<i;p++)

for(q=0;q<j;q++)

scanf("%f",&B[p][q]);

printf("輸出矩陣B: ");

for(p=0;p<i;p++)

for(q=0;q<j;q++)

{

printf("%10.2f",B[p][q]);

if((q+1)%j==0)

printf(" ");

}

printf("矩陣A+矩陣B為: "); //計算兩個矩陣相加

for(p=0;p<i;p++)

for(q=0;q<j;q++)

C[p][q]=A[p][q]+B[p][q];

for(p=0;p<i;p++)

for(q=0;q<j;q++)

{

printf("%10.2f",C[p][q]);

if((q+1)%j==0)

printf(" ");

}

};

❷ 矩陣計算方法法則

矩陣計算方法法則:

1.矩陣加法運算

矩陣之間也可以相加。把兩個矩陣對應位置的單個元素相加,得到的新矩陣就是矩陣加法的結果。由其運演算法則可知,只有行數和列數完全相同的矩陣才能進行加法運算。

矩陣之間相加沒有順序,假設A、B都是矩陣,則A+B=B+A。通常認為矩陣沒有減法,若要與一個矩陣相減,在概念上是引入一個該矩陣的負矩陣,然後相加。A-B是A+(-B)的簡寫。圖演示了兩個三行三列矩陣的加法。

2.矩陣乘法運算

矩陣之間也可以進行乘法運算,但其運算過程相對復雜得多。與算術乘法不同,矩陣乘法並不是多個矩陣之和,它有自己的邏輯。其演算法的具體描述為:假設m行n列的矩陣A和r行v列的矩陣B相乘得到矩陣C,則首先矩陣A和矩陣B必須滿足n=r。

也就是說,第一個矩陣的列數必須和第二個矩陣的行數相同。在運算時,第一個矩陣A的第i行的所有元素同第二個矩陣B第j列的元素對應相乘,並把相乘的結果相加,最終得到的值就是矩陣C的第i行第j列的值。

矩陣的值的計算公式

A=(aij)m×n。按照初等行變換原則把原來的矩陣變換為階梯型矩陣,總行數減去全部為零的行數即非零的行數就是矩陣的秩了。用初等行變換化成梯矩陣,梯矩陣中非零行數就是矩陣的秩。矩陣的秩是線性代數中的一個概念。在線性代數中,一個矩陣A的列秩是A的線性獨立的縱列的極大數。

閱讀全文

與n階矩陣相加的演算法相關的資料

熱點內容
加密晶元的計算方法 瀏覽:187
手機存儲為什麼找不到微信文件夾 瀏覽:695
msf埠遷移命令 瀏覽:880
工商app積分怎麼查詢 瀏覽:143
鐵路app怎麼買火車票 瀏覽:309
移魅族除的app怎麼添加 瀏覽:240
兔籠子大號加密 瀏覽:171
單片機程序燒錄操作成功 瀏覽:878
指標高拋低吸點位源碼 瀏覽:205
25匹壓縮機銅管 瀏覽:570
單片機單燈左移05 瀏覽:150
買伺服器練手什麼配置 瀏覽:783
伺服器被毀該怎麼辦 瀏覽:939
python私有庫 瀏覽:514
Python有中文嗎 瀏覽:736
麥塊的伺服器為什麼都進不去 瀏覽:474
新買的伺服器如何打開 瀏覽:35
安卓軟體游戲怎麼開發 瀏覽:319
用撲克擺愛心解壓神器怎麼擺 瀏覽:70
松下製冷壓縮機 瀏覽:275