1樓:匿名使用者
線性代數是計算機特別是圖形學中很重要的數學工具。3d遊戲和cad中的三維透視,科學計算中的方程組求解都需要用矩陣,人工智慧中的人腦模型,都需要用矩陣演算法中的加法,減法,乘法和除法(左除和右除)
用c語言實現兩個矩陣相乘怎麼做?
2樓:灩麗
1、程式執行輸入資料時,第一行為a矩陣的行列數和b矩陣的行列數,接著分別輸入a、b兩個矩陣的值。
2、首先,定義6個整型變數,儲存a、b矩陣的行和列,以及控制迴圈的變數,k則用於實現矩陣的乘法。
3、接著,定義三個整型二維陣列,儲存a、b和c矩陣的各元素。
4、輸入三個矩陣的行數和列數,儲存在變數a、b、c中。
5、輸入矩陣a的各元素,儲存在陣列x中。
6、輸入矩陣b的各元素,儲存在陣列y中。
7、將二維陣列z的各元素,初始化為0。
8、用兩層for迴圈,控制矩陣的乘法,並輸出乘法所得的結果。
9、計算a矩陣和b矩陣的乘法,結果儲存在陣列z中。
10、最後,輸出乘法所得的結果,即輸出z陣列中的所有元素。
11、執行程式,輸入矩陣a和b的行數和列數,以及a矩陣和b矩陣的所有元素,電腦就會計算出乘積c矩陣的所有元素,並輸出c矩陣。
3樓:匿名使用者
#include
#include
#define m 3
int main(void)
{int i,j,k,matrix1[m][m],matrix2[m][m],row1=m ,col1=m ,row2=m,col2=m,matrix[m][m];
/*為需要相乘的兩個矩陣賦值:*/
printf("輸入第一個矩陣:\n");
for(i=0;i
4樓:育知同創教育
c語言實現矩陣相乘
問題描述:
編寫程式,可以實現m*n矩陣和n*p矩陣相乘。m,n,p均小於10,矩陣元素為整數。
分析:首先我們可以根據題意寫出函式頭。可以定為void matrixmutiply(int m,int n,int p,long lmatrix1[max][max],long lmatrix2[max][max],long lmatrixresult[max][max]),其中lmatrix1和lmatrix2分別是輸入的m*n矩陣和n*p矩陣,lmatrixresult是輸出的m*p矩陣。
因為m,n和p都是未知量,要進行處理的矩陣大小是變數。但我們可以定義比較大的二維陣列,只使用其中的部分陣列元素。
矩陣相乘的演算法比較簡單,輸入一個m*n矩陣和一個n*p矩陣,結果必然是m*p矩陣,有m*p個元素,每個元素都需要計算,可以使用m*p巢狀迴圈進行計算。
根據矩陣乘法公式:
可以用迴圈直接套用上面的公式計算每個元素。巢狀迴圈內部進行累加前,一定要注意對累加變數進行清零。
資料要求
問題中的常量:
#define max 10 /*矩陣最大行數和列數*/
問題的輸入:
int m,n,p; /*相乘的兩個矩陣的行列數*/
long lmatrix1[max][max],lmatrix2[max][max]; /*相乘的兩個矩陣*/
問題的輸出:
long lmatrixresult[max][max]; /*矩陣相乘後得到的矩陣*/
初始演算法
1.輸入兩個矩陣的的行列數m,n,p;
2.輸入第一個矩陣的每個元素;
3.輸入第二個矩陣的每個元素;
4.呼叫函式進行乘法運算,結果放在lmatrixresult 中;
5. 列印輸出結果矩陣。
演算法細化
演算法的步驟4計算兩個矩陣的乘法演算法如下:
4.1 定義迴圈變數i,j,k;
4.2 巢狀迴圈計算結果矩陣(m*p)的每個元素。
程式**如下:
#define max 10
void matrixmutiply(int m,int n,int p,long lmatrix1[max][max],
long lmatrix2[max][max],long lmatrixresult[max][max])
}main()
/*輸入第二個矩陣的每個元素*/
printf("\nplease elements of matrix2(%d*%d):\n",n,p);
for(i=0;i for(j=0;j
/*呼叫函式進行乘法運算,結果放在lmatrixresult 中*/ matrixmutiply(m,n,p,lmatrix1,lmatrix2,lmatrixresult); /*列印輸出結果矩陣*/ printf("\nresult matrix: \n"); for(i=0;i }程式執行結果如下: please input m of matrix1: **lease input n of matrix1: 2please input p of matrix2: **lease elements of matrix1(3*2): 1 20 1 3 0please elements of matrix2(2*3): 1 2 0 3 1 1 result matrix: 7 4 2 3 1 1 3 6 0 5樓:匿名使用者 有c語言實現兩個句子呢相同的話我覺得這個在程式設計的時候只要把兩個句子兩個句子然後涉及到一個什麼可以了 6樓:匿名使用者 用c語言實現兩個矩陣相乘,編寫程式就行。 7樓:xc望心闖天下 #include int main() }for(i = 0;i < 3 ; i++)}for(i = 0; i < 3; i++)}for(i = 0;i < 3 ; i++)printf("\n");}}請採納 矩陣乘法的意義是什麼? 8樓: 不能說矩陣乘法有什麼意義 你首先明白矩陣是用來記錄大量資料的工具,是個存放資料的地方,簡潔明瞭,不論你是多少維的! 當兩個或多個矩陣之間的資料存在某種關係時候(比如多個向量之間的積),我們可以有意識的把他們放在矩陣中去去做乘法,這樣可以省掉很多繁瑣的符號 如果說矩陣乘法有什麼意義,也就是使存在關係的多維陣列的乘法變的規律,便與書寫和記載 9樓: 一個比較簡單的例子: 2d或3d實體在旋轉位移等操作下,相當於將合適的旋轉、位移矩陣左乘物體原座標矩陣。 比如[x y z 1]',進行位移操作[1 0 0 1;0 1 0 0;0 0 1 0] 物體座標成為[x+1 y z 1] 具體的東西可以參考計算機影象生成方面的資料。 10樓:牧天候 矩陣乘法的意義,建議你去看下藍以中的《高等代數簡明教程》 我還是說說矩陣乘法為什麼這樣定義吧 比如說三個向量組,a能被b表示,於是這個表示可以得到一個矩陣b能被c表示,又可以得到一個矩陣 再考慮a被c表示,所得到的這個矩陣就是前面兩個矩陣相乘(當然有先後順序) 這可以當做是矩陣乘法為什麼這樣定義 c語言程式設計求矩陣乘積。
5 11樓:夢丶丶幽魂 #include "iostream.h" void matrixchain(int *p,int n,int **m,int **s)}} }根據具體問題型別,進行步驟拆解/原因原理分析/內容拓展等。 具體步驟如下:/導致這種情況的原因主要是...... 12樓:龍__鳳 #include"stdio.h" void main() for(i=0;i<2;i++)//輸入 for(i=0;i<3;i++)//計算 }for(i=0;i<3;i++)//輸出} 13樓:匿名使用者 #include int main() ,,},b[2][3]=,}; int i,j; for(i=0;i<3;i++) for(j=0;j<2;j++) return 0;} 14樓:匿名使用者 #include int main() }printf("2*3矩陣:\n"); int b[6]; for (i=0; i<2; ++i) }int c[9]; for (i=0; i<3; ++i) c[i*3+j] = temp;}} for (int i=0;i<3;++i)printf("\n"); }return 0;} c語言中兩矩陣相乘 15樓:匿名使用者 #include int main() }printf("請輸入矩陣b:\n"); for(i=0;i }printf("矩陣a為:\n"); for(i=0;i }printf("矩陣b為:\n"); for(i=0;i }for(i=0;i }printf("矩陣a與矩陣b的乘積為:\n"); for(i=0;i }return 0;} 16樓:匿名使用者 b=[3][4]= 改為b[3][4]= 包含stdio.h檔案 17樓:匿名使用者 main() ,b[3][4]=,c[2][4]=; for(i=0;i<2;i++) for(j=0;j<4;j++) for(k=0;k<3;k++) for(i=0;i<2;i++) getch(); }改了一下 b=[3][4]={ printf("the members of matrix c:\n"); 這兩個地方地方有專問屬題 18樓:李春峰 b=[3][4]=,多了個等號 b[3][4]=, 淺顯的說就是各種軟體 工具 的的設計 編寫 計算機程式設計是一門語言,可以說是讓計算機看懂的語言,比如你去爪哇說阿拉伯語,他們是不會鳥你的。看 是三目運算子,可以代替簡單的if語句,看前邊是表示式,看和 中間是表示式為真時執行的 後面是表示式為假時執行的 計算機程式設計就是用計算機語言 如c語言,b... 計算機語言主要分為四類 低階語言 高階語言 專用語言 指令碼語言 樓主應該問高階語言吧 有basic true basic qbasic virtual basic pascal free pascal turbo pascal fortran 智慧化語言 lisp prolog clips ope... 答 成千上萬。最主流 c 最基礎 basic 工程應用 fortran 教學語言 pascal 常用的計算機語言有哪些?計算機程式語言的程式設計軟體需要什麼語言?計算機程式設計語言的分類有哪些?計算機程式設計語言和計算機程式語言有沒有區別 計算機程式設計語言和計算機程式語言有區別,具體如下 一 內容...計算機程式設計是什麼,計算機程式設計中 是什麼意思
計算機程式語言大全,計算機程式語言有哪些?
計算機程式語言有哪些,常用的計算機語言有哪些?