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

热点内容
php内核源码入口 浏览:910
java内存图片 浏览:227
电器原理pdf 浏览:273
谷歌注册无法连接网络连接服务器地址 浏览:428
在识货app上怎么联系客服 浏览:470
javac数据类型 浏览:480
kmp算法算法导论 浏览:193
单反照片批量压缩 浏览:340
javazip压缩目录 浏览:712
89c52单片机晶振 浏览:206
pdf转jpgmac 浏览:799
65压缩机多少钱 浏览:120
同类型服务app如何脱颖而出 浏览:762
mtm月线金叉选股预警公式源码 浏览:227
javasapwebservice 浏览:709
程序员老了去做什么 浏览:404
linux小括号 浏览:773
已加密的u盘怎么清空 浏览:433
怎么拿到服务器权限 浏览:193
延时摄影app如何保存 浏览:195