导航:首页 > 源码编译 > 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阶矩阵相加的算法相关的资料

热点内容
c语言中的排序算法 浏览:596
php原生链接数据库 浏览:44
web前端后端程序员 浏览:24
万能zip的压缩包怎么解压 浏览:40
国内动漫用什么app看 浏览:353
树莓派高级编程 浏览:928
30岁学编程晚吗 浏览:68
解压专家怎么打开 浏览:86
php开源留言板 浏览:49
新乡市区疫情怎么查询app 浏览:158
我的世界服务器怎么弄图 浏览:999
vc6的编译框 浏览:198
程序员写照 浏览:539
怎么退出github服务器版本 浏览:797
云服务器sip 浏览:910
对称平衡型压缩机 浏览:953
rust连接什么服务器 浏览:382
php删除数组的空元素 浏览:74
有什么古今翻译的app 浏览:54
华为平板里的app热门推荐怎么关闭 浏览:731