導航:首頁 > 源碼編譯 > 兩個n階矩陣的乘積演算法代碼

兩個n階矩陣的乘積演算法代碼

發布時間:2022-03-12 17:38:10

㈠ C語言:編寫完整程序:計算兩個矩陣的乘積。

#include
"stdio.h"
#include
"stdlib.h"
void
main
()
{
int
m,l,p,q;
printf("輸入第一個矩陣的維數m和l:\n");
scanf("%d%d",&m,&l);
printf("輸入第二個矩陣的維數p和q:\n");
scanf("%d%d",&p,&q);
while
(l!=p)
{
printf("兩個矩陣不匹配,不能進行相乘運算,請重新輸入...\n\n");
printf("輸入第一個矩陣的維數m和l:\n");
scanf("%d%d",&m,&l);
printf("輸入第二個矩陣的維數p和q:\n");
scanf("%d%d",&p,&q);
}
double
a[200][200]={0},
b[200][200]={0},sum=0;
int
i,j,k=0;
for
(i=0;i<m;i++)
{
for
(j=0;j<l;j++)
{
a[i][j]=(double)rand()/RAND_MAX;
}
}
printf("隨機矩陣a是:\n");
for
(i=0;i<m;i++)
{
for
(j=0;j<l;j++)
{
printf("%f
",a[i][j]);
}
printf("\n");
}
//cout<<"輸入一個3*2的矩陣:"<<endl;
for
(i=0;i<p;i++)
{
for
(j=0;j<q;j++)
{
b[i][j]=(double)rand()/RAND_MAX;
}
}
printf("隨機矩陣b是:\n");
for
(i=0;i<p;i++)
{
for
(j=0;j<q;j++)
{
printf("%f
",b[i][j]);
}
printf("\n");
}
printf("ab相乘結果為:\n");
for
(i=0;i<m;i++)
{
while
(k<q)
{
for
(j=0;j<q;j++)
{
sum
=
a[i][j]*b[j][k]+sum;
}
printf("%f
",sum);
k++;
sum=0;
}
k=0;
printf("\n");
}
}

㈡ 兩個二階矩陣相乘怎麼算

矩陣相乘需要前面矩陣的行數與後面矩陣的列數相同方可相乘。

第一步先將前面矩陣的每一行分別與後面矩陣的列相乘作為結果矩陣的行列。

第二步算出結果即可。

第一個的列數等於第二個的行數,A(3,4) 。B(4,2) 。C=AB,C(3,2)。


(2)兩個n階矩陣的乘積演算法代碼擴展閱讀:

矩陣相乘最重要的方法是一般矩陣乘積。只有在第一個矩陣的列數(column)和第二個矩陣的行數(row)相同時才有意義 。

一般單指矩陣乘積時,指的便是一般矩陣乘積。一個m×n的矩陣就是m×n個數排成m行n列的一個數陣。由於它把許多數據緊湊的集中到了一起,所以有時候可以簡便地表示一些復雜的模型。

㈢ 怎樣將兩個二維數組相乘代碼是什麼

兩個數組相乘即是矩陣的乘法。
只有滿足一定條件的兩個矩陣才能相乘,其結果仍是矩陣。
a(m,n)*b(n,k)=c(m,k)

矩陣c中的每個元素按下式計算:
c[i,j]=sum( a[i,x]*b[x,j] ) (x=1..n)

㈣ c語言中兩個矩陣的乘積、求和演算法

就是兩個二維數組 a[i][j],b[m][n]; 再循環嵌套啊 很簡單啊

㈤ 計算兩個三階行列式相乘的c語言代碼

#include<stdio.h>
voidmain()
{
inti,j,k=0;//一位數組初始化
inta[9]={12,34,23,34,45,34,35,45,34};
intb[9]={45,26,34,45,87,34,98,45,90};
//輸出一位數組a[9]b[9]
printf("a[9]:");
for(i=0;i<9;i++)
printf("%d",a[i]);printf(" ");

printf("b[9]:");
for(i=0;i<9;i++)
printf("%d",b[i]);
//定義3*3二維數組
intc[3][3];

//依照3*3矩陣格式列印結果
printf(" 結果為: ");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
//兩個一位數組相乘的結果存入二維數組c[3][3]
c[i][j]=a[k]*b[k];
//k的主要目的是控制a[k]*b[k],
//這樣可以取出a[0]-a[8],b[0]-[8]的值相乘存入數組
k++;
//%-6d只是控制輸出格式好看點,沒什麼作用,直接寫%d就可以
printf("%-6d",c[i][j]);
}
printf(" ");
}
}

㈥ 兩個矩陣相乘演算法

矩陣相乘需要前面矩陣的行數與後面矩陣的列數相同方可相乘。

第一步先將前面矩陣的每一行分別與後面矩陣的列相乘作為結果矩陣的行列。

(6)兩個n階矩陣的乘積演算法代碼擴展閱讀:

矩陣相乘最重要的方法是一般矩陣乘積。它只有在第一個矩陣的列數(column)和第二個矩陣的行數(row)相同時才有意義 。一般單指矩陣乘積時,指的便是一般矩陣乘積。一個m×n的矩陣就是m×n個數排成m行n列的一個數陣。由於它把許多數據緊湊的集中到了一起,所以有時候可以簡便地表示一些復雜的模型。

1、當矩陣A的列數等於矩陣B的行數時,A與B可以相乘。

2、矩陣C的行數等於矩陣A的行數,C的列數等於B的列數。

3、乘積C的第m行第n列的元素等於矩陣A的第m行的元素與矩陣B的第n列對應元素乘積之和。

㈦ 編寫一個C函數實現兩個n階矩陣相乘。

float a[n1][m];
float b[m][n2];
float s[n1][n2];
for(w=0;w<n1;w++)
{
for(j=0;j<n2;j++)
{
for(i=0;i<m;i++)
{
s[n1][n2]+=a[n1][m]*b[m][n2];
}
}
}

n1=n2=m時,就是兩個m階方陣的乘積。

㈧ C語言題,求兩個矩陣的乘積

簡單題,按照矩陣的定義去做即可

源代碼如下

//#pragma GCC diagnostic error"-std=c11"

#include<stdlib.h> //有隨機數庫

#include<malloc.h>

#include<time.h> //用於產生隨機數種子

#include<math.h>

#include<string.h>

#include<stdio.h>

#define ELE int

typedef struct Metrix {

ELE *A;

int row, col;

}Metrix;

//初始化矩陣

void init(Metrix *M, int row, int col, int auto_read) {

M->A = (ELE*)calloc(row*col, sizeof(ELE));

M->row = row;

M->col = col;

if (auto_read) {

int i, size = row*col;

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

scanf("%d", M->A + i);

}

}

#define IDX(M,r,c) (r*(M->col)+c)

ELE* get(Metrix *M, int r, int c) {

return M->A + IDX(M, r, c);

}

int main()

{

int m, l, n, i, j, k;

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

Metrix L, R;

init(&L, m, l, 1);

init(&R, l, n, 1);

// init(M,m,n,0);

//矩陣乘法走起

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

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

ELE *lp = get(&L, i, 0), *rp = get(&R, 0, j);

ELE out = 0;

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

out += *(rp)*lp[k];

rp += n; //rp換下一行

}

printf("%d ", out);

}

printf(" "); //刪去空格再換行。

}

return 0;

}

㈨ 用c語言實現兩個矩陣相乘怎麼做

1、程序運行輸入數據時,第一行為A矩陣的行列數和B矩陣的行列數,接著分別輸入A、B兩個矩陣的值。

㈩ 為什麼 兩個n階矩陣相乘所需的運算次數為n的3次方

n階矩陣相乘後得到的還是n階矩陣,所以結果中就有n平方個元素,每個元素都是由2n個數兩兩相乘得到,即n次運算,所以是n的三次方。

次方有兩種演算法。

第一種是直接用乘法計算,例:3⁴=3×3×3×3=81

第二種則是用次方階級下的數相乘,例:3⁴=9×9=81

(10)兩個n階矩陣的乘積演算法代碼擴展閱讀

任何非零數的0次方都等於1。原因如下

通常代表3次方

5的3次方是125,即5×5×5=125

5的2次方是25,即5×5=25

5的1次方是5,即5×1=5

由此可見,n≧0時,將5的(n+1)次方變為5的n次方需除以一個5,所以可定義5的0次方為:

5 ÷ 5 = 1

閱讀全文

與兩個n階矩陣的乘積演算法代碼相關的資料

熱點內容
linuxpython下載安裝 瀏覽:934
人工免疫演算法matlab 瀏覽:655
黑客點擊指標源碼 瀏覽:813
農場源碼搭建 瀏覽:307
phpfopen讀取 瀏覽:111
linuxc暫停 瀏覽:833
海康的雲伺服器的作業 瀏覽:132
pdf組織技術 瀏覽:402
鋼筋加密區原位標注怎麼確定跨數 瀏覽:366
微信小程序朋友圈發消息源碼 瀏覽:209
手機連接伺服器在什麼設置 瀏覽:931
linux關閉httpd 瀏覽:80
劍與家園伺服器怎麼樣 瀏覽:172
金蜘蛛源碼公式 瀏覽:819
java自定義監聽 瀏覽:982
明星公仔娃娃app叫什麼 瀏覽:340
拼多多程序員價格 瀏覽:77
離上班的地方13公里源碼 瀏覽:561
共產主義pdf 瀏覽:833
安卓雲頂之弈用什麼登陸 瀏覽:777